[open-ils-commits] [GIT] Evergreen ILS branch master updated. 2f1cee0185493e985c3258f5ff1b3b57f885b19b

Evergreen Git git at git.evergreen-ils.org
Thu Nov 15 21:04:28 EST 2018


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  2f1cee0185493e985c3258f5ff1b3b57f885b19b (commit)
       via  020e2e74c9f336fab7bcecca78ff7d3315279c43 (commit)
      from  9023f96c0e976fc3e0e6f688244cda041e3c7390 (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 2f1cee0185493e985c3258f5ff1b3b57f885b19b
Author: Ben Shum <ben at evergreener.net>
Date:   Thu Nov 15 21:02:54 2018 -0500

    LP#1091885: Stamping upgrade script
    
    Signed-off-by: Ben Shum <ben at evergreener.net>

diff --git a/Open-ILS/src/sql/Pg/002.schema.config.sql b/Open-ILS/src/sql/Pg/002.schema.config.sql
index 7fa7f2e..0930dff 100644
--- a/Open-ILS/src/sql/Pg/002.schema.config.sql
+++ b/Open-ILS/src/sql/Pg/002.schema.config.sql
@@ -92,7 +92,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 ('1134', :eg_version); -- dbwells/miker
+INSERT INTO config.upgrade_log (version, applied_to) VALUES ('1135', :eg_version); -- rhamby/cesardv/bshum
 
 CREATE TABLE config.bib_source (
 	id		SERIAL	PRIMARY KEY,
diff --git a/Open-ILS/src/sql/Pg/upgrade/xxxx.schema.lp_1091885_reingest_on_undelete.sql b/Open-ILS/src/sql/Pg/upgrade/1135.schema.lp_1091885_reingest_on_undelete.sql
similarity index 98%
rename from Open-ILS/src/sql/Pg/upgrade/xxxx.schema.lp_1091885_reingest_on_undelete.sql
rename to Open-ILS/src/sql/Pg/upgrade/1135.schema.lp_1091885_reingest_on_undelete.sql
index b5db947..c2a6104 100644
--- a/Open-ILS/src/sql/Pg/upgrade/xxxx.schema.lp_1091885_reingest_on_undelete.sql
+++ b/Open-ILS/src/sql/Pg/upgrade/1135.schema.lp_1091885_reingest_on_undelete.sql
@@ -1,6 +1,6 @@
 BEGIN;
 
-SELECT evergreen.upgrade_deps_block_check('xxxx', :eg_version);
+SELECT evergreen.upgrade_deps_block_check('1135', :eg_version);
 
 CREATE OR REPLACE FUNCTION biblio.indexing_ingest_or_delete () RETURNS TRIGGER AS $func$
 DECLARE

commit 020e2e74c9f336fab7bcecca78ff7d3315279c43
Author: Rogan Hamby <rogan.hamby at gmail.com>
Date:   Fri Mar 23 10:54:05 2018 -0400

    LP#1091885: make sure bibs get reingested on undelete
    
    Signed-off-by: Rogan Hamby <rogan at equinoxinitiative.org>
    Signed-off-by: Cesar Velez <cesar.velez at equinoxinitiative.org>
    Signed-off-by: Ben Shum <ben at evergreener.net>

diff --git a/Open-ILS/src/sql/Pg/030.schema.metabib.sql b/Open-ILS/src/sql/Pg/030.schema.metabib.sql
index bc72c89..dab8316 100644
--- a/Open-ILS/src/sql/Pg/030.schema.metabib.sql
+++ b/Open-ILS/src/sql/Pg/030.schema.metabib.sql
@@ -1870,7 +1870,7 @@ BEGIN
         RETURN NEW; -- and we're done
     END IF;
 
-    IF TG_OP = 'UPDATE' THEN -- re-ingest?
+    IF TG_OP = 'UPDATE' AND OLD.deleted IS FALSE 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
diff --git a/Open-ILS/src/sql/Pg/t/lp1091885_reingest_on_undelete.pg b/Open-ILS/src/sql/Pg/t/lp1091885_reingest_on_undelete.pg
new file mode 100644
index 0000000..cc45a62
--- /dev/null
+++ b/Open-ILS/src/sql/Pg/t/lp1091885_reingest_on_undelete.pg
@@ -0,0 +1,36 @@
+BEGIN;
+
+SELECT plan(3);
+
+----------------------------------
+-- Setup Test environment and data
+----------------------------------
+
+-- create bib 71,000
+INSERT into biblio.record_entry (id, marc, last_xact_id)
+  VALUES (71000, 
+  $$
+  <record xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd" xmlns="http://www.loc.gov/MARC21/slim"><leader>00934|jm a2200241 a 4500</leader><controlfield tag="001">03-0003745</controlfield><controlfield tag="005">19991118131708.0</controlfield><controlfield tag="008">971016n nyuuuu eng </controlfield><datafield tag="050" ind1=" " ind2=" "><subfield code="a">4539</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Bart&#xF3;k, B&#xE9;la,</subfield><subfield code="d">1881-1945.</subfield></datafield><datafield tag="240" ind1=" " ind2=" "><subfield code="t">Concertos,</subfield><subfield code="m">piano,</subfield><subfield code="n">no. 1,</subfield><subfield code="n">Sz. 83</subfield><subfield code="f">(1926) </subfield><subfield code="a">Concertos,</subfield><subfield code="m">piano,</subfield><subfield code="n">no. 1,</subfield><subfie
 ld code="n">Sz. 83,</subfield><subfield code="n">(1926)</subfield></datafield><datafield tag="245" ind1=" " ind2=" "><subfield code="a">Piano concerto no. 1 (1926) ; Rhapsody, op. 1 (1904)</subfield></datafield><datafield tag="260" ind1=" " ind2=" "><subfield code="a">New York, NY :</subfield><subfield code="b">Vox</subfield></datafield></record>
+  $$,
+  'PGTAP'
+  );
+
+-----------------------------------------
+-- Test biblio.indexing_ingest_or_delete
+-----------------------------------------
+
+-- initially record attributes should exist since the record is inserted
+SELECT is((SELECT EXISTS(SELECT 1 FROM metabib.record_attr WHERE id = 71000)), TRUE, 'Entries exist.');
+
+-- check to see if record attributes are removed when the record is deleted
+UPDATE biblio.record_entry SET deleted = TRUE WHERE id = 71000;
+SELECT is((SELECT EXISTS(SELECT 1 FROM metabib.record_attr WHERE id = 71000)), FALSE, 'Entries should not exist.');
+
+-- check to see if record attributes are restored when the record is undeleted
+UPDATE biblio.record_entry SET deleted = FALSE WHERE id = 71000;
+SELECT is((SELECT EXISTS(SELECT 1 FROM metabib.record_attr WHERE id = 71000)), TRUE, 'Entries exist.');
+
+SELECT * FROM finish();
+
+ROLLBACK;
+
diff --git a/Open-ILS/src/sql/Pg/upgrade/xxxx.schema.lp_1091885_reingest_on_undelete.sql b/Open-ILS/src/sql/Pg/upgrade/xxxx.schema.lp_1091885_reingest_on_undelete.sql
new file mode 100644
index 0000000..b5db947
--- /dev/null
+++ b/Open-ILS/src/sql/Pg/upgrade/xxxx.schema.lp_1091885_reingest_on_undelete.sql
@@ -0,0 +1,83 @@
+BEGIN;
+
+SELECT evergreen.upgrade_deps_block_check('xxxx', :eg_version);
+
+CREATE OR REPLACE FUNCTION biblio.indexing_ingest_or_delete () RETURNS TRIGGER AS $func$
+DECLARE
+    tmp_bool BOOL;
+BEGIN
+
+    IF NEW.deleted THEN -- If this bib is deleted
+
+        PERFORM * FROM config.internal_flag WHERE
+            name = 'ingest.metarecord_mapping.preserve_on_delete' AND enabled;
+
+        tmp_bool := FOUND; -- Just in case this is changed by some other statement
+
+        PERFORM metabib.remap_metarecord_for_bib( NEW.id, NEW.fingerprint, TRUE, tmp_bool );
+
+        IF NOT tmp_bool THEN
+            -- One needs to keep these around to support searches
+            -- with the #deleted modifier, so one should turn on the named
+            -- internal flag for that functionality.
+            DELETE FROM metabib.record_attr_vector_list WHERE source = NEW.id;
+        END IF;
+
+        DELETE FROM authority.bib_linking WHERE bib = NEW.id; -- Avoid updating fields in bibs that are no longer visible
+        DELETE FROM biblio.peer_bib_copy_map WHERE peer_record = NEW.id; -- Separate any multi-homed items
+        DELETE FROM metabib.browse_entry_def_map WHERE source = NEW.id; -- Don't auto-suggest deleted bibs
+        RETURN NEW; -- and we're done
+    END IF;
+
+    IF TG_OP = 'UPDATE' AND OLD.deleted IS FALSE 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;
+    END IF;
+
+    -- Record authority linking
+    PERFORM * FROM config.internal_flag WHERE name = 'ingest.disable_authority_linking' AND enabled;
+    IF NOT FOUND THEN
+        PERFORM biblio.map_authority_linking( NEW.id, NEW.marc );
+    END IF;
+
+    -- Flatten and insert the mfr data
+    PERFORM * FROM config.internal_flag WHERE name = 'ingest.disable_metabib_full_rec' AND enabled;
+    IF NOT FOUND THEN
+        PERFORM metabib.reingest_metabib_full_rec(NEW.id);
+
+        -- Now we pull out attribute data, which is dependent on the mfr for all but XPath-based fields
+        PERFORM * FROM config.internal_flag WHERE name = 'ingest.disable_metabib_rec_descriptor' AND enabled;
+        IF NOT FOUND THEN
+            PERFORM metabib.reingest_record_attributes(NEW.id, NULL, NEW.marc, TG_OP = 'INSERT' OR OLD.deleted);
+        END IF;
+    END IF;
+
+    -- Gather and insert the field entry data
+    PERFORM metabib.reingest_metabib_field_entries(NEW.id);
+
+    -- Located URI magic
+    PERFORM * FROM config.internal_flag WHERE name = 'ingest.disable_located_uri' AND enabled;
+    IF NOT FOUND THEN PERFORM biblio.extract_located_uris( NEW.id, NEW.marc, NEW.editor ); END IF;
+
+    -- (re)map metarecord-bib linking
+    IF TG_OP = 'INSERT' THEN -- if not deleted and performing an insert, check for the flag
+        PERFORM * FROM config.internal_flag WHERE name = 'ingest.metarecord_mapping.skip_on_insert' AND enabled;
+        IF NOT FOUND THEN
+            PERFORM metabib.remap_metarecord_for_bib( NEW.id, NEW.fingerprint );
+        END IF;
+    ELSE -- we're doing an update, and we're not deleted, remap
+        PERFORM * FROM config.internal_flag WHERE name = 'ingest.metarecord_mapping.skip_on_update' AND enabled;
+        IF NOT FOUND THEN
+            PERFORM metabib.remap_metarecord_for_bib( NEW.id, NEW.fingerprint );
+        END IF;
+    END IF;
+
+    RETURN NEW;
+END;
+$func$ LANGUAGE PLPGSQL;
+
+
+COMMIT;

-----------------------------------------------------------------------

Summary of changes:
 Open-ILS/src/sql/Pg/002.schema.config.sql          |    2 +-
 Open-ILS/src/sql/Pg/030.schema.metabib.sql         |    2 +-
 .../src/sql/Pg/t/lp1091885_reingest_on_undelete.pg |   36 +++++++++++++++
 ...135.schema.lp_1091885_reingest_on_undelete.sql} |   47 ++++++++++++--------
 4 files changed, 66 insertions(+), 21 deletions(-)
 create mode 100644 Open-ILS/src/sql/Pg/t/lp1091885_reingest_on_undelete.pg
 copy Open-ILS/src/sql/Pg/upgrade/{0410.schema.allow_parallel_reingest.sql => 1135.schema.lp_1091885_reingest_on_undelete.sql} (58%)


hooks/post-receive
-- 
Evergreen ILS


More information about the open-ils-commits mailing list