JBAS-1839 Revert back to truncated sort value field
authorBill Erickson <berickxx@gmail.com>
Fri, 17 May 2019 20:39:34 +0000 (20:39 +0000)
committerBill Erickson <berickxx@gmail.com>
Fri, 17 May 2019 21:17:38 +0000 (21:17 +0000)
Signed-off-by: Bill Erickson <berickxx@gmail.com>
KCLS/sql/schema/deploy/2.12-3.2-db-upgrade-schema.sql
KCLS/sql/schema/deploy/3.2-additions.sql
KCLS/sql/schema/deploy/stock-browse-headings-report.sql
KCLS/sql/schema/deploy/stock-browse-schema.sql

index 5bb318f..1ff0353 100644 (file)
@@ -5174,7 +5174,7 @@ BEGIN
         pivot_id := metabib.browse_pivot(search_field, browse_term);
     END IF;
 
-    SELECT INTO pivot_sort_value combo_sort_value 
+    SELECT INTO pivot_sort_value truncated_sort_value 
         FROM metabib.browse_entry WHERE id = pivot_id;
 
     -- Bail if we couldn't find a pivot.
@@ -5240,13 +5240,13 @@ SELECT  mbe.id,
 
     -- This is the variant of the query for browsing backward.
     back_query := core_query ||
-        ' mbe.combo_sort_value <= ' || quote_literal(pivot_sort_value) ||
-    ' ORDER BY mbe.combo_sort_value DESC ';
+        ' mbe.truncated_sort_value <= ' || quote_literal(pivot_sort_value) ||
+    ' ORDER BY mbe.truncated_sort_value DESC ';
 
     -- This variant browses forward.
     forward_query := core_query ||
-        ' mbe.combo_sort_value > ' || quote_literal(pivot_sort_value) ||
-    ' ORDER BY mbe.combo_sort_value ';
+        ' mbe.truncated_sort_value > ' || quote_literal(pivot_sort_value) ||
+    ' ORDER BY mbe.truncated_sort_value ';
 
     -- We now call the function which applies a cursor to the provided
     -- queries, stopping at the appropriate limits and also giving us
@@ -5542,11 +5542,11 @@ BEGIN
                 mbe_id := mbe_row.id;
             ELSE
                 INSERT INTO metabib.browse_entry
-                    ( value, sort_value, combo_sort_value, metabib_fields_cache) 
+                    ( value, sort_value, truncated_sort_value, metabib_fields_cache) 
                     VALUES ( 
                         value_prepped,
                         ind_data.sort_value,
-                        SUBSTR((ind_data.sort_value || value_prepped), 1, 2048),
+                        SUBSTR(ind_data.sort_value, 1, 2048),
                         '{}' 
                     );
                 mbe_id := CURRVAL('metabib.browse_entry_id_seq'::REGCLASS);
index dfd7008..6756ec0 100644 (file)
@@ -22,10 +22,10 @@ BEGIN
     FROM config.metabib_field cmf
     WHERE cmf.id = search_field[1];
 
-    RETURN id FROM metabib.browse_entry
-    WHERE metabib_fields_cache && $1
-    AND combo_sort_value >= sort_value
-    ORDER BY combo_sort_value LIMIT 1;
+    RETURN mbe.id FROM metabib.browse_entry mbe
+    WHERE mbe.metabib_fields_cache && $1
+    AND mbe.truncated_sort_value >= sort_value
+    ORDER BY mbe.sort_value LIMIT 1;
 END;
 $p$ LANGUAGE PLPGSQL STABLE;
 
index 85527a2..b14c311 100644 (file)
@@ -46,9 +46,9 @@ BEGIN
                 FROM config.metabib_field 
                 WHERE field_class = $$ || QUOTE_LITERAL(browse_type) || $$
             )
-            AND mbe.combo_sort_value $$ || pivot_where || ' ' 
+            AND mbe.truncated_sort_value $$ || pivot_where || ' ' 
                 || QUOTE_LITERAL(pivot_sort_value) || $$
-            ORDER BY mbe.combo_sort_value $$ || pivot_sort || $$
+            ORDER BY mbe.truncated_sort_value $$ || pivot_sort || $$
             LIMIT 1
         )
         SELECT 
index c35bfe7..0548f9a 100644 (file)
@@ -12,24 +12,19 @@ UPDATE config.metabib_field SET browse_field = FALSE
 WHERE browse_field AND field_class = 'identifier' AND name <> 'bibcn';
 
 -- Add custom create_date column and update indexes
--- FOR STOCK ADD combo_sort_value AND add index
 ALTER TABLE metabib.browse_entry
     ADD COLUMN create_date 
         TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
     ADD COLUMN metabib_fields_cache INT[],
-    -- remove this column post-migration.
-    ALTER COLUMN truncated_sort_value DROP NOT NULL,
-    ADD COLUMN combo_sort_value TEXT,
     DROP CONSTRAINT IF EXISTS browse_entry_sort_value_value_key;
 
+-- Drop now and re-add for speed.
+DROP INDEX IF EXISTS metabib.browse_entry_truncated_sort_value_idx;
+
 -- prevent dupes
 CREATE UNIQUE INDEX browse_entry_sort_value_value_key
     ON metabib.browse_entry USING btree (MD5(value || sort_value));
 
