tweaks to quick_metarecord_map.sql
[evergreen-equinox.git] / Open-ILS / src / extras / import / quick_metarecord_map.sql
index be92039..a9b9f37 100644 (file)
@@ -1,23 +1,32 @@
 BEGIN;
 
-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
-            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)
-               LEFT JOIN metabib.metarecord_source_map s ON (b.id = s.source)
-      WHERE s.id IS NULL;
+INSERT INTO metabib.metarecord (fingerprint, master_record)
+        SELECT  DISTINCT ON (b.fingerprint) b.fingerprint, b.id
+          FROM  biblio.record_entry b
+          WHERE NOT b.deleted
+                AND b.id IN (
+                    SELECT r.id 
+                    FROM biblio.record_entry r 
+                    LEFT JOIN metabib.metarecord_source_map k ON (k.source = r.id) 
+                    WHERE k.id IS NULL AND r.fingerprint IS NOT NULL
+                )
+                AND NOT EXISTS ( SELECT 1 FROM metabib.metarecord WHERE fingerprint = b.fingerprint )
+          ORDER BY b.fingerprint, b.quality DESC;
+INSERT INTO metabib.metarecord_source_map (metarecord, source)
+        SELECT  m.id, r.id
+          FROM  biblio.record_entry r
+                JOIN metabib.metarecord m USING (fingerprint)
+          WHERE NOT r.deleted
+                AND r.id IN (
+                    SELECT b.id 
+                    FROM biblio.record_entry b 
+                    LEFT JOIN metabib.metarecord_source_map k ON (k.source = b.id) 
+                    WHERE k.id IS NULL
+                );
 
 COMMIT;
 
-VACUUM FULL ANALYZE VERBOSE metabib.metarecord;
-VACUUM FULL ANALYZE VERBOSE metabib.metarecord_source_map;
+VACUUM ANALYZE VERBOSE metabib.metarecord;
+VACUUM ANALYZE VERBOSE metabib.metarecord_source_map;