LP#1931737: DYM can cause deadlocks w/parrallel ingest 3.7 port collab/dyrcona/lp1931737-dym-deadlock-fix-rel_3_7
authorJason Stephenson <jason@sigio.com>
Fri, 8 Apr 2022 14:22:18 +0000 (10:22 -0400)
committerJason Stephenson <jason@sigio.com>
Fri, 8 Apr 2022 14:26:15 +0000 (10:26 -0400)
This commit reconciles the database upgrade script with the version of
the metabib.reingest_metabib_field_entries function in Evergreen
3.7.x.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Open-ILS/src/sql/Pg/upgrade/WWWW.schema.dym_update_and_reify.sql

index 8ff1772..eb1ae70 100644 (file)
@@ -156,7 +156,7 @@ BEGIN
 
     FOR ind_data IN SELECT * FROM biblio.extract_metabib_field_entry( bib_id, ' ', field_types, field_list ) LOOP
 
-    -- don't store what has been normalized away
+       -- don't store what has been normalized away
         CONTINUE WHEN ind_data.value IS NULL;
 
         IF ind_data.field < 0 THEN
@@ -185,14 +185,8 @@ BEGIN
             CONTINUE WHEN ind_data.sort_value IS NULL;
 
             value_prepped := metabib.browse_normalize(ind_data.value, ind_data.field);
-            IF ind_data.browse_nocase THEN
-                SELECT INTO mbe_row * FROM metabib.browse_entry
-                    WHERE evergreen.lowercase(value) = evergreen.lowercase(value_prepped) AND sort_value = ind_data.sort_value
-                    ORDER BY sort_value, value LIMIT 1; -- gotta pick something, I guess
-            ELSE
-                SELECT INTO mbe_row * FROM metabib.browse_entry
-                    WHERE value = value_prepped AND sort_value = ind_data.sort_value;
-            END IF;
+            SELECT INTO mbe_row * FROM metabib.browse_entry
+                WHERE value = value_prepped AND sort_value = ind_data.sort_value;
 
             IF FOUND THEN
                 mbe_id := mbe_row.id;
@@ -229,7 +223,7 @@ BEGIN
 
     IF NOT b_skip_search THEN
         PERFORM metabib.update_combined_index_vectors(bib_id);
-        PERFORM search.symspell_dictionary_reify();
+        PERFORM search.symspell_dictionary_reify(); -- NOTE: we only use search data for symspell today
     END IF;
 
     RETURN;