From: Kathy Lussier Date: Mon, 22 Aug 2016 18:02:58 +0000 (-0400) Subject: LP#1613730: Stamping upgrade script for copy count badge X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=2888b409b32cfe541247cc2e39ba23d0e19170c6;p=evergreen%2Fmasslnc.git LP#1613730: Stamping upgrade script for copy count badge Signed-off-by: Kathy Lussier --- diff --git a/Open-ILS/src/sql/Pg/002.schema.config.sql b/Open-ILS/src/sql/Pg/002.schema.config.sql index 3c897abbdd..976361cf6f 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 ('0989', :eg_version); -- berick/miker/gmcharlt +INSERT INTO config.upgrade_log (version, applied_to) VALUES ('0990', :eg_version); -- miker/kmlussier CREATE TABLE config.bib_source ( id SERIAL PRIMARY KEY, diff --git a/Open-ILS/src/sql/Pg/upgrade/0990.data.copy-count-badge.sql b/Open-ILS/src/sql/Pg/upgrade/0990.data.copy-count-badge.sql new file mode 100644 index 0000000000..ce9d8f0767 --- /dev/null +++ b/Open-ILS/src/sql/Pg/upgrade/0990.data.copy-count-badge.sql @@ -0,0 +1,36 @@ +BEGIN; + +SELECT evergreen.upgrade_deps_block_check('0990', :eg_version); + +CREATE OR REPLACE FUNCTION rating.copy_count(badge_id INT) + RETURNS TABLE (record INT, value NUMERIC) AS $f$ +DECLARE + badge rating.badge_with_orgs%ROWTYPE; +BEGIN + + SELECT * INTO badge FROM rating.badge_with_orgs WHERE id = badge_id; + + PERFORM rating.precalc_bibs_by_copy(badge_id); + + DELETE FROM precalc_copy_filter_bib_list WHERE id NOT IN ( + SELECT id FROM precalc_filter_bib_list + INTERSECT + SELECT id FROM precalc_bibs_by_copy_list + ); + ANALYZE precalc_copy_filter_bib_list; + + RETURN QUERY + SELECT f.id::INT AS bib, + COUNT(f.copy)::NUMERIC + FROM precalc_copy_filter_bib_list f + JOIN asset.copy cp ON (f.copy = cp.id) + JOIN asset.call_number cn ON (cn.id = cp.call_number) + WHERE cn.owning_lib = ANY (badge.orgs) GROUP BY 1; + +END; +$f$ LANGUAGE PLPGSQL STRICT; + +INSERT INTO rating.popularity_parameter (name, func, require_percentile) VALUES ('Copy Count', 'rating.copy_count', TRUE); + +COMMIT; + diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.data.copy-count-badge.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.data.copy-count-badge.sql deleted file mode 100644 index 84d36da040..0000000000 --- a/Open-ILS/src/sql/Pg/upgrade/XXXX.data.copy-count-badge.sql +++ /dev/null @@ -1,34 +0,0 @@ -BEGIN; - -CREATE OR REPLACE FUNCTION rating.copy_count(badge_id INT) - RETURNS TABLE (record INT, value NUMERIC) AS $f$ -DECLARE - badge rating.badge_with_orgs%ROWTYPE; -BEGIN - - SELECT * INTO badge FROM rating.badge_with_orgs WHERE id = badge_id; - - PERFORM rating.precalc_bibs_by_copy(badge_id); - - DELETE FROM precalc_copy_filter_bib_list WHERE id NOT IN ( - SELECT id FROM precalc_filter_bib_list - INTERSECT - SELECT id FROM precalc_bibs_by_copy_list - ); - ANALYZE precalc_copy_filter_bib_list; - - RETURN QUERY - SELECT f.id::INT AS bib, - COUNT(f.copy)::NUMERIC - FROM precalc_copy_filter_bib_list f - JOIN asset.copy cp ON (f.copy = cp.id) - JOIN asset.call_number cn ON (cn.id = cp.call_number) - WHERE cn.owning_lib = ANY (badge.orgs) GROUP BY 1; - -END; -$f$ LANGUAGE PLPGSQL STRICT; - -INSERT INTO rating.popularity_parameter (name, func, require_percentile) VALUES ('Copy Count', 'rating.copy_count', TRUE); - -COMMIT; -