On second thought, delete authority links pointing to stale bib records
authordbs <dbs@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 15 Jul 2010 10:22:17 +0000 (10:22 +0000)
committerdbs <dbs@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 15 Jul 2010 10:22:17 +0000 (10:22 +0000)
This avoids the overhead of updating controlled fields in deleted bib records.

git-svn-id: svn://svn.open-ils.org/ILS/trunk@16936 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/sql/Pg/999.functions.global.sql
Open-ILS/src/sql/Pg/upgrade/0337.function.asset.merge_record_assets.sql

index 6124ad0..fcf0d5f 100644 (file)
@@ -1103,10 +1103,10 @@ BEGIN
                moved_objects := moved_objects + 1;
        END LOOP;
 
-    -- Find and move authority->bib links to the target record
+    -- Delete authority->bib links to the source record to avoid
+    -- the overhead of updating controlled fields in deleted records
     FOR auth_link IN SELECT * FROM authority.bib_linking WHERE bib = source_record LOOP
-        UPDATE  authority.bib_linking
-          SET   bib = target_record
+        DELETE FROM authority.bib_linking
           WHERE id = auth_link.id;
 
         moved_objects := moved_objects + 1;
index ef73095..af36d9f 100644 (file)
@@ -141,10 +141,10 @@ BEGIN
         moved_objects := moved_objects + 1;
     END LOOP;
 
-    -- Find and move authority->bib links to the target record
+    -- Delete authority->bib links to the source record to avoid
+    -- the overhead of updating controlled fields in deleted records
     FOR auth_link IN SELECT * FROM authority.bib_linking WHERE bib = source_record LOOP
-        UPDATE  authority.bib_linking
-          SET   bib = target_record
+        DELETE FROM authority.bib_linking
           WHERE id = auth_link.id;
 
         moved_objects := moved_objects + 1;