[open-ils-commits] r19760 - branches/rel_2_1/Open-ILS/src/sql/Pg (dbs)

svn at svn.open-ils.org svn at svn.open-ils.org
Wed Mar 16 00:03:57 EDT 2011


Author: dbs
Date: 2011-03-16 00:03:54 -0400 (Wed, 16 Mar 2011)
New Revision: 19760

Added:
   branches/rel_2_1/Open-ILS/src/sql/Pg/000.functions.general.sql
Removed:
   branches/rel_2_1/Open-ILS/src/sql/Pg/002.functions.general.sql
Modified:
   branches/rel_2_1/Open-ILS/src/sql/Pg/build-db.sh
Log:
Set default db schema search path to public,pg_catalog

With the addition of the 'evergreen' schema, we discovered that
all of the unqualified database objects were being created in
the 'evergreen' schema if the database user name was 'evergreen'
(as the default search path is "$user",public we started matching
"$user").

Thomas Berezansky proposed a variation of the function provided
here for changing database settings. By creating the function in
the first schema file, the subsequent connections pick up the
new default search path and all works blissfully as it once did.

Long term, we should probably move towards explicitly qualified
database objects.


Copied: branches/rel_2_1/Open-ILS/src/sql/Pg/000.functions.general.sql (from rev 19759, trunk/Open-ILS/src/sql/Pg/000.functions.general.sql)
===================================================================
--- branches/rel_2_1/Open-ILS/src/sql/Pg/000.functions.general.sql	                        (rev 0)
+++ branches/rel_2_1/Open-ILS/src/sql/Pg/000.functions.general.sql	2011-03-16 04:03:54 UTC (rev 19760)
@@ -0,0 +1,22 @@
+-- Rather than polluting the public schema with general Evergreen
+-- functions, carve out a dedicated schema
+
+DROP SCHEMA IF EXISTS evergreen CASCADE;
+
+BEGIN;
+
+CREATE SCHEMA evergreen;
+
+CREATE OR REPLACE FUNCTION evergreen.lowercase( TEXT ) RETURNS TEXT AS $$
+    return lc(shift);
+$$ LANGUAGE PLPERLU STRICT IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION evergreen.change_db_setting(setting_name TEXT, settings TEXT[]) RETURNS VOID AS $$
+BEGIN
+EXECUTE 'ALTER DATABASE ' || quote_ident(current_database()) || ' SET ' || quote_ident(setting_name) || ' = ' || array_to_string(settings, ',');
+END;
+$$ LANGUAGE plpgsql;
+
+SELECT evergreen.change_db_setting('search_path', ARRAY['public','pg_catalog']);
+
+COMMIT;

Deleted: branches/rel_2_1/Open-ILS/src/sql/Pg/002.functions.general.sql
===================================================================
--- branches/rel_2_1/Open-ILS/src/sql/Pg/002.functions.general.sql	2011-03-16 03:46:43 UTC (rev 19759)
+++ branches/rel_2_1/Open-ILS/src/sql/Pg/002.functions.general.sql	2011-03-16 04:03:54 UTC (rev 19760)
@@ -1,14 +0,0 @@
--- Rather than polluting the public schema with general Evergreen
--- functions, carve out a dedicated schema
-
-DROP SCHEMA IF EXISTS evergreen CASCADE;
-
-BEGIN;
-
-CREATE SCHEMA evergreen;
-
-CREATE OR REPLACE FUNCTION evergreen.lowercase( TEXT ) RETURNS TEXT AS $$
-    return lc(shift);
-$$ LANGUAGE PLPERLU STRICT IMMUTABLE;
-
-COMMIT;

Modified: branches/rel_2_1/Open-ILS/src/sql/Pg/build-db.sh
===================================================================
--- branches/rel_2_1/Open-ILS/src/sql/Pg/build-db.sh	2011-03-16 03:46:43 UTC (rev 19759)
+++ branches/rel_2_1/Open-ILS/src/sql/Pg/build-db.sh	2011-03-16 04:03:54 UTC (rev 19760)
@@ -79,11 +79,12 @@
 # This describes the order in which the SQL files will be eval'd by psql.
 # ---------------------------------------------------------------------------
 ordered_file_list="
+  000.functions.general.sql
+
   $fts_config_file
 
   001.schema.offline.sql
 
-  002.functions.general.sql
   002.schema.config.sql
   002.functions.aggregate.sql
   002.functions.config.sql



More information about the open-ils-commits mailing list