sorarebuddy/db/migrations/00009_player_search.sql
2024-05-23 08:18:54 +04:00

36 lines
1.0 KiB
PL/PgSQL

-- +goose Up
CREATE EXTENSION IF NOT EXISTS pg_trgm;
CREATE EXTENSION IF NOT EXISTS unaccent;
CREATE OR REPLACE FUNCTION immutable_unaccent(regdictionary, TEXT)
RETURNS TEXT
LANGUAGE c
IMMUTABLE PARALLEL SAFE STRICT AS
'$libdir/unaccent',
'unaccent_dict';
CREATE OR REPLACE FUNCTION f_unaccent(TEXT) RETURNS TEXT
immutable
strict
parallel safe
language sql
as
$$
SELECT public.immutable_unaccent(regdictionary 'public.unaccent', $1)
$$;
CREATE INDEX IF NOT EXISTS players_unaccent_display_name_trgm_idx
ON players USING gin (f_unaccent(display_name::text) gin_trgm_ops);
CREATE INDEX IF NOT EXISTS teams_unaccent_display_name_trgm_idx
ON teams USING gin (f_unaccent(display_name::text) gin_trgm_ops);
-- +goose Down
DROP INDEX IF EXISTS players_unaccent_display_name_trgm_idx;
DROP INDEX IF EXISTS teams_unaccent_display_name_trgm_idx;
DROP FUNCTION IF EXISTS f_unaccent;
DROP FUNCTION IF EXISTS immutable_unaccent;
DROP EXTENSION IF EXISTS unaccent;
DROP EXTENSION IF EXISTS pg_trgm;