From d36703997f91d3f79146e439cad6920d68e36e2d Mon Sep 17 00:00:00 2001 From: miker Date: Mon, 6 Oct 2008 11:27:52 +0000 Subject: [PATCH] safer MR mapping git-svn-id: svn://svn.open-ils.org/ILS/trunk@10760 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../src/extras/import/quick_metarecord_map.sql | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/Open-ILS/src/extras/import/quick_metarecord_map.sql b/Open-ILS/src/extras/import/quick_metarecord_map.sql index f058a4dee4..be9203990c 100644 --- a/Open-ILS/src/extras/import/quick_metarecord_map.sql +++ b/Open-ILS/src/extras/import/quick_metarecord_map.sql @@ -1,28 +1,20 @@ BEGIN; -ALTER TABLE metabib.metarecord_source_map DROP CONSTRAINT metabib_metarecord_source_map_metarecord_fkey; - -TRUNCATE metabib.metarecord; -TRUNCATE metabib.metarecord_source_map; - INSERT INTO metabib.metarecord (fingerprint,master_record) SELECT fingerprint,id FROM (SELECT DISTINCT ON (fingerprint) fingerprint, id, quality FROM biblio.record_entry ORDER BY fingerprint, quality desc) AS x - WHERE fingerprint IS NOT NULL; + WHERE fingerprint IS NOT NULL + AND fingerprint NOT IN ( SELECT fingerprint FROM metabib.metarecord); INSERT INTO metabib.metarecord_source_map (metarecord,source) SELECT m.id, b.id FROM biblio.record_entry b - JOIN metabib.metarecord m ON (m.fingerprint = b.fingerprint); - -COMMIT; - -BEGIN; - -ALTER TABLE metabib.metarecord_source_map ADD CONSTRAINT metabib_metarecord_source_map_metarecord_fkey FOREIGN KEY (metarecord) REFERENCES metabib.metarecord (id) DEFERRABLE INITIALLY DEFERRED; + JOIN metabib.metarecord m ON (m.fingerprint = b.fingerprint) + LEFT JOIN metabib.metarecord_source_map s ON (b.id = s.source) + WHERE s.id IS NULL; COMMIT; -- 2.43.2