--- KCLS has this index already
--- drop now for speed, add back later.
-DROP INDEX IF EXISTS metabib.browse_entry_combo_sort_value_idx;
-
 -- substr the indexes to avoid insert failures on excessively long values
 DROP INDEX IF EXISTS metabib.browse_entry_sort_value_idx;
 CREATE INDEX browse_entry_sort_value_idx 
@@ -89,8 +84,8 @@ CREATE OR REPLACE FUNCTION metabib.browse_pivot(
 ) RETURNS BIGINT AS $p$
     SELECT id FROM metabib.browse_entry
     WHERE metabib_fields_cache && $1
-    AND combo_sort_value >= public.naco_normalize($2)
-    ORDER BY combo_sort_value LIMIT 1;
+    AND truncated_sort_value >= public.naco_normalize($2)
+    ORDER BY truncated_sort_value LIMIT 1;
 $p$ LANGUAGE SQL STABLE;
 
 -- Modify KCLS custom function.  Called from Browse.pm
@@ -191,11 +186,11 @@ BEGIN
                 mbe_id := mbe_row.id;
             ELSE
                 INSERT INTO metabib.browse_entry
-                    ( value, sort_value, combo_sort_value, metabib_fields_cache) 
+                    ( value, sort_value, truncated_sort_value, metabib_fields_cache) 
                     VALUES ( 
                         value_prepped,
                         ind_data.sort_value,
-                        SUBSTR((ind_data.sort_value || value_prepped), 1, 2048)
+                        SUBSTR(ind_data.sort_value, 1, 2048),
                         '{}' 
                     );
 
@@ -505,7 +500,7 @@ BEGIN
         pivot_id := metabib.browse_pivot(search_field, browse_term);
     END IF;
 
-    SELECT INTO pivot_sort_value combo_sort_value 
+    SELECT INTO pivot_sort_value truncated_sort_value 
         FROM metabib.browse_entry WHERE id = pivot_id;
 
     -- Bail if we couldn't find a pivot.
@@ -568,13 +563,13 @@ SELECT  mbe.id,
 
     -- This is the variant of the query for browsing backward.
     back_query := core_query ||
-        ' mbe.combo_sort_value <= ' || quote_literal(pivot_sort_value) ||
-    ' ORDER BY mbe.combo_sort_value DESC ';
+        ' mbe.truncated_sort_value <= ' || quote_literal(pivot_sort_value) ||
+    ' ORDER BY mbe.truncated_sort_value DESC ';
 
     -- This variant browses forward.
     forward_query := core_query ||
-        ' mbe.combo_sort_value > ' || quote_literal(pivot_sort_value) ||
-    ' ORDER BY mbe.combo_sort_value ';
+        ' mbe.truncated_sort_value > ' || quote_literal(pivot_sort_value) ||
+    ' ORDER BY mbe.truncated_sort_value ';
 
     -- We now call the function which applies a cursor to the provided
     -- queries, stopping at the appropriate limits and also giving us
@@ -683,9 +678,9 @@ BEGIN
             mbe_id := mbe_row.id;
         ELSE
             INSERT INTO metabib.browse_entry
-                ( value, sort_value, combo_sort_value, metabib_fields_cache ) VALUES
+                ( value, sort_value, truncated_sort_value, metabib_fields_cache ) VALUES
                 ( ashs.value, ashs.sort_value, 
-                  SUBSTR((ashs.sort_value || ashs.value), 1, 2048),
+                  SUBSTR(ashs.sort_value, 1, 2048),
                   '{}' 
                 );
 
@@ -770,13 +765,13 @@ BEGIN
         -- existing entries do not have truncated sort values that
         -- contain both sort value and value.  fix that here.
         INSERT INTO metabib.browse_entry 
-            (create_date, value, index_vector, sort_value, combo_sort_value)
+            (create_date, value, index_vector, sort_value, truncated_sort_value)
         SELECT 
             legacy_entry.create_date,
             legacy_entry.value,
             legacy_entry.index_vector, 
             legacy_entry.sort_value,
-            SUBSTR((legacy_entry.sort_value || legacy_entry.value), 1, 2048)
+            legacy_entry.truncated_sort_value
         RETURNING id INTO new_entry_id;
 
     END IF;
@@ -1044,12 +1039,10 @@ DROP FUNCTION metabib.get_browse_series_entry_marc_record(BIGINT);
 DROP FUNCTION metabib.get_browse_subject_entry_marc_record(BIGINT);
 DROP FUNCTION metabib.browse_table_bounds(TEXT, TEXT, INTEGER); 
 
-ALTER TABLE metabib.browse_entry DROP COLUMN truncated_sort_value;
-
-SELECT CLOCK_TIMESTAMP(), 'Create combo_sort_value index';
+SELECT CLOCK_TIMESTAMP(), 'Create browse indexes';
 
-CREATE INDEX browse_entry_combo_sort_value_idx 
-    ON metabib.browse_entry USING btree(combo_sort_value);
+CREATE INDEX browse_entry_truncated_sort_value_idx 
+    ON metabib.browse_entry USING btree(truncated_sort_value);
 
 DROP FUNCTION metabib.migrate_legacy_browse_entry(
     metabib.browse_entry, TEXT, BOOLEAN);