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,
--- /dev/null
+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;
+++ /dev/null
-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;