From: Bill Erickson Date: Fri, 17 May 2019 20:39:34 +0000 (+0000) Subject: JBAS-1839 Revert back to truncated sort value field X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=591a5ffddcd08293a97a395a6f2f6ffdb981e3da;p=working%2FEvergreen.git JBAS-1839 Revert back to truncated sort value field Signed-off-by: Bill Erickson --- diff --git a/KCLS/sql/schema/deploy/2.12-3.2-db-upgrade-schema.sql b/KCLS/sql/schema/deploy/2.12-3.2-db-upgrade-schema.sql index 5bb318fb54..1ff03534e8 100644 --- a/KCLS/sql/schema/deploy/2.12-3.2-db-upgrade-schema.sql +++ b/KCLS/sql/schema/deploy/2.12-3.2-db-upgrade-schema.sql @@ -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); diff --git a/KCLS/sql/schema/deploy/3.2-additions.sql b/KCLS/sql/schema/deploy/3.2-additions.sql index dfd70086d7..6756ec07ae 100644 --- a/KCLS/sql/schema/deploy/3.2-additions.sql +++ b/KCLS/sql/schema/deploy/3.2-additions.sql @@ -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; diff --git a/KCLS/sql/schema/deploy/stock-browse-headings-report.sql b/KCLS/sql/schema/deploy/stock-browse-headings-report.sql index 85527a2144..b14c3117b5 100644 --- a/KCLS/sql/schema/deploy/stock-browse-headings-report.sql +++ b/KCLS/sql/schema/deploy/stock-browse-headings-report.sql @@ -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 diff --git a/KCLS/sql/schema/deploy/stock-browse-schema.sql b/KCLS/sql/schema/deploy/stock-browse-schema.sql index c35bfe74c5..0548f9a823 100644 --- a/KCLS/sql/schema/deploy/stock-browse-schema.sql +++ b/KCLS/sql/schema/deploy/stock-browse-schema.sql @@ -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);