]> git.openstreetmap.org Git - osqa.git/blob - sql_scripts/pg_fts_install.sql
deleting the test file
[osqa.git] / sql_scripts / pg_fts_install.sql
1 ALTER TABLE question ADD COLUMN tsv tsvector;
2
3 CREATE OR REPLACE FUNCTION public.create_plpgsql_language ()
4     RETURNS TEXT
5     AS $$
6         CREATE LANGUAGE plpgsql;
7         SELECT 'language plpgsql created'::TEXT;
8     $$
9 LANGUAGE 'sql';
10
11 SELECT CASE WHEN
12       (SELECT true::BOOLEAN
13          FROM pg_language
14         WHERE lanname='plpgsql')
15     THEN
16       (SELECT 'language already installed'::TEXT)
17     ELSE
18       (SELECT public.create_plpgsql_language())
19     END;
20
21 DROP FUNCTION public.create_plpgsql_language ();
22
23 CREATE OR REPLACE FUNCTION set_question_tsv() RETURNS TRIGGER AS $$
24 begin
25   new.tsv :=
26      setweight(to_tsvector('english', coalesce(new.tagnames,'')), 'A') ||
27      setweight(to_tsvector('english', coalesce(new.title,'')), 'B') ||
28      setweight(to_tsvector('english', coalesce(new.summary,'')), 'C');
29   RETURN new;
30 end
31 $$ LANGUAGE plpgsql;
32
33 CREATE TRIGGER tsvectorupdate BEFORE INSERT OR UPDATE
34 ON question FOR EACH ROW EXECUTE PROCEDURE set_question_tsv();
35
36 CREATE INDEX blog_entry_tsv ON blog_entry USING gin(body_tsv);
37
38 UPDATE question SET title = title;