Stamping upgrade for serials harmonization
authorMike Rylander <mrylander@gmail.com>
Mon, 11 Mar 2013 20:22:38 +0000 (16:22 -0400)
committerMike Rylander <mrylander@gmail.com>
Mon, 11 Mar 2013 20:22:38 +0000 (16:22 -0400)
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Open-ILS/src/sql/Pg/002.schema.config.sql
Open-ILS/src/sql/Pg/upgrade/0767.schema.serials-holding-code-test-improved.sql [new file with mode: 0644]
Open-ILS/src/sql/Pg/upgrade/XXXX.schema.serials-holding-code-test-improved.sql [deleted file]

index b485fb7..ea34dd5 100644 (file)
@@ -90,7 +90,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 ('0766', :eg_version); -- gmc/miker
+INSERT INTO config.upgrade_log (version, applied_to) VALUES ('0767', :eg_version); -- senator/miker
 
 CREATE TABLE config.bib_source (
        id              SERIAL  PRIMARY KEY,
diff --git a/Open-ILS/src/sql/Pg/upgrade/0767.schema.serials-holding-code-test-improved.sql b/Open-ILS/src/sql/Pg/upgrade/0767.schema.serials-holding-code-test-improved.sql
new file mode 100644 (file)
index 0000000..378bdfc
--- /dev/null
@@ -0,0 +1,38 @@
+BEGIN;
+
+SELECT evergreen.upgrade_deps_block_check('0767', :eg_version);
+
+CREATE OR REPLACE FUNCTION evergreen.could_be_serial_holding_code(TEXT) RETURNS BOOL AS $$
+    use JSON::XS;
+    use MARC::Field;
+
+    eval {
+        my $holding_code = (new JSON::XS)->decode(shift);
+        new MARC::Field('999', @$holding_code);
+    };
+    return 0 if $@; 
+    # verify that subfield labels are exactly one character long
+    foreach (keys %{ { @$holding_code } }) {
+        return 0 if length($_) != 1;
+    }
+    return 1;
+$$ LANGUAGE PLPERLU;
+
+COMMENT ON FUNCTION evergreen.could_be_serial_holding_code(TEXT) IS
+    'Return true if parameter is valid JSON representing an array that at minimu
+m doesn''t make MARC::Field balk and only has subfield labels exactly one character long.  Otherwise false.';
+
+
+-- This UPDATE throws away data, but only bad data that makes things break
+-- anyway.
+UPDATE serial.issuance
+    SET holding_code = NULL
+    WHERE NOT could_be_serial_holding_code(holding_code);
+
+ALTER TABLE serial.issuance
+    DROP CONSTRAINT IF EXISTS issuance_holding_code_check;
+
+ALTER TABLE serial.issuance
+    ADD CHECK (holding_code IS NULL OR could_be_serial_holding_code(holding_code));
+
+COMMIT;
diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.serials-holding-code-test-improved.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.serials-holding-code-test-improved.sql
deleted file mode 100644 (file)
index d1c3c38..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-BEGIN;
-
-SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version);
-
-CREATE OR REPLACE FUNCTION evergreen.could_be_serial_holding_code(TEXT) RETURNS BOOL AS $$
-    use JSON::XS;
-    use MARC::Field;
-
-    eval {
-        my $holding_code = (new JSON::XS)->decode(shift);
-        new MARC::Field('999', @$holding_code);
-    };
-    return 0 if $@; 
-    # verify that subfield labels are exactly one character long
-    foreach (keys %{ { @$holding_code } }) {
-        return 0 if length($_) != 1;
-    }
-    return 1;
-$$ LANGUAGE PLPERLU;
-
-COMMENT ON FUNCTION evergreen.could_be_serial_holding_code(TEXT) IS
-    'Return true if parameter is valid JSON representing an array that at minimu
-m doesn''t make MARC::Field balk and only has subfield labels exactly one character long.  Otherwise false.';
-
-
--- This UPDATE throws away data, but only bad data that makes things break
--- anyway.
-UPDATE serial.issuance
-    SET holding_code = NULL
-    WHERE NOT could_be_serial_holding_code(holding_code);
-
-ALTER TABLE serial.issuance
-    DROP CONSTRAINT IF EXISTS issuance_holding_code_check;
-
-ALTER TABLE serial.issuance
-    ADD CHECK (holding_code IS NULL OR could_be_serial_holding_code(holding_code));
-
-COMMIT;