hub/database/migrations/functions/packages/generate_package_tsdoc.sql

19 lines
801 B
SQL

-- generate_package_tsdoc generates the package's document used to perform full
-- text searches.
create or replace function generate_package_tsdoc(
p_name text,
p_display_name text,
p_description text,
p_keywords text[],
p_repository text[],
p_publisher text[]
) returns tsvector as $$
select
setweight(to_tsvector(p_name), 'A') ||
setweight(to_tsvector(coalesce(p_display_name, '')), 'A') ||
setweight(to_tsvector(coalesce(p_description, '')), 'B') ||
setweight(to_tsvector(array_to_string(coalesce(p_keywords, '{}'), ' ')), 'C') ||
setweight(to_tsvector(array_to_string(coalesce(p_repository, '{}'), ' ')), 'B') ||
setweight(to_tsvector(array_to_string(coalesce(p_publisher, '{}'), ' ')), 'B');
$$ language sql immutable;