From: Mike Rylander Date: Tue, 22 May 2012 19:10:14 +0000 (-0400) Subject: stamping upgrade script for saved queries X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=5537727d1b7e50452f1933e401998de192ecfe02;p=evergreen%2Fequinox.git stamping upgrade script for saved queries Signed-off-by: Mike Rylander --- diff --git a/Open-ILS/src/sql/Pg/002.schema.config.sql b/Open-ILS/src/sql/Pg/002.schema.config.sql index a51ec77e4a..e6f7c4744d 100644 --- a/Open-ILS/src/sql/Pg/002.schema.config.sql +++ b/Open-ILS/src/sql/Pg/002.schema.config.sql @@ -87,7 +87,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 ('0711', :eg_version); -- senator +INSERT INTO config.upgrade_log (version, applied_to) VALUES ('0712', :eg_version); -- berick/miker CREATE TABLE config.bib_source ( id SERIAL PRIMARY KEY, diff --git a/Open-ILS/src/sql/Pg/upgrade/0712.schema.search_query_groups.sql b/Open-ILS/src/sql/Pg/upgrade/0712.schema.search_query_groups.sql new file mode 100644 index 0000000000..0b55ac003b --- /dev/null +++ b/Open-ILS/src/sql/Pg/upgrade/0712.schema.search_query_groups.sql @@ -0,0 +1,80 @@ + +BEGIN; + +SELECT evergreen.upgrade_deps_block_check('0712', :eg_version); + +-- General purpose query container. Any table the needs to store +-- a QueryParser query should store it here. This will be the +-- source for top-level and QP sub-search inclusion queries. +CREATE TABLE actor.search_query ( + id SERIAL PRIMARY KEY, + label TEXT NOT NULL, -- i18n + query_text TEXT NOT NULL -- QP text +); + +-- e.g. "Reading Level" +CREATE TABLE actor.search_filter_group ( + id SERIAL PRIMARY KEY, + owner INT NOT NULL REFERENCES actor.org_unit (id) + ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED, + code TEXT NOT NULL, -- for CGI, etc. + label TEXT NOT NULL, -- i18n + create_date TIMESTAMPTZ NOT NULL DEFAULT now(), + CONSTRAINT asfg_label_once_per_org UNIQUE (owner, label), + CONSTRAINT asfg_code_once_per_org UNIQUE (owner, code) +); + +-- e.g. "Adult", "Teen", etc. +CREATE TABLE actor.search_filter_group_entry ( + id SERIAL PRIMARY KEY, + grp INT NOT NULL REFERENCES actor.search_filter_group(id) + ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED, + pos INT NOT NULL DEFAULT 0, + query INT NOT NULL REFERENCES actor.search_query(id) + ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED, + CONSTRAINT asfge_query_once_per_group UNIQUE (grp, query) +); + +COMMIT; + +/* +-- Fictional Example +BEGIN; + +INSERT INTO actor.search_filter_group (owner, code, label) + VALUES (4, 'reading_level', 'Reading Level'); + +INSERT INTO actor.search_query (label, query_text) + VALUES ('Children', 'audience(a,b,c) locations(3,4,5,6)'); +INSERT INTO actor.search_query (label, query_text) + VALUES ('Juvenile', 'audience(j,d) locations(1,2,7,8)'); +INSERT INTO actor.search_query (label, query_text) + VALUES ('General', 'audience(e,f,g)'); + +INSERT INTO actor.search_filter_group_entry (grp, query) + VALUES ( + (SELECT id FROM actor.search_filter_group WHERE code = 'reading_level'), + (SELECT id FROM actor.search_query WHERE label = 'Children') + ); +INSERT INTO actor.search_filter_group_entry (grp, query) + VALUES ( + (SELECT id FROM actor.search_filter_group WHERE code = 'reading_level'), + (SELECT id FROM actor.search_query WHERE label = 'Juvenile') + ); +INSERT INTO actor.search_filter_group_entry (grp, query) + VALUES ( + (SELECT id FROM actor.search_filter_group WHERE code = 'reading_level'), + (SELECT id FROM actor.search_query WHERE label = 'General') + ); + +COMMIT; +*/ + +/* +-- UNDO +BEGIN; +DROP TABLE actor.search_filter_group_entry; +DROP TABLE actor.search_filter_group; +DROP TABLE actor.search_query; +COMMIT; +*/ diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.search_query_groups.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.search_query_groups.sql deleted file mode 100644 index 1ce760d3c8..0000000000 --- a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.search_query_groups.sql +++ /dev/null @@ -1,78 +0,0 @@ - -BEGIN; - --- General purpose query container. Any table the needs to store --- a QueryParser query should store it here. This will be the --- source for top-level and QP sub-search inclusion queries. -CREATE TABLE actor.search_query ( - id SERIAL PRIMARY KEY, - label TEXT NOT NULL, -- i18n - query_text TEXT NOT NULL -- QP text -); - --- e.g. "Reading Level" -CREATE TABLE actor.search_filter_group ( - id SERIAL PRIMARY KEY, - owner INT NOT NULL REFERENCES actor.org_unit (id) - ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED, - code TEXT NOT NULL, -- for CGI, etc. - label TEXT NOT NULL, -- i18n - create_date TIMESTAMPTZ NOT NULL DEFAULT now(), - CONSTRAINT asfg_label_once_per_org UNIQUE (owner, label), - CONSTRAINT asfg_code_once_per_org UNIQUE (owner, code) -); - --- e.g. "Adult", "Teen", etc. -CREATE TABLE actor.search_filter_group_entry ( - id SERIAL PRIMARY KEY, - grp INT NOT NULL REFERENCES actor.search_filter_group(id) - ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED, - pos INT NOT NULL DEFAULT 0, - query INT NOT NULL REFERENCES actor.search_query(id) - ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED, - CONSTRAINT asfge_query_once_per_group UNIQUE (grp, query) -); - -COMMIT; - -/* --- Fictional Example -BEGIN; - -INSERT INTO actor.search_filter_group (owner, code, label) - VALUES (4, 'reading_level', 'Reading Level'); - -INSERT INTO actor.search_query (label, query_text) - VALUES ('Children', 'audience(a,b,c) locations(3,4,5,6)'); -INSERT INTO actor.search_query (label, query_text) - VALUES ('Juvenile', 'audience(j,d) locations(1,2,7,8)'); -INSERT INTO actor.search_query (label, query_text) - VALUES ('General', 'audience(e,f,g)'); - -INSERT INTO actor.search_filter_group_entry (grp, query) - VALUES ( - (SELECT id FROM actor.search_filter_group WHERE code = 'reading_level'), - (SELECT id FROM actor.search_query WHERE label = 'Children') - ); -INSERT INTO actor.search_filter_group_entry (grp, query) - VALUES ( - (SELECT id FROM actor.search_filter_group WHERE code = 'reading_level'), - (SELECT id FROM actor.search_query WHERE label = 'Juvenile') - ); -INSERT INTO actor.search_filter_group_entry (grp, query) - VALUES ( - (SELECT id FROM actor.search_filter_group WHERE code = 'reading_level'), - (SELECT id FROM actor.search_query WHERE label = 'General') - ); - -COMMIT; -*/ - -/* --- UNDO -BEGIN; -DROP TABLE actor.search_filter_group_entry; -DROP TABLE actor.search_filter_group; -DROP TABLE actor.search_query; -COMMIT; -*/