Make browse pivot DB funcs STABLE
authorDan Wells <dbw2@calvin.edu>
Tue, 29 Oct 2013 13:42:08 +0000 (09:42 -0400)
committerJason Stephenson <jstephenson@mvlc.org>
Tue, 29 Oct 2013 19:42:47 +0000 (15:42 -0400)
Since these are just convenience functions doing only selects, these
should be STABLE safe, and making this change allows browse to be
functional on production-size data sets.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Open-ILS/src/sql/Pg/030.schema.metabib.sql
Open-ILS/src/sql/Pg/upgrade/XXXX.schema.browse_pivots_stable.sql [new file with mode: 0644]

index 8076828..83200e2 100644 (file)
@@ -1823,7 +1823,7 @@ CREATE OR REPLACE FUNCTION metabib.browse_bib_pivot(
             )
       WHERE mbe.sort_value >= public.naco_normalize($2)
       ORDER BY mbe.sort_value, mbe.value LIMIT 1;
-$p$ LANGUAGE SQL;
+$p$ LANGUAGE SQL STABLE;
 
 CREATE OR REPLACE FUNCTION metabib.browse_authority_pivot(
     INT[],
@@ -1839,7 +1839,7 @@ CREATE OR REPLACE FUNCTION metabib.browse_authority_pivot(
             )
       WHERE mbe.sort_value >= public.naco_normalize($2)
       ORDER BY mbe.sort_value, mbe.value LIMIT 1;
-$p$ LANGUAGE SQL;
+$p$ LANGUAGE SQL STABLE;
 
 CREATE OR REPLACE FUNCTION metabib.browse_authority_refs_pivot(
     INT[],
@@ -1855,7 +1855,7 @@ CREATE OR REPLACE FUNCTION metabib.browse_authority_refs_pivot(
             )
       WHERE mbe.sort_value >= public.naco_normalize($2)
       ORDER BY mbe.sort_value, mbe.value LIMIT 1;
-$p$ LANGUAGE SQL;
+$p$ LANGUAGE SQL STABLE;
 
 CREATE OR REPLACE FUNCTION metabib.browse_pivot(
     INT[],
@@ -1867,7 +1867,7 @@ CREATE OR REPLACE FUNCTION metabib.browse_pivot(
                 metabib.browse_authority_refs_pivot($1,$2) -- only look in 4xx, 5xx, 7xx of authority
             )
       ORDER BY sort_value, value LIMIT 1;
-$p$ LANGUAGE SQL;
+$p$ LANGUAGE SQL STABLE;
 
 
 CREATE OR REPLACE FUNCTION metabib.staged_browse(
diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.browse_pivots_stable.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.browse_pivots_stable.sql
new file mode 100644 (file)
index 0000000..3eaa44c
--- /dev/null
@@ -0,0 +1,11 @@
+BEGIN;
+
+-- check whether patch can be applied
+--SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version);
+
+ALTER FUNCTION metabib.browse_pivot (integer[], text) STABLE;
+ALTER FUNCTION metabib.browse_bib_pivot (integer[], text) STABLE;
+ALTER FUNCTION metabib.browse_authority_pivot (integer[], text) STABLE;
+ALTER FUNCTION metabib.browse_authority_refs_pivot (integer[], text) STABLE;
+
+COMMIT;