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.
-- 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
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);
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
) 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
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),
'{}'
);
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.
-- 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
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),
'{}'
);
-- 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;
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);