Backport a safer version of the reporter.disable_materialized_simple_record_trigger...
authordbs <dbs@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Fri, 20 Nov 2009 22:04:08 +0000 (22:04 +0000)
committerdbs <dbs@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Fri, 20 Nov 2009 22:04:08 +0000 (22:04 +0000)
This one works with PostgreSQL 8.1 and up, so it's targeted to the 1.4 branch

git-svn-id: svn://svn.open-ils.org/ILS/branches/rel_1_4_0@14994 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/sql/Pg/1.4.0.7-1.4.0.8-upgrade-db.sql [new file with mode: 0755]
Open-ILS/src/sql/Pg/reporter-schema.sql

diff --git a/Open-ILS/src/sql/Pg/1.4.0.7-1.4.0.8-upgrade-db.sql b/Open-ILS/src/sql/Pg/1.4.0.7-1.4.0.8-upgrade-db.sql
new file mode 100755 (executable)
index 0000000..81f9c2f
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2009  Equinox Software, Inc.
+ * Mike Rylander <miker@esilibrary.com>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ */
+
+
+INSERT INTO config.upgrade_log (version) VALUES ('1.4.0.8');
+
+CREATE OR REPLACE FUNCTION reporter.disable_materialized_simple_record_trigger () RETURNS VOID AS $$
+    DECLARE x RECORD;
+    BEGIN
+        -- DROP TRIGGER IF EXISTS is only available starting with PostgreSQL 8.2
+        FOR x IN SELECT tgname FROM pg_trigger WHERE tgname = 'zzz_update_materialized_simple_record_tgr'
+        LOOP
+            DROP TRIGGER zzz_update_materialized_simple_record_tgr ON metabib.real_full_rec;
+        END LOOP;
+    END;
+$$ LANGUAGE plpgsql;
+
index 660a1ef..28ffc1f 100644 (file)
@@ -203,8 +203,15 @@ CREATE TRIGGER zzz_update_materialized_simple_record_tgr
     FOR EACH ROW EXECUTE PROCEDURE reporter.simple_rec_sync();
 
 CREATE OR REPLACE FUNCTION reporter.disable_materialized_simple_record_trigger () RETURNS VOID AS $$
-    DROP TRIGGER zzz_update_materialized_simple_record_tgr ON metabib.real_full_rec;
-$$ LANGUAGE SQL;
+    DECLARE x RECORD;
+    BEGIN
+        -- DROP TRIGGER IF EXISTS is only available starting with PostgreSQL 8.2
+        FOR x IN SELECT tgname FROM pg_trigger WHERE tgname = 'zzz_update_materialized_simple_record_tgr'
+        LOOP
+            DROP TRIGGER zzz_update_materialized_simple_record_tgr ON metabib.real_full_rec;
+        END LOOP;
+    END;
+$$ LANGUAGE plpgsql;
 
 CREATE OR REPLACE FUNCTION reporter.enable_materialized_simple_record_trigger () RETURNS VOID AS $$