Make some FK constraints on config.metabib_field.id deferrable
authorDan Wells <dbw2@calvin.edu>
Wed, 9 Oct 2013 13:29:01 +0000 (09:29 -0400)
committerDan Wells <dbw2@calvin.edu>
Thu, 10 Oct 2013 17:28:34 +0000 (13:28 -0400)
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Open-ILS/src/sql/Pg/002.schema.config.sql
Open-ILS/src/sql/Pg/030.schema.metabib.sql

index 6f68922..bfecd9b 100644 (file)
@@ -239,7 +239,7 @@ $$;
 
 CREATE TABLE config.metabib_field_ts_map (
        id                              SERIAL PRIMARY KEY,
-       metabib_field   INT NOT NULL REFERENCES config.metabib_field (id),
+       metabib_field   INT NOT NULL REFERENCES config.metabib_field (id) DEFERRABLE INITIALLY DEFERRED,
        ts_config               TEXT NOT NULL REFERENCES config.ts_config_list (id),
        active                  BOOL NOT NULL DEFAULT TRUE,
        index_weight    CHAR(1) NOT NULL DEFAULT 'C' CHECK (index_weight IN ('A','B','C','D')),
@@ -256,7 +256,7 @@ $$;
 CREATE TABLE config.metabib_search_alias (
     alias       TEXT    PRIMARY KEY,
     field_class TEXT    NOT NULL REFERENCES config.metabib_class (name),
-    field       INT     REFERENCES config.metabib_field (id)
+    field       INT     REFERENCES config.metabib_field (id) DEFERRABLE INITIALLY DEFERRED
 );
 
 CREATE TABLE config.non_cataloged_type (
@@ -1056,7 +1056,7 @@ $$;
 CREATE TABLE config.z3950_index_field_map (
     id              SERIAL  PRIMARY KEY,
     label           TEXT    NOT NULL, -- i18n
-    metabib_field   INTEGER REFERENCES config.metabib_field(id),
+    metabib_field   INTEGER REFERENCES config.metabib_field(id) DEFERRABLE INITIALLY DEFERRED,
     record_attr     TEXT    REFERENCES config.record_attr_definition(name),
     z3950_attr      INTEGER REFERENCES config.z3950_attr(id),
     z3950_attr_type TEXT,-- REFERENCES config.z3950_attr(name)
index 9cf1ed8..73b30ea 100644 (file)
@@ -204,7 +204,7 @@ CREATE TRIGGER metabib_browse_entry_fti_trigger
 CREATE TABLE metabib.browse_entry_def_map (
     id BIGSERIAL PRIMARY KEY,
     entry BIGINT REFERENCES metabib.browse_entry (id),
-    def INT REFERENCES config.metabib_field (id),
+    def INT REFERENCES config.metabib_field (id) DEFERRABLE INITIALLY DEFERRED,
     source BIGINT REFERENCES biblio.record_entry (id),
     authority BIGINT REFERENCES authority.record_entry (id) ON DELETE SET NULL
 );