[open-ils-commits] ***SPAM*** [GIT] Evergreen ILS branch master updated. afe883fc8cc0d6883ef839868c367a3c30cbd8e1
Evergreen Git
git at git.evergreen-ils.org
Mon Nov 10 21:04:15 EST 2014
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Evergreen ILS".
The branch, master has been updated
via afe883fc8cc0d6883ef839868c367a3c30cbd8e1 (commit)
via b72d5f61a7b31fd0bbf0ca186fb56d424c838461 (commit)
from b343d1c308b6d7549f0289b470f58fd45afb5c58 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit afe883fc8cc0d6883ef839868c367a3c30cbd8e1
Author: Ben Shum <bshum at biblio.org>
Date: Mon Nov 10 21:00:42 2014 -0500
LP#1391290: Stamping upgrade script for authority reingest setting
Signed-off-by: Ben Shum <bshum at biblio.org>
diff --git a/Open-ILS/src/sql/Pg/002.schema.config.sql b/Open-ILS/src/sql/Pg/002.schema.config.sql
index ffe5cdb..c097449 100644
--- a/Open-ILS/src/sql/Pg/002.schema.config.sql
+++ b/Open-ILS/src/sql/Pg/002.schema.config.sql
@@ -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 ('0896', :eg_version); -- tsbere/csharp/bshum
+INSERT INTO config.upgrade_log (version, applied_to) VALUES ('0897', :eg_version); -- csharp/miker/bshum
CREATE TABLE config.bib_source (
id SERIAL PRIMARY KEY,
diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.authority_disable_auto_update.sql b/Open-ILS/src/sql/Pg/upgrade/0897.schema.authority_disable_auto_update.sql
similarity index 98%
rename from Open-ILS/src/sql/Pg/upgrade/XXXX.schema.authority_disable_auto_update.sql
rename to Open-ILS/src/sql/Pg/upgrade/0897.schema.authority_disable_auto_update.sql
index 3e28018..c59f944 100644
--- a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.authority_disable_auto_update.sql
+++ b/Open-ILS/src/sql/Pg/upgrade/0897.schema.authority_disable_auto_update.sql
@@ -1,6 +1,6 @@
BEGIN;
-SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version);
+SELECT evergreen.upgrade_deps_block_check('0897', :eg_version);
CREATE OR REPLACE FUNCTION authority.indexing_ingest_or_delete() RETURNS TRIGGER AS $BODY$
DECLARE
commit b72d5f61a7b31fd0bbf0ca186fb56d424c838461
Author: Chris Sharp <csharp at georgialibraries.org>
Date: Mon Nov 10 14:43:22 2014 -0500
LP#1391290: Respect setting to disable authority propagation on reingest
In commit a1612cfd6 we lost the ability to disable authority propagation on
record update. Here, we put it back.
Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
Signed-off-by: Mike Rylander <mrylander at gmail.com>
Signed-off-by: Ben Shum <bshum at biblio.org>
diff --git a/Open-ILS/src/sql/Pg/999.functions.global.sql b/Open-ILS/src/sql/Pg/999.functions.global.sql
index 69b77e2..a339b1a 100644
--- a/Open-ILS/src/sql/Pg/999.functions.global.sql
+++ b/Open-ILS/src/sql/Pg/999.functions.global.sql
@@ -1613,9 +1613,13 @@ BEGIN
RETURN NEW;
END IF;
- -- Propagate these updates to any linked bib records
- PERFORM authority.propagate_changes(NEW.id) FROM authority.record_entry WHERE id = NEW.id;
+ -- Unless there's a setting stopping us, propagate these updates to any linked bib records
+ PERFORM * FROM config.internal_flag WHERE name = 'ingest.disable_authority_auto_update' AND enabled;
+ IF NOT FOUND THEN
+ PERFORM authority.propagate_changes(NEW.id);
+ END IF;
+
DELETE FROM authority.simple_heading WHERE record = NEW.id;
DELETE FROM authority.authority_linking WHERE source = NEW.id;
END IF;
diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.authority_disable_auto_update.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.authority_disable_auto_update.sql
new file mode 100644
index 0000000..3e28018
--- /dev/null
+++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.authority_disable_auto_update.sql
@@ -0,0 +1,88 @@
+BEGIN;
+
+SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version);
+
+CREATE OR REPLACE FUNCTION authority.indexing_ingest_or_delete() RETURNS TRIGGER AS $BODY$
+DECLARE
+ ashs authority.simple_heading%ROWTYPE;
+ mbe_row metabib.browse_entry%ROWTYPE;
+ mbe_id BIGINT;
+ ash_id BIGINT;
+BEGIN
+
+ IF NEW.deleted IS TRUE THEN -- If this authority is deleted
+ DELETE FROM authority.bib_linking WHERE authority = NEW.id; -- Avoid updating fields in bibs that are no longer visible
+ DELETE FROM authority.full_rec WHERE record = NEW.id; -- Avoid validating fields against deleted authority records
+ DELETE FROM authority.simple_heading WHERE record = NEW.id;
+ -- Should remove matching $0 from controlled fields at the same time?
+
+ -- XXX What do we about the actual linking subfields present in
+ -- authority records that target this one when this happens?
+ DELETE FROM authority.authority_linking
+ WHERE source = NEW.id OR target = NEW.id;
+
+ RETURN NEW; -- and we're done
+ END IF;
+
+ IF TG_OP = 'UPDATE' THEN -- re-ingest?
+ PERFORM * FROM config.internal_flag WHERE name = 'ingest.reingest.force_on_same_marc' AND enabled;
+
+ IF NOT FOUND AND OLD.marc = NEW.marc THEN -- don't do anything if the MARC didn't change
+ RETURN NEW;
+ END IF;
+
+ -- Unless there's a setting stopping us, propagate these updates to any linked bib records
+ PERFORM * FROM config.internal_flag WHERE name = 'ingest.disable_authority_auto_update' AND enabled;
+
+ IF NOT FOUND THEN
+ PERFORM authority.propagate_changes(NEW.id);
+ END IF;
+
+ DELETE FROM authority.simple_heading WHERE record = NEW.id;
+ DELETE FROM authority.authority_linking WHERE source = NEW.id;
+ END IF;
+
+ INSERT INTO authority.authority_linking (source, target, field)
+ SELECT source, target, field FROM authority.calculate_authority_linking(
+ NEW.id, NEW.control_set, NEW.marc::XML
+ );
+
+ FOR ashs IN SELECT * FROM authority.simple_heading_set(NEW.marc) LOOP
+
+ INSERT INTO authority.simple_heading (record,atag,value,sort_value)
+ VALUES (ashs.record, ashs.atag, ashs.value, ashs.sort_value);
+ ash_id := CURRVAL('authority.simple_heading_id_seq'::REGCLASS);
+
+ SELECT INTO mbe_row * FROM metabib.browse_entry
+ WHERE value = ashs.value AND sort_value = ashs.sort_value;
+
+ IF FOUND THEN
+ mbe_id := mbe_row.id;
+ ELSE
+ INSERT INTO metabib.browse_entry
+ ( value, sort_value ) VALUES
+ ( ashs.value, ashs.sort_value );
+
+ mbe_id := CURRVAL('metabib.browse_entry_id_seq'::REGCLASS);
+ END IF;
+
+ INSERT INTO metabib.browse_entry_simple_heading_map (entry,simple_heading) VALUES (mbe_id,ash_id);
+
+ END LOOP;
+
+ -- Flatten and insert the afr data
+ PERFORM * FROM config.internal_flag WHERE name = 'ingest.disable_authority_full_rec' AND enabled;
+ IF NOT FOUND THEN
+ PERFORM authority.reingest_authority_full_rec(NEW.id);
+ PERFORM * FROM config.internal_flag WHERE name = 'ingest.disable_authority_rec_descriptor' AND enabled;
+ IF NOT FOUND THEN
+ PERFORM authority.reingest_authority_rec_descriptor(NEW.id);
+ END IF;
+ END IF;
+
+ RETURN NEW;
+END;
+$BODY$ LANGUAGE plpgsql;
+
+COMMIT;
+
-----------------------------------------------------------------------
Summary of changes:
Open-ILS/src/sql/Pg/002.schema.config.sql | 2 +-
Open-ILS/src/sql/Pg/999.functions.global.sql | 8 ++-
.../0897.schema.authority_disable_auto_update.sql | 88 ++++++++++++++++++++
3 files changed, 95 insertions(+), 3 deletions(-)
create mode 100644 Open-ILS/src/sql/Pg/upgrade/0897.schema.authority_disable_auto_update.sql
hooks/post-receive
--
Evergreen ILS
More information about the open-ils-commits
mailing list