LP#957466: Stamping Upgrade Script
authorJason Stephenson <jstephenson@mvlc.org>
Wed, 18 Feb 2015 15:13:56 +0000 (10:13 -0500)
committerDan Wells <dbw2@calvin.edu>
Tue, 24 Feb 2015 18:59:57 +0000 (13:59 -0500)
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Conflicts:
Open-ILS/src/sql/Pg/002.schema.config.sql

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Open-ILS/src/sql/Pg/002.schema.config.sql
Open-ILS/src/sql/Pg/upgrade/0908.function.vandelay-overlay_bib_record.sql [new file with mode: 0644]
Open-ILS/src/sql/Pg/upgrade/XXXX.function.vandelay-overlay_bib_record.sql [deleted file]

index 2e7d76b..4bfbeb1 100644 (file)
@@ -91,7 +91,7 @@ CREATE TRIGGER no_overlapping_deps
     BEFORE INSERT OR UPDATE ON config.db_patch_dependencies
     FOR EACH ROW EXECUTE PROCEDURE evergreen.array_overlap_check ('deprecates');
 
-INSERT INTO config.upgrade_log (version, applied_to) VALUES ('0906', :eg_version); -- berick/bshum
+INSERT INTO config.upgrade_log (version, applied_to) VALUES ('0908', :eg_version); -- remingtron/mdriscoll/dyrcona
 
 CREATE TABLE config.bib_source (
        id              SERIAL  PRIMARY KEY,
diff --git a/Open-ILS/src/sql/Pg/upgrade/0908.function.vandelay-overlay_bib_record.sql b/Open-ILS/src/sql/Pg/upgrade/0908.function.vandelay-overlay_bib_record.sql
new file mode 100644 (file)
index 0000000..f947fe8
--- /dev/null
@@ -0,0 +1,66 @@
+BEGIN;
+
+SELECT evergreen.upgrade_deps_block_check('0908', :eg_version);
+
+CREATE OR REPLACE FUNCTION vandelay.overlay_bib_record ( import_id BIGINT, eg_id BIGINT, merge_profile_id INT ) RETURNS BOOL AS $$
+DECLARE
+    editor_string   TEXT;
+    editor_id       INT;
+    v_marc          TEXT;
+    v_bib_source    INT;
+    update_fields   TEXT[];
+    update_query    TEXT;
+BEGIN
+
+    SELECT  q.marc, q.bib_source INTO v_marc, v_bib_source
+      FROM  vandelay.queued_bib_record q
+            JOIN vandelay.bib_match m ON (m.queued_record = q.id AND q.id = import_id)
+      LIMIT 1;
+
+    IF v_marc IS NULL THEN
+        -- RAISE NOTICE 'no marc for vandelay or bib record';
+        RETURN FALSE;
+    END IF;
+
+    IF vandelay.template_overlay_bib_record( v_marc, eg_id, merge_profile_id) THEN
+        UPDATE  vandelay.queued_bib_record
+          SET   imported_as = eg_id,
+                import_time = NOW()
+          WHERE id = import_id;
+
+        editor_string := (oils_xpath('//*[@tag="905"]/*[@code="u"]/text()',v_marc))[1];
+
+        IF editor_string IS NOT NULL AND editor_string <> '' THEN
+            SELECT usr INTO editor_id FROM actor.card WHERE barcode = editor_string;
+
+            IF editor_id IS NULL THEN
+                SELECT id INTO editor_id FROM actor.usr WHERE usrname = editor_string;
+            END IF;
+
+            IF editor_id IS NOT NULL THEN
+                --only update the edit date if we have a valid editor
+                update_fields := ARRAY_APPEND(update_fields, 'editor = ' || editor_id || ', edit_date = NOW()');
+            END IF;
+        END IF;
+
+        IF v_bib_source IS NOT NULL THEN
+            update_fields := ARRAY_APPEND(update_fields, 'source = ' || v_bib_source);
+        END IF;
+
+        IF ARRAY_LENGTH(update_fields, 1) > 0 THEN
+            update_query := 'UPDATE biblio.record_entry SET ' || ARRAY_TO_STRING(update_fields, ',') || ' WHERE id = ' || eg_id || ';';
+            --RAISE NOTICE 'query: %', update_query;
+            EXECUTE update_query;
+        END IF;
+
+        RETURN TRUE;
+    END IF;
+
+    -- RAISE NOTICE 'update of biblio.record_entry failed';
+
+    RETURN FALSE;
+
+END;
+$$ LANGUAGE PLPGSQL;
+
+COMMIT;
diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.function.vandelay-overlay_bib_record.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.function.vandelay-overlay_bib_record.sql
deleted file mode 100644 (file)
index 82dda29..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-BEGIN;
-
---SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version);
-
-CREATE OR REPLACE FUNCTION vandelay.overlay_bib_record ( import_id BIGINT, eg_id BIGINT, merge_profile_id INT ) RETURNS BOOL AS $$
-DECLARE
-    editor_string   TEXT;
-    editor_id       INT;
-    v_marc          TEXT;
-    v_bib_source    INT;
-    update_fields   TEXT[];
-    update_query    TEXT;
-BEGIN
-
-    SELECT  q.marc, q.bib_source INTO v_marc, v_bib_source
-      FROM  vandelay.queued_bib_record q
-            JOIN vandelay.bib_match m ON (m.queued_record = q.id AND q.id = import_id)
-      LIMIT 1;
-
-    IF v_marc IS NULL THEN
-        -- RAISE NOTICE 'no marc for vandelay or bib record';
-        RETURN FALSE;
-    END IF;
-
-    IF vandelay.template_overlay_bib_record( v_marc, eg_id, merge_profile_id) THEN
-        UPDATE  vandelay.queued_bib_record
-          SET   imported_as = eg_id,
-                import_time = NOW()
-          WHERE id = import_id;
-
-        editor_string := (oils_xpath('//*[@tag="905"]/*[@code="u"]/text()',v_marc))[1];
-
-        IF editor_string IS NOT NULL AND editor_string <> '' THEN
-            SELECT usr INTO editor_id FROM actor.card WHERE barcode = editor_string;
-
-            IF editor_id IS NULL THEN
-                SELECT id INTO editor_id FROM actor.usr WHERE usrname = editor_string;
-            END IF;
-
-            IF editor_id IS NOT NULL THEN
-                --only update the edit date if we have a valid editor
-                update_fields := ARRAY_APPEND(update_fields, 'editor = ' || editor_id || ', edit_date = NOW()');
-            END IF;
-        END IF;
-
-        IF v_bib_source IS NOT NULL THEN
-            update_fields := ARRAY_APPEND(update_fields, 'source = ' || v_bib_source);
-        END IF;
-
-        IF ARRAY_LENGTH(update_fields, 1) > 0 THEN
-            update_query := 'UPDATE biblio.record_entry SET ' || ARRAY_TO_STRING(update_fields, ',') || ' WHERE id = ' || eg_id || ';';
-            --RAISE NOTICE 'query: %', update_query;
-            EXECUTE update_query;
-        END IF;
-
-        RETURN TRUE;
-    END IF;
-
-    -- RAISE NOTICE 'update of biblio.record_entry failed';
-
-    RETURN FALSE;
-
-END;
-$$ LANGUAGE PLPGSQL;
-
-COMMIT;