From 9f0e929116fe7f294a76fbaf61fdfdf04cf6b461 Mon Sep 17 00:00:00 2001 From: Galen Charlton Date: Thu, 26 Dec 2013 20:11:31 +0000 Subject: [PATCH] accumulated DB upgrade tweaks Signed-off-by: Galen Charlton --- .../Pg/version-upgrade/2.3.2-2.3.3-upgrade-db.sql | 2 +- .../Pg/version-upgrade/2.4.3-2.5.0-upgrade-db.sql | 286 +-------------------- .../Pg/version-upgrade/2.5.0-2.5.1-upgrade-db.sql | 1 - 3 files changed, 3 insertions(+), 286 deletions(-) diff --git a/Open-ILS/src/sql/Pg/version-upgrade/2.3.2-2.3.3-upgrade-db.sql b/Open-ILS/src/sql/Pg/version-upgrade/2.3.2-2.3.3-upgrade-db.sql index 1773eda700..d18746f107 100644 --- a/Open-ILS/src/sql/Pg/version-upgrade/2.3.2-2.3.3-upgrade-db.sql +++ b/Open-ILS/src/sql/Pg/version-upgrade/2.3.2-2.3.3-upgrade-db.sql @@ -15,7 +15,7 @@ UPDATE config.metabib_field or mods32:role/mods32:roleTerm[text()='aut'] or mods32:role/mods32:roleTerm[text()='cre'] )]$$ - WHERE id = 7 + WHERE id = 6 ; SELECT metabib.reingest_metabib_field_entries(record, TRUE, TRUE, FALSE) diff --git a/Open-ILS/src/sql/Pg/version-upgrade/2.4.3-2.5.0-upgrade-db.sql b/Open-ILS/src/sql/Pg/version-upgrade/2.4.3-2.5.0-upgrade-db.sql index 80531c911b..2864c06d4f 100644 --- a/Open-ILS/src/sql/Pg/version-upgrade/2.4.3-2.5.0-upgrade-db.sql +++ b/Open-ILS/src/sql/Pg/version-upgrade/2.4.3-2.5.0-upgrade-db.sql @@ -9694,23 +9694,8 @@ $$ LANGUAGE PLPGSQL; INSERT INTO config.org_unit_setting_type (name, grp, datatype, label, description) -VALUES ( - 'opac.allow_pending_user', - 'opac', - 'bool', - oils_i18n_gettext( - 'opac.allow_pending_user', - 'Allow Patron Self-Registration', - 'coust', - 'label' - ), - oils_i18n_gettext( - 'opac.allow_pending_user', - 'Allow patrons to self-register, creating pending user accounts', - 'coust', - 'description' - ) -), ( +VALUES +( 'opac.pending_user_expire_interval', 'opac', 'interval', @@ -12066,16 +12051,6 @@ $func$ LANGUAGE PLPGSQL; --- check whether patch can be applied -SELECT evergreen.upgrade_deps_block_check('0838', :eg_version); - -DELETE FROM config.metabib_field_index_norm_map - WHERE field = 25 AND norm IN ( - SELECT id - FROM config.index_normalizer - WHERE func IN ('search_normalize','split_date_range') - ); - -- check whether patch can be applied SELECT evergreen.upgrade_deps_block_check('0839', :eg_version); @@ -12089,91 +12064,6 @@ WHERE field_class = 'title' AND name = 'alternative' ; -SELECT evergreen.upgrade_deps_block_check('0840', :eg_version); - -INSERT INTO config.usr_setting_type (name,grp,opac_visible,label,description,datatype) VALUES ( - 'ui.grid_columns.conify.config.circ_matrix_matchpoint', - 'gui', - FALSE, - oils_i18n_gettext( - 'ui.grid_columns.conify.config.circ_matrix_matchpoint', - 'Circulation Policy Configuration', - 'cust', - 'label' - ), - oils_i18n_gettext( - 'ui.grid_columns.conify.config.circ_matrix_matchpoint', - 'Circulation Policy Configuration Column Settings', - 'cust', - 'description' - ), - 'string' -); - - --- check whether patch can be applied -SELECT evergreen.upgrade_deps_block_check('0841', :eg_version); - -ALTER TABLE config.metabib_field_ts_map DROP CONSTRAINT metabib_field_ts_map_metabib_field_fkey; -ALTER TABLE config.metabib_search_alias DROP CONSTRAINT metabib_search_alias_field_fkey; -ALTER TABLE config.z3950_index_field_map DROP CONSTRAINT z3950_index_field_map_metabib_field_fkey; -ALTER TABLE metabib.browse_entry_def_map DROP CONSTRAINT browse_entry_def_map_def_fkey; - -ALTER TABLE config.metabib_field_ts_map ADD CONSTRAINT metabib_field_ts_map_metabib_field_fkey FOREIGN KEY (metabib_field) REFERENCES config.metabib_field(id) DEFERRABLE INITIALLY DEFERRED; -ALTER TABLE config.metabib_search_alias ADD CONSTRAINT metabib_search_alias_field_fkey FOREIGN KEY (field) REFERENCES config.metabib_field(id) DEFERRABLE INITIALLY DEFERRED; -ALTER TABLE config.z3950_index_field_map ADD CONSTRAINT z3950_index_field_map_metabib_field_fkey FOREIGN KEY (metabib_field) REFERENCES config.metabib_field(id) DEFERRABLE INITIALLY DEFERRED; -ALTER TABLE metabib.browse_entry_def_map ADD CONSTRAINT browse_entry_def_map_def_fkey FOREIGN KEY (def) REFERENCES config.metabib_field(id) DEFERRABLE INITIALLY DEFERRED; - - -DROP FUNCTION IF EXISTS config.modify_metabib_field(source INT, target INT); -CREATE FUNCTION config.modify_metabib_field(v_source INT, target INT) RETURNS INT AS $func$ -DECLARE - f_class TEXT; - check_id INT; - target_id INT; -BEGIN - SELECT field_class INTO f_class FROM config.metabib_field WHERE id = v_source; - IF NOT FOUND THEN - RETURN 0; - END IF; - IF target IS NULL THEN - target_id = v_source + 1000; - ELSE - target_id = target; - END IF; - SELECT id FROM config.metabib_field INTO check_id WHERE id = target_id; - IF FOUND THEN - RAISE NOTICE 'Cannot bump config.metabib_field.id from % to %; the target ID already exists.', v_source, target_id; - RETURN 0; - END IF; - UPDATE config.metabib_field SET id = target_id WHERE id = v_source; - EXECUTE ' UPDATE metabib.' || f_class || '_field_entry SET field = ' || target_id || ' WHERE field = ' || v_source; - UPDATE config.metabib_field_ts_map SET metabib_field = target_id WHERE metabib_field = v_source; - UPDATE config.metabib_field_index_norm_map SET field = target_id WHERE field = v_source; - UPDATE search.relevance_adjustment SET field = target_id WHERE field = v_source; - UPDATE config.metabib_search_alias SET field = target_id WHERE field = v_source; - UPDATE config.z3950_index_field_map SET metabib_field = target_id WHERE metabib_field = v_source; - UPDATE metabib.browse_entry_def_map SET def = target_id WHERE def = v_source; - RETURN 1; -END; -$func$ LANGUAGE PLPGSQL; - -SELECT config.modify_metabib_field(id, NULL) - FROM config.metabib_field - WHERE id > 30; - -SELECT SETVAL('config.metabib_field_id_seq', GREATEST(1000, (SELECT MAX(id) FROM config.metabib_field))); - - --- check whether patch can be applied -SELECT evergreen.upgrade_deps_block_check('0842', :eg_version); - --- this upgrade is only for people coming from 2_3, and is a NO-OP for those on 2_4 -ALTER TABLE config.metabib_field_ts_map DROP CONSTRAINT metabib_field_ts_map_metabib_field_fkey; - -ALTER TABLE config.metabib_field_ts_map ADD CONSTRAINT metabib_field_ts_map_metabib_field_fkey FOREIGN KEY (metabib_field) REFERENCES config.metabib_field(id) ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED; - - -- check whether patch can be applied SELECT evergreen.upgrade_deps_block_check('0843', :eg_version); @@ -15811,178 +15701,6 @@ ALTER FUNCTION metabib.browse_authority_pivot (integer[], text) STABLE; ALTER FUNCTION metabib.browse_authority_refs_pivot (integer[], text) STABLE; -SELECT evergreen.upgrade_deps_block_check('0846', :eg_version); - -CREATE OR REPLACE FUNCTION vandelay.add_field ( target_xml TEXT, source_xml TEXT, field TEXT, force_add INT ) RETURNS TEXT AS $_$ - - use MARC::Record; - use MARC::File::XML (BinaryEncoding => 'UTF-8'); - use MARC::Charset; - use strict; - - MARC::Charset->assume_unicode(1); - - my $target_xml = shift; - my $source_xml = shift; - my $field_spec = shift; - my $force_add = shift || 0; - - my $target_r = MARC::Record->new_from_xml( $target_xml ); - my $source_r = MARC::Record->new_from_xml( $source_xml ); - - return $target_xml unless ($target_r && $source_r); - - my @field_list = split(',', $field_spec); - - my %fields; - for my $f (@field_list) { - $f =~ s/^\s*//; $f =~ s/\s*$//; - if ($f =~ /^(.{3})(\w*)(?:\[([^]]*)\])?$/) { - my $field = $1; - $field =~ s/\s+//; - my $sf = $2; - $sf =~ s/\s+//; - my $match = $3; - $match =~ s/^\s*//; $match =~ s/\s*$//; - $fields{$field} = { sf => [ split('', $sf) ] }; - if ($match) { - my ($msf,$mre) = split('~', $match); - if (length($msf) > 0 and length($mre) > 0) { - $msf =~ s/^\s*//; $msf =~ s/\s*$//; - $mre =~ s/^\s*//; $mre =~ s/\s*$//; - $fields{$field}{match} = { sf => $msf, re => qr/$mre/ }; - } - } - } - } - - for my $f ( keys %fields) { - if ( @{$fields{$f}{sf}} ) { - for my $from_field ($source_r->field( $f )) { - my @tos = $target_r->field( $f ); - if (!@tos) { - next if (exists($fields{$f}{match}) and !$force_add); - my @new_fields = map { $_->clone } $source_r->field( $f ); - $target_r->insert_fields_ordered( @new_fields ); - } else { - for my $to_field (@tos) { - if (exists($fields{$f}{match})) { - next unless (grep { $_ =~ $fields{$f}{match}{re} } $to_field->subfield($fields{$f}{match}{sf})); - } - for my $old_sf ($from_field->subfields) { - $to_field->add_subfields( @$old_sf ) if grep(/$$old_sf[0]/,@{$fields{$f}{sf}}); - } - } - } - } - } else { - my @new_fields = map { $_->clone } $source_r->field( $f ); - $target_r->insert_fields_ordered( @new_fields ); - } - } - - $target_xml = $target_r->as_xml_record; - $target_xml =~ s/^<\?.+?\?>$//mo; - $target_xml =~ s/\n//sgo; - $target_xml =~ s/>\s+ 0 THEN - FOR bib_field IN SELECT * FROM authority.control_set_bib_field WHERE authority_field = main_entry.id LOOP - SELECT XMLELEMENT( -- XMLAGG avoids magical creation, but requires unnest subquery - name datafield, - XMLATTRIBUTES(bib_field.tag AS tag, auth_i1 AS ind1, auth_i2 AS ind2), - XMLAGG(UNNEST) - ) INTO tmp_data FROM UNNEST(XPATH('//*[local-name()="subfield"]', auth_field[1])); - replace_data := replace_data || tmp_data; - replace_rules := replace_rules || ( bib_field.tag || main_entry.sf_list || E'[0~\\)' || auth_id || '$]' ); - tmp_data = NULL; - END LOOP; - EXIT; - END IF; - END LOOP; - - SELECT XMLAGG(UNNEST) INTO tmp_data FROM UNNEST(replace_data); - - RETURN XMLELEMENT( - name record, - XMLATTRIBUTES('http://www.loc.gov/MARC21/slim' AS xmlns), - XMLELEMENT( name leader, '00881nam a2200193 4500'), - tmp_data, - XMLELEMENT( - name datafield, - XMLATTRIBUTES( '905' AS tag, ' ' AS ind1, ' ' AS ind2), - XMLELEMENT( - name subfield, - XMLATTRIBUTES('r' AS code), - ARRAY_TO_STRING(replace_rules,',') - ) - ) - )::TEXT; -END; -$f$ STABLE LANGUAGE PLPGSQL; - SELECT evergreen.upgrade_deps_block_check('0827', :eg_version); SET CONSTRAINTS ALL IMMEDIATE; -- otherwise, the ALTER TABLE statement below diff --git a/Open-ILS/src/sql/Pg/version-upgrade/2.5.0-2.5.1-upgrade-db.sql b/Open-ILS/src/sql/Pg/version-upgrade/2.5.0-2.5.1-upgrade-db.sql index 61582adb67..95ca934242 100644 --- a/Open-ILS/src/sql/Pg/version-upgrade/2.5.0-2.5.1-upgrade-db.sql +++ b/Open-ILS/src/sql/Pg/version-upgrade/2.5.0-2.5.1-upgrade-db.sql @@ -3,7 +3,6 @@ BEGIN; INSERT INTO config.upgrade_log (version, applied_to) VALUES ('2.5.1', :eg_version); -SELECT evergreen.upgrade_deps_block_check('0848', :eg_version); CREATE OR REPLACE FUNCTION authority.normalize_heading( marcxml TEXT, no_thesaurus BOOL ) RETURNS TEXT AS $func$ DECLARE -- 2.11.0