From aee655428620ec4c46813a29e3e7a76ba11c4e84 Mon Sep 17 00:00:00 2001 From: miker Date: Wed, 23 Jul 2008 14:52:40 +0000 Subject: [PATCH] rearranging some columns for better layout; removing xpath requirement from usr attrs; adding unowned attr table git-svn-id: svn://svn.open-ils.org/ILS/branches/acq-experiment@10094 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/examples/fm_IDL.xml | 16 +++++++++++++--- Open-ILS/src/sql/Pg/200.schema.acq.sql | 23 ++++++++++++++++------- 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/Open-ILS/examples/fm_IDL.xml b/Open-ILS/examples/fm_IDL.xml index 2de1577552..94a4f7af6b 100644 --- a/Open-ILS/examples/fm_IDL.xml +++ b/Open-ILS/examples/fm_IDL.xml @@ -3701,7 +3701,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - @@ -3756,14 +3755,25 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - - + + + + + + + + + + + + + diff --git a/Open-ILS/src/sql/Pg/200.schema.acq.sql b/Open-ILS/src/sql/Pg/200.schema.acq.sql index 668eff2ab3..c14f85196c 100644 --- a/Open-ILS/src/sql/Pg/200.schema.acq.sql +++ b/Open-ILS/src/sql/Pg/200.schema.acq.sql @@ -180,21 +180,23 @@ CREATE TABLE acq.lineitem_attr_definition ( id BIGSERIAL PRIMARY KEY, code TEXT NOT NULL, description TEXT NOT NULL, - xpath TEXT NOT NULL, remove TEXT NOT NULL DEFAULT '' ); CREATE TABLE acq.lineitem_marc_attr_definition ( - id BIGINT PRIMARY KEY DEFAULT NEXTVAL('acq.lineitem_attr_definition_id_seq') + id BIGINT PRIMARY KEY DEFAULT NEXTVAL('acq.lineitem_attr_definition_id_seq'), + xpath TEXT NOT NULL ) INHERITS (acq.lineitem_attr_definition); CREATE TABLE acq.lineitem_provider_attr_definition ( id BIGINT PRIMARY KEY DEFAULT NEXTVAL('acq.lineitem_attr_definition_id_seq'), + xpath TEXT NOT NULL, provider INT NOT NULL REFERENCES acq.provider (id) ) INHERITS (acq.lineitem_attr_definition); CREATE TABLE acq.lineitem_generated_attr_definition ( - id BIGINT PRIMARY KEY DEFAULT NEXTVAL('acq.lineitem_attr_definition_id_seq') + id BIGINT PRIMARY KEY DEFAULT NEXTVAL('acq.lineitem_attr_definition_id_seq'), + xpath TEXT NOT NULL ) INHERITS (acq.lineitem_attr_definition); CREATE TABLE acq.lineitem_usr_attr_definition ( @@ -202,6 +204,10 @@ CREATE TABLE acq.lineitem_usr_attr_definition ( usr INT NOT NULL REFERENCES actor.usr (id) ) INHERITS (acq.lineitem_attr_definition); +CREATE TABLE acq.lineitem_local_attr_definition ( + id BIGINT PRIMARY KEY DEFAULT NEXTVAL('acq.lineitem_attr_definition_id_seq') +) INHERITS (acq.lineitem_attr_definition); + -- Seed data @@ -260,12 +266,15 @@ BEGIN IF (atype = 'lineitem_provider_attr_definition') THEN SELECT provider INTO prov FROM acq.lineitem_provider_attr_definition WHERE id = adef.id; CONTINUE WHEN NEW.provider IS NULL OR prov <> NEW.provider; - END IF; + ELSIF (atype NOT IN ('lineitem_usr_attr_definition','lineitem_local_attr_definition')) THEN + + SELECT extract_acq_marc_field(id, adef.xpath, adef.remove) INTO value FROM acq.lineitem WHERE id = NEW.id; + IF (value IS NOT NULL AND value <> '') THEN + INSERT INTO acq.lineitem_attr (lineitem, attr_type, attr_name, attr_value) VALUES (NEW.id, atype, adef.code, value); + END IF; - SELECT extract_acq_marc_field(id, adef.xpath, adef.remove) INTO value FROM acq.lineitem WHERE id = NEW.id; - IF (value IS NOT NULL AND value <> '') THEN - INSERT INTO acq.lineitem_attr (lineitem, attr_type, attr_name, attr_value) VALUES (NEW.id, atype, adef.code, value); END IF; + END LOOP; RETURN NULL; -- 2.11.0