LP#1304559 - stamping upgrade script for vandelay_record_attr_to_flat
authorBen Shum <bshum@biblio.org>
Thu, 10 Apr 2014 21:47:26 +0000 (17:47 -0400)
committerBen Shum <bshum@biblio.org>
Thu, 10 Apr 2014 21:47:26 +0000 (17:47 -0400)
Signed-off-by: Ben Shum <bshum@biblio.org>
Open-ILS/src/sql/Pg/002.schema.config.sql
Open-ILS/src/sql/Pg/upgrade/0879.function.vandelay_record_attr_to_flat.sql [new file with mode: 0644]
Open-ILS/src/sql/Pg/upgrade/XXXX.function.vandelay_record_attr_to_flat.sql [deleted file]

index e604c76..9b02560 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 ('0878', :eg_version); -- miker/dbwells/gmcharlt
+INSERT INTO config.upgrade_log (version, applied_to) VALUES ('0879', :eg_version); -- dbwells/bshum
 
 CREATE TABLE config.bib_source (
        id              SERIAL  PRIMARY KEY,
diff --git a/Open-ILS/src/sql/Pg/upgrade/0879.function.vandelay_record_attr_to_flat.sql b/Open-ILS/src/sql/Pg/upgrade/0879.function.vandelay_record_attr_to_flat.sql
new file mode 100644 (file)
index 0000000..76afdf1
--- /dev/null
@@ -0,0 +1,78 @@
+BEGIN;
+
+SELECT evergreen.upgrade_deps_block_check('0879', :eg_version);
+
+CREATE OR REPLACE FUNCTION vandelay._get_expr_push_jrow(
+    node vandelay.match_set_point,
+    tags_rstore HSTORE
+) RETURNS VOID AS $$
+DECLARE
+    jrow        TEXT;
+    my_alias    TEXT;
+    op          TEXT;
+    tagkey      TEXT;
+    caseless    BOOL;
+    jrow_count  INT;
+    my_using    TEXT;
+    my_join     TEXT;
+BEGIN
+    -- remember $1 is tags_rstore, and $2 is svf_rstore
+
+    caseless := FALSE;
+    SELECT COUNT(*) INTO jrow_count FROM _vandelay_tmp_jrows;
+    IF jrow_count > 0 THEN
+        my_using := ' USING (record)';
+        my_join := 'FULL OUTER JOIN';
+    ELSE
+        my_using := '';
+        my_join := 'FROM';
+    END IF;
+
+    IF node.tag IS NOT NULL THEN
+        caseless := (node.tag IN ('020', '022', '024'));
+        tagkey := node.tag;
+        IF node.subfield IS NOT NULL THEN
+            tagkey := tagkey || node.subfield;
+        END IF;
+    END IF;
+
+    IF node.negate THEN
+        IF caseless THEN
+            op := 'NOT LIKE';
+        ELSE
+            op := '<>';
+        END IF;
+    ELSE
+        IF caseless THEN
+            op := 'LIKE';
+        ELSE
+            op := '=';
+        END IF;
+    END IF;
+
+    my_alias := 'n' || node.id::TEXT;
+
+    jrow := my_join || ' (SELECT *, ';
+    IF node.tag IS NOT NULL THEN
+        jrow := jrow  || node.quality ||
+            ' AS quality FROM metabib.full_rec mfr WHERE mfr.tag = ''' ||
+            node.tag || '''';
+        IF node.subfield IS NOT NULL THEN
+            jrow := jrow || ' AND mfr.subfield = ''' ||
+                node.subfield || '''';
+        END IF;
+        jrow := jrow || ' AND (';
+        jrow := jrow || vandelay._node_tag_comparisons(caseless, op, tags_rstore, tagkey);
+        jrow := jrow || ')) ' || my_alias || my_using || E'\n';
+    ELSE    -- svf
+        jrow := jrow || 'id AS record, ' || node.quality ||
+            ' AS quality FROM metabib.record_attr_flat mraf WHERE mraf.attr = ''' ||
+            node.svf || ''' AND mraf.value ' || op || ' $2->''' || node.svf || ''') ' ||
+            my_alias || my_using || E'\n';
+    END IF;
+    INSERT INTO _vandelay_tmp_jrows (j) VALUES (jrow);
+END;
+$$ LANGUAGE PLPGSQL;
+
+COMMIT;
+
diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.function.vandelay_record_attr_to_flat.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.function.vandelay_record_attr_to_flat.sql
deleted file mode 100644 (file)
index 12ab394..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-BEGIN;
-
---SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version);
-
-CREATE OR REPLACE FUNCTION vandelay._get_expr_push_jrow(
-    node vandelay.match_set_point,
-    tags_rstore HSTORE
-) RETURNS VOID AS $$
-DECLARE
-    jrow        TEXT;
-    my_alias    TEXT;
-    op          TEXT;
-    tagkey      TEXT;
-    caseless    BOOL;
-    jrow_count  INT;
-    my_using    TEXT;
-    my_join     TEXT;
-BEGIN
-    -- remember $1 is tags_rstore, and $2 is svf_rstore
-
-    caseless := FALSE;
-    SELECT COUNT(*) INTO jrow_count FROM _vandelay_tmp_jrows;
-    IF jrow_count > 0 THEN
-        my_using := ' USING (record)';
-        my_join := 'FULL OUTER JOIN';
-    ELSE
-        my_using := '';
-        my_join := 'FROM';
-    END IF;
-
-    IF node.tag IS NOT NULL THEN
-        caseless := (node.tag IN ('020', '022', '024'));
-        tagkey := node.tag;
-        IF node.subfield IS NOT NULL THEN
-            tagkey := tagkey || node.subfield;
-        END IF;
-    END IF;
-
-    IF node.negate THEN
-        IF caseless THEN
-            op := 'NOT LIKE';
-        ELSE
-            op := '<>';
-        END IF;
-    ELSE
-        IF caseless THEN
-            op := 'LIKE';
-        ELSE
-            op := '=';
-        END IF;
-    END IF;
-
-    my_alias := 'n' || node.id::TEXT;
-
-    jrow := my_join || ' (SELECT *, ';
-    IF node.tag IS NOT NULL THEN
-        jrow := jrow  || node.quality ||
-            ' AS quality FROM metabib.full_rec mfr WHERE mfr.tag = ''' ||
-            node.tag || '''';
-        IF node.subfield IS NOT NULL THEN
-            jrow := jrow || ' AND mfr.subfield = ''' ||
-                node.subfield || '''';
-        END IF;
-        jrow := jrow || ' AND (';
-        jrow := jrow || vandelay._node_tag_comparisons(caseless, op, tags_rstore, tagkey);
-        jrow := jrow || ')) ' || my_alias || my_using || E'\n';
-    ELSE    -- svf
-        jrow := jrow || 'id AS record, ' || node.quality ||
-            ' AS quality FROM metabib.record_attr_flat mraf WHERE mraf.attr = ''' ||
-            node.svf || ''' AND mraf.value ' || op || ' $2->''' || node.svf || ''') ' ||
-            my_alias || my_using || E'\n';
-    END IF;
-    INSERT INTO _vandelay_tmp_jrows (j) VALUES (jrow);
-END;
-$$ LANGUAGE PLPGSQL;
-
-COMMIT;
-