From: Bill Erickson Date: Wed, 30 Jan 2013 20:57:21 +0000 (-0500) Subject: Z39 Batch SQL (upgrade) / IDL X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=1020e16ed0d8354b7ae5b6da12cbeb1b25939055;p=working%2FEvergreen.git Z39 Batch SQL (upgrade) / IDL Signed-off-by: Bill Erickson --- diff --git a/Open-ILS/examples/fm_IDL.xml b/Open-ILS/examples/fm_IDL.xml index 1510df1779..81af82b1d7 100644 --- a/Open-ILS/examples/fm_IDL.xml +++ b/Open-ILS/examples/fm_IDL.xml @@ -932,6 +932,34 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.z39-batch-fetch-overlay.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.z39-batch-fetch-overlay.sql index e19f523b14..04ee8554ad 100644 --- a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.z39-batch-fetch-overlay.sql +++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.z39-batch-fetch-overlay.sql @@ -2,7 +2,13 @@ BEGIN; -- TODO version check -CREATE TABLE config.z3950_metabib_field_map ( +CREATE OR REPLACE FUNCTION + evergreen.z3950_name_is_valid(TEXT) RETURNS BOOLEAN AS $func$ + SELECT EXISTS (SELECT 1 FROM config.z3950_attr WHERE name = $1); +$func$ LANGUAGE SQL STRICT IMMUTABLE; + + +CREATE TABLE config.z3950_index_field_map ( id SERIAL PRIMARY KEY, label TEXT NOT NULL, -- i18n metabib_field INTEGER REFERENCES config.metabib_field(id), @@ -16,24 +22,29 @@ CREATE TABLE config.z3950_metabib_field_map ( CONSTRAINT attr_or_attr_type CHECK ( z3950_attr IS NOT NULL OR z3950_attr_type IS NOT NULL + ), + -- ensure the selected z3950_attr_type refers to a valid attr name + CONSTRAINT valid_z3950_attr_type CHECK ( + z3950_attr_type IS NULL OR + evergreen.z3950_name_is_valid(z3950_attr_type) ) ); -- seed data -INSERT INTO config.z3950_metabib_field_map +INSERT INTO config.z3950_index_field_map (id, label, metabib_field, z3950_attr_type) VALUES -(1, oils_i18n_gettext(1, 'Title', 'czmfm', 'label'), 5, 'title'), -(2, oils_i18n_gettext(2, 'Author', 'czmfm', 'label'), 8, 'author'), -(3, oils_i18n_gettext(3, 'ISBN', 'czmfm', 'label'), 18, 'isbn'), -(4, oils_i18n_gettext(4, 'ISSN', 'czmfm', 'label'), 19, 'issn'), -(5, oils_i18n_gettext(5, 'LCCN', 'czmfm', 'label'), 30, 'lccn'); +(1, oils_i18n_gettext(1, 'Title', 'czifm', 'label'), 5, 'title'), +(2, oils_i18n_gettext(2, 'Author', 'czifm', 'label'), 8, 'author'), +(3, oils_i18n_gettext(3, 'ISBN', 'czifm', 'label'), 18, 'isbn'), +(4, oils_i18n_gettext(4, 'ISSN', 'czifm', 'label'), 19, 'issn'), +(5, oils_i18n_gettext(5, 'LCCN', 'czifm', 'label'), 30, 'lccn'); -INSERT INTO config.z3950_metabib_field_map +INSERT INTO config.z3950_index_field_map (id, label, record_attr, z3950_attr_type) VALUES -(6, oils_i18n_gettext(6, 'Pubdate', 'czmfm', 'label'),'pubdate', 'pubdate'), -(7, oils_i18n_gettext(7, 'Item Type', 'czmfm', 'label'),'item_type', 'item_type'); +(6, oils_i18n_gettext(6, 'Pubdate', 'czifm', 'label'),'pubdate', 'pubdate'), +(7, oils_i18n_gettext(7, 'Item Type', 'czifm', 'label'),'item_type', 'item_type'); COMMIT;