delete the metarecord link for "deleted" records
authormiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 17 Mar 2010 19:18:37 +0000 (19:18 +0000)
committermiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 17 Mar 2010 19:18:37 +0000 (19:18 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@15882 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/sql/Pg/002.schema.config.sql
Open-ILS/src/sql/Pg/010.schema.biblio.sql
Open-ILS/src/sql/Pg/upgrade/0199.schema.delete-metabib-link.sql [new file with mode: 0644]

index ea37dac..0e78d5b 100644 (file)
@@ -58,7 +58,7 @@ CREATE TABLE config.upgrade_log (
     install_date    TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
 );
 
-INSERT INTO config.upgrade_log (version) VALUES ('0198'); -- Scott McKellar
+INSERT INTO config.upgrade_log (version) VALUES ('0199'); -- miker
 
 CREATE TABLE config.bib_source (
        id              SERIAL  PRIMARY KEY,
index b171801..00c82af 100644 (file)
@@ -48,7 +48,7 @@ CREATE INDEX biblio_record_entry_edit_date_idx ON biblio.record_entry ( edit_dat
 CREATE INDEX biblio_record_entry_fp_idx ON biblio.record_entry ( fingerprint );
 CREATE UNIQUE INDEX biblio_record_unique_tcn ON biblio.record_entry (tcn_value) WHERE deleted IS FALSE;
 
-CREATE RULE protect_bib_rec_delete AS ON DELETE TO biblio.record_entry DO INSTEAD UPDATE biblio.record_entry SET deleted = TRUE WHERE OLD.id = biblio.record_entry.id;
+CREATE RULE protect_bib_rec_delete AS ON DELETE TO biblio.record_entry DO INSTEAD (UPDATE biblio.record_entry SET deleted = TRUE WHERE OLD.id = biblio.record_entry.id; DELETE FROM metabib.metarecord_source_map WHERE source = OLD.id);
 
 
 CREATE TABLE biblio.record_note (
diff --git a/Open-ILS/src/sql/Pg/upgrade/0199.schema.delete-metabib-link.sql b/Open-ILS/src/sql/Pg/upgrade/0199.schema.delete-metabib-link.sql
new file mode 100644 (file)
index 0000000..a497d1e
--- /dev/null
@@ -0,0 +1,8 @@
+
+BEGIN;
+
+INSERT INTO config.upgrade_log (version) VALUES ('0199'); -- miker
+
+CREATE OR REPLACE RULE protect_bib_rec_delete AS ON DELETE TO biblio.record_entry DO INSTEAD (UPDATE biblio.record_entry SET deleted = TRUE WHERE OLD.id = biblio.record_entry.id; DELETE FROM metabib.metarecord_source_map WHERE source = OLD.id);
+
+COMMIT;