Files
buzz/migrations/0033_section_workspace_projection_fts.sql
Logan Johnson a7db357295 feat(relay): import owner section workspace
Co-authored-by: Larry <loganj+larry@squareup.com>
Signed-off-by: Logan Johnson <loganj@squareup.com>
2026-08-21 04:37:21 +00:00

21 lines
971 B
SQL

-- Kinds 9050 and 30623 carry owner-private section workspace migration state. Keep it
-- out of full-text search at the storage boundary while preserving the expression
-- installed by fresh or brownfield databases.
DO $$
DECLARE existing_expression TEXT;
BEGIN
SELECT pg_get_expr(d.adbin, d.adrelid) INTO existing_expression
FROM pg_attrdef d JOIN pg_attribute a
ON a.attrelid = d.adrelid AND a.attnum = d.adnum
WHERE d.adrelid = 'events'::regclass AND a.attname = 'search_tsv';
IF existing_expression IS NULL THEN
RAISE EXCEPTION 'events.search_tsv generated expression not found';
END IF;
ALTER TABLE events DROP COLUMN search_tsv;
EXECUTE format(
'ALTER TABLE events ADD COLUMN search_tsv TSVECTOR GENERATED ALWAYS AS (CASE WHEN kind IN (9050, 30623) THEN NULL::tsvector ELSE (%s) END) STORED',
existing_expression
);
CREATE INDEX idx_events_search_tsv ON events USING GIN (search_tsv);
END $$;