From: Ben Shum Date: Wed, 24 Feb 2016 04:50:11 +0000 (-0500) Subject: LP#1505286: stamping upgrade script for limit facets retrieved X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=70c1da0e63abb278b9c642ca6230b4ecd2279dc7;p=evergreen%2Fequinox.git LP#1505286: stamping upgrade script for limit facets retrieved Signed-off-by: Ben Shum --- diff --git a/Open-ILS/src/sql/Pg/002.schema.config.sql b/Open-ILS/src/sql/Pg/002.schema.config.sql index 1559923e11..a4f3851b8f 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 ('0957', :eg_version); --berick/kmlussier +INSERT INTO config.upgrade_log (version, applied_to) VALUES ('0958', :eg_version); -- gmcharlt/bshum CREATE TABLE config.bib_source ( id SERIAL PRIMARY KEY, diff --git a/Open-ILS/src/sql/Pg/upgrade/0958.schema.limit_facets.sql b/Open-ILS/src/sql/Pg/upgrade/0958.schema.limit_facets.sql new file mode 100644 index 0000000000..a68b448b9a --- /dev/null +++ b/Open-ILS/src/sql/Pg/upgrade/0958.schema.limit_facets.sql @@ -0,0 +1,56 @@ +BEGIN; + +SELECT evergreen.upgrade_deps_block_check('0958', :eg_version); + +CREATE OR REPLACE FUNCTION search.facets_for_record_set(ignore_facet_classes TEXT[], hits BIGINT[]) RETURNS TABLE (id INT, value TEXT, count BIGINT) AS $$ + SELECT id, value, count FROM ( + SELECT mfae.field AS id, + mfae.value, + COUNT(DISTINCT mmrsm.source), + row_number() OVER ( + PARTITION BY mfae.field ORDER BY COUNT(distinct mmrsm.source) DESC + ) AS rownum + FROM metabib.facet_entry mfae + JOIN metabib.metarecord_source_map mmrsm ON (mfae.source = mmrsm.source) + JOIN config.metabib_field cmf ON (cmf.id = mfae.field) + WHERE mmrsm.source IN (SELECT * FROM unnest(hits)) + AND cmf.facet_field + AND cmf.field_class NOT IN (SELECT * FROM unnest(ignore_facet_classes)) + GROUP by 1, 2 + ) all_facets + WHERE rownum <= (SELECT COALESCE((SELECT value::INT FROM config.global_flag WHERE name = 'search.max_facets_per_field' AND enabled), 1000)); +$$ LANGUAGE SQL; + +CREATE OR REPLACE FUNCTION search.facets_for_metarecord_set(ignore_facet_classes TEXT[], hits BIGINT[]) RETURNS TABLE (id INT, value TEXT, count BIGINT) AS $$ + SELECT id, value, count FROM ( + SELECT mfae.field AS id, + mfae.value, + COUNT(DISTINCT mmrsm.metarecord), + row_number() OVER ( + PARTITION BY mfae.field ORDER BY COUNT(distinct mmrsm.metarecord) DESC + ) AS rownum + FROM metabib.facet_entry mfae + JOIN metabib.metarecord_source_map mmrsm ON (mfae.source = mmrsm.source) + JOIN config.metabib_field cmf ON (cmf.id = mfae.field) + WHERE mmrsm.metarecord IN (SELECT * FROM unnest(hits)) + AND cmf.facet_field + AND cmf.field_class NOT IN (SELECT * FROM unnest(ignore_facet_classes)) + GROUP by 1, 2 + ) all_facets + WHERE rownum <= (SELECT COALESCE((SELECT value::INT FROM config.global_flag WHERE name = 'search.max_facets_per_field' AND enabled), 1000)); +$$ LANGUAGE SQL; + +INSERT INTO config.global_flag (name, value, label, enabled) + VALUES ( + 'search.max_facets_per_field', + '1000', + oils_i18n_gettext( + 'search.max_facets_per_field', + 'Search: maximum number of facet values to retrieve for each facet field', + 'cgf', + 'label' + ), + TRUE + ); + +COMMIT; diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.limit_facets.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.limit_facets.sql deleted file mode 100644 index 314063421b..0000000000 --- a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.limit_facets.sql +++ /dev/null @@ -1,56 +0,0 @@ -BEGIN; - ---- SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version); - -CREATE OR REPLACE FUNCTION search.facets_for_record_set(ignore_facet_classes TEXT[], hits BIGINT[]) RETURNS TABLE (id INT, value TEXT, count BIGINT) AS $$ - SELECT id, value, count FROM ( - SELECT mfae.field AS id, - mfae.value, - COUNT(DISTINCT mmrsm.source), - row_number() OVER ( - PARTITION BY mfae.field ORDER BY COUNT(distinct mmrsm.source) DESC - ) AS rownum - FROM metabib.facet_entry mfae - JOIN metabib.metarecord_source_map mmrsm ON (mfae.source = mmrsm.source) - JOIN config.metabib_field cmf ON (cmf.id = mfae.field) - WHERE mmrsm.source IN (SELECT * FROM unnest(hits)) - AND cmf.facet_field - AND cmf.field_class NOT IN (SELECT * FROM unnest(ignore_facet_classes)) - GROUP by 1, 2 - ) all_facets - WHERE rownum <= (SELECT COALESCE((SELECT value::INT FROM config.global_flag WHERE name = 'search.max_facets_per_field' AND enabled), 1000)); -$$ LANGUAGE SQL; - -CREATE OR REPLACE FUNCTION search.facets_for_metarecord_set(ignore_facet_classes TEXT[], hits BIGINT[]) RETURNS TABLE (id INT, value TEXT, count BIGINT) AS $$ - SELECT id, value, count FROM ( - SELECT mfae.field AS id, - mfae.value, - COUNT(DISTINCT mmrsm.metarecord), - row_number() OVER ( - PARTITION BY mfae.field ORDER BY COUNT(distinct mmrsm.metarecord) DESC - ) AS rownum - FROM metabib.facet_entry mfae - JOIN metabib.metarecord_source_map mmrsm ON (mfae.source = mmrsm.source) - JOIN config.metabib_field cmf ON (cmf.id = mfae.field) - WHERE mmrsm.metarecord IN (SELECT * FROM unnest(hits)) - AND cmf.facet_field - AND cmf.field_class NOT IN (SELECT * FROM unnest(ignore_facet_classes)) - GROUP by 1, 2 - ) all_facets - WHERE rownum <= (SELECT COALESCE((SELECT value::INT FROM config.global_flag WHERE name = 'search.max_facets_per_field' AND enabled), 1000)); -$$ LANGUAGE SQL; - -INSERT INTO config.global_flag (name, value, label, enabled) - VALUES ( - 'search.max_facets_per_field', - '1000', - oils_i18n_gettext( - 'search.max_facets_per_field', - 'Search: maximum number of facet values to retrieve for each facet field', - 'cgf', - 'label' - ), - TRUE - ); - -COMMIT;