From d388f7019a90a5809514407d7139eb1ed1843432 Mon Sep 17 00:00:00 2001 From: Galen Charlton Date: Tue, 26 Sep 2017 16:07:57 -0400 Subject: [PATCH] LP#1719726: adjust computation of bre visibility attribute vector This patch moves the computation of the visiblity attribute vector on biblio.record_entry to a separate transaction. Credit to Chris Sharp for ideas on speeding up this part of the upgrade. Signed-off-by: Galen Charlton Signed-off-by: Mike Rylander Signed-off-by: Galen Charlton --- .../2.12.5-3.0-beta1-upgrade-db.sql | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/Open-ILS/src/sql/Pg/version-upgrade/2.12.5-3.0-beta1-upgrade-db.sql b/Open-ILS/src/sql/Pg/version-upgrade/2.12.5-3.0-beta1-upgrade-db.sql index 97ca7fa5ff..7fc9b51936 100644 --- a/Open-ILS/src/sql/Pg/version-upgrade/2.12.5-3.0-beta1-upgrade-db.sql +++ b/Open-ILS/src/sql/Pg/version-upgrade/2.12.5-3.0-beta1-upgrade-db.sql @@ -2564,7 +2564,7 @@ INSERT INTO asset.copy_vis_attr_cache (target_copy, record, vis_attr_vector) FROM asset.copy cp JOIN asset.call_number cn ON (cp.call_number = cn.id); -UPDATE biblio.record_entry SET vis_attr_vector = biblio.calculate_bib_visibility_attribute_set(id); +-- updating vis cache for biblio.record_entry deferred to end CREATE TRIGGER z_opac_vis_mat_view_tgr BEFORE INSERT OR UPDATE ON biblio.record_entry FOR EACH ROW EXECUTE PROCEDURE asset.cache_copy_visibility(); CREATE TRIGGER z_opac_vis_mat_view_tgr AFTER INSERT OR DELETE ON biblio.peer_bib_copy_map FOR EACH ROW EXECUTE PROCEDURE asset.cache_copy_visibility(); @@ -7081,6 +7081,30 @@ CREATE TRIGGER c_maintain_control_numbers BEFORE INSERT OR UPDATE ON biblio.reco COMMIT; +\echo --------------------------------------------------------------------- +\echo Updating visibility attribute vector for biblio.record_entry +BEGIN; + +ALTER TABLE biblio.record_entry DISABLE TRIGGER a_marcxml_is_well_formed; +ALTER TABLE biblio.record_entry DISABLE TRIGGER aaa_indexing_ingest_or_delete; +ALTER TABLE biblio.record_entry DISABLE TRIGGER audit_biblio_record_entry_update_trigger; +ALTER TABLE biblio.record_entry DISABLE TRIGGER b_maintain_901; +ALTER TABLE biblio.record_entry DISABLE TRIGGER bbb_simple_rec_trigger; +ALTER TABLE biblio.record_entry DISABLE TRIGGER c_maintain_control_numbers; +ALTER TABLE biblio.record_entry DISABLE TRIGGER fingerprint_tgr; + +UPDATE biblio.record_entry SET vis_attr_vector = biblio.calculate_bib_visibility_attribute_set(id) WHERE NOT DELETED; + +ALTER TABLE biblio.record_entry ENABLE TRIGGER a_marcxml_is_well_formed; +ALTER TABLE biblio.record_entry ENABLE TRIGGER aaa_indexing_ingest_or_delete; +ALTER TABLE biblio.record_entry ENABLE TRIGGER audit_biblio_record_entry_update_trigger; +ALTER TABLE biblio.record_entry ENABLE TRIGGER b_maintain_901; +ALTER TABLE biblio.record_entry ENABLE TRIGGER bbb_simple_rec_trigger; +ALTER TABLE biblio.record_entry ENABLE TRIGGER c_maintain_control_numbers; +ALTER TABLE biblio.record_entry ENABLE TRIGGER fingerprint_tgr; + +COMMIT; + \echo --------------------------------------------------------------------- \echo Reingest display fields. This can ban canceled via Ctrl-C and run at \echo a later time with the following (or similar) SQL: -- 2.43.2