1 /* contrib/tsearch2/tsearch2--1.0.sql */
3 -- These domains are just to catch schema-qualified references to the
5 CREATE DOMAIN tsvector AS pg_catalog.tsvector;
6 CREATE DOMAIN tsquery AS pg_catalog.tsquery;
7 CREATE DOMAIN gtsvector AS pg_catalog.gtsvector;
8 CREATE DOMAIN gtsq AS pg_catalog.text;
11 CREATE FUNCTION lexize(oid, text)
15 RETURNS NULL ON NULL INPUT;
17 CREATE FUNCTION lexize(text, text)
19 as 'MODULE_PATHNAME', 'tsa_lexize_byname'
21 RETURNS NULL ON NULL INPUT;
23 CREATE FUNCTION lexize(text)
25 as 'MODULE_PATHNAME', 'tsa_lexize_bycurrent'
27 RETURNS NULL ON NULL INPUT;
29 CREATE FUNCTION set_curdict(int)
31 as 'MODULE_PATHNAME', 'tsa_set_curdict'
33 RETURNS NULL ON NULL INPUT;
35 CREATE FUNCTION set_curdict(text)
37 as 'MODULE_PATHNAME', 'tsa_set_curdict_byname'
39 RETURNS NULL ON NULL INPUT;
41 --built-in dictionaries
42 CREATE FUNCTION dex_init(internal)
44 as 'MODULE_PATHNAME', 'tsa_dex_init'
47 CREATE FUNCTION dex_lexize(internal,internal,int4)
49 as 'MODULE_PATHNAME', 'tsa_dex_lexize'
51 RETURNS NULL ON NULL INPUT;
53 CREATE FUNCTION snb_en_init(internal)
55 as 'MODULE_PATHNAME', 'tsa_snb_en_init'
58 CREATE FUNCTION snb_lexize(internal,internal,int4)
60 as 'MODULE_PATHNAME', 'tsa_snb_lexize'
62 RETURNS NULL ON NULL INPUT;
64 CREATE FUNCTION snb_ru_init_koi8(internal)
66 as 'MODULE_PATHNAME', 'tsa_snb_ru_init_koi8'
69 CREATE FUNCTION snb_ru_init_utf8(internal)
71 as 'MODULE_PATHNAME', 'tsa_snb_ru_init_utf8'
74 CREATE FUNCTION snb_ru_init(internal)
76 as 'MODULE_PATHNAME', 'tsa_snb_ru_init'
79 CREATE FUNCTION spell_init(internal)
81 as 'MODULE_PATHNAME', 'tsa_spell_init'
84 CREATE FUNCTION spell_lexize(internal,internal,int4)
86 as 'MODULE_PATHNAME', 'tsa_spell_lexize'
88 RETURNS NULL ON NULL INPUT;
90 CREATE FUNCTION syn_init(internal)
92 as 'MODULE_PATHNAME', 'tsa_syn_init'
95 CREATE FUNCTION syn_lexize(internal,internal,int4)
97 as 'MODULE_PATHNAME', 'tsa_syn_lexize'
99 RETURNS NULL ON NULL INPUT;
101 CREATE FUNCTION thesaurus_init(internal)
103 as 'MODULE_PATHNAME', 'tsa_thesaurus_init'
106 CREATE FUNCTION thesaurus_lexize(internal,internal,int4,internal)
108 as 'MODULE_PATHNAME', 'tsa_thesaurus_lexize'
110 RETURNS NULL ON NULL INPUT;
112 --sql-level interface
113 CREATE TYPE tokentype
114 as (tokid int4, alias text, descr text);
116 CREATE FUNCTION token_type(int4)
117 RETURNS setof tokentype
118 as 'ts_token_type_byid'
120 RETURNS NULL ON NULL INPUT
123 CREATE FUNCTION token_type(text)
124 RETURNS setof tokentype
125 as 'ts_token_type_byname'
127 RETURNS NULL ON NULL INPUT
130 CREATE FUNCTION token_type()
131 RETURNS setof tokentype
132 as 'MODULE_PATHNAME', 'tsa_token_type_current'
134 RETURNS NULL ON NULL INPUT
137 CREATE FUNCTION set_curprs(int)
139 as 'MODULE_PATHNAME', 'tsa_set_curprs'
141 RETURNS NULL ON NULL INPUT;
143 CREATE FUNCTION set_curprs(text)
145 as 'MODULE_PATHNAME', 'tsa_set_curprs_byname'
147 RETURNS NULL ON NULL INPUT;
150 as (tokid int4, token text);
152 CREATE FUNCTION parse(oid,text)
153 RETURNS setof tokenout
156 RETURNS NULL ON NULL INPUT;
158 CREATE FUNCTION parse(text,text)
159 RETURNS setof tokenout
162 RETURNS NULL ON NULL INPUT;
164 CREATE FUNCTION parse(text)
165 RETURNS setof tokenout
166 as 'MODULE_PATHNAME', 'tsa_parse_current'
168 RETURNS NULL ON NULL INPUT;
171 CREATE FUNCTION prsd_start(internal,int4)
173 as 'MODULE_PATHNAME', 'tsa_prsd_start'
176 CREATE FUNCTION prsd_getlexeme(internal,internal,internal)
178 as 'MODULE_PATHNAME', 'tsa_prsd_getlexeme'
181 CREATE FUNCTION prsd_end(internal)
183 as 'MODULE_PATHNAME', 'tsa_prsd_end'
186 CREATE FUNCTION prsd_lextype(internal)
188 as 'MODULE_PATHNAME', 'tsa_prsd_lextype'
191 CREATE FUNCTION prsd_headline(internal,internal,internal)
193 as 'MODULE_PATHNAME', 'tsa_prsd_headline'
197 CREATE FUNCTION set_curcfg(int)
199 as 'MODULE_PATHNAME', 'tsa_set_curcfg'
201 RETURNS NULL ON NULL INPUT;
203 CREATE FUNCTION set_curcfg(text)
205 as 'MODULE_PATHNAME', 'tsa_set_curcfg_byname'
207 RETURNS NULL ON NULL INPUT;
209 CREATE FUNCTION show_curcfg()
211 AS 'get_current_ts_config'
213 RETURNS NULL ON NULL INPUT STABLE;
215 CREATE FUNCTION length(tsvector)
219 RETURNS NULL ON NULL INPUT IMMUTABLE;
221 CREATE FUNCTION to_tsvector(oid, text)
223 AS 'to_tsvector_byid'
225 RETURNS NULL ON NULL INPUT IMMUTABLE;
227 CREATE FUNCTION to_tsvector(text, text)
229 AS 'MODULE_PATHNAME', 'tsa_to_tsvector_name'
230 LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
232 CREATE FUNCTION to_tsvector(text)
236 RETURNS NULL ON NULL INPUT IMMUTABLE;
238 CREATE FUNCTION strip(tsvector)
242 RETURNS NULL ON NULL INPUT IMMUTABLE;
244 CREATE FUNCTION setweight(tsvector,"char")
246 AS 'tsvector_setweight'
248 RETURNS NULL ON NULL INPUT IMMUTABLE;
250 CREATE FUNCTION concat(tsvector,tsvector)
254 RETURNS NULL ON NULL INPUT IMMUTABLE;
256 CREATE FUNCTION querytree(tsquery)
259 LANGUAGE INTERNAL RETURNS NULL ON NULL INPUT;
261 CREATE FUNCTION to_tsquery(oid, text)
265 RETURNS NULL ON NULL INPUT IMMUTABLE;
267 CREATE FUNCTION to_tsquery(text, text)
269 AS 'MODULE_PATHNAME','tsa_to_tsquery_name'
270 LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
272 CREATE FUNCTION to_tsquery(text)
276 RETURNS NULL ON NULL INPUT IMMUTABLE;
278 CREATE FUNCTION plainto_tsquery(oid, text)
280 AS 'plainto_tsquery_byid'
282 RETURNS NULL ON NULL INPUT IMMUTABLE;
284 CREATE FUNCTION plainto_tsquery(text, text)
286 AS 'MODULE_PATHNAME','tsa_plainto_tsquery_name'
287 LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
289 CREATE FUNCTION plainto_tsquery(text)
293 RETURNS NULL ON NULL INPUT IMMUTABLE;
296 CREATE FUNCTION tsearch2()
298 AS 'MODULE_PATHNAME', 'tsa_tsearch2'
302 CREATE FUNCTION rank(float4[], tsvector, tsquery)
306 RETURNS NULL ON NULL INPUT IMMUTABLE;
308 CREATE FUNCTION rank(float4[], tsvector, tsquery, int4)
312 RETURNS NULL ON NULL INPUT IMMUTABLE;
314 CREATE FUNCTION rank(tsvector, tsquery)
318 RETURNS NULL ON NULL INPUT IMMUTABLE;
320 CREATE FUNCTION rank(tsvector, tsquery, int4)
324 RETURNS NULL ON NULL INPUT IMMUTABLE;
326 CREATE FUNCTION rank_cd(float4[], tsvector, tsquery)
330 RETURNS NULL ON NULL INPUT IMMUTABLE;
332 CREATE FUNCTION rank_cd(float4[], tsvector, tsquery, int4)
336 RETURNS NULL ON NULL INPUT IMMUTABLE;
338 CREATE FUNCTION rank_cd(tsvector, tsquery)
342 RETURNS NULL ON NULL INPUT IMMUTABLE;
344 CREATE FUNCTION rank_cd(tsvector, tsquery, int4)
348 RETURNS NULL ON NULL INPUT IMMUTABLE;
350 CREATE FUNCTION headline(oid, text, tsquery, text)
352 AS 'ts_headline_byid_opt'
354 RETURNS NULL ON NULL INPUT IMMUTABLE;
356 CREATE FUNCTION headline(oid, text, tsquery)
358 AS 'ts_headline_byid'
360 RETURNS NULL ON NULL INPUT IMMUTABLE;
362 CREATE FUNCTION headline(text, text, tsquery, text)
364 AS 'MODULE_PATHNAME', 'tsa_headline_byname'
365 LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
367 CREATE FUNCTION headline(text, text, tsquery)
369 AS 'MODULE_PATHNAME', 'tsa_headline_byname'
370 LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
372 CREATE FUNCTION headline(text, tsquery, text)
376 RETURNS NULL ON NULL INPUT IMMUTABLE;
378 CREATE FUNCTION headline(text, tsquery)
382 RETURNS NULL ON NULL INPUT IMMUTABLE;
384 -- CREATE the OPERATOR class
385 CREATE OPERATOR CLASS gist_tsvector_ops
386 FOR TYPE tsvector USING gist
388 OPERATOR 1 @@ (tsvector, tsquery),
389 FUNCTION 1 gtsvector_consistent (internal, gtsvector, int, oid, internal),
390 FUNCTION 2 gtsvector_union (internal, internal),
391 FUNCTION 3 gtsvector_compress (internal),
392 FUNCTION 4 gtsvector_decompress (internal),
393 FUNCTION 5 gtsvector_penalty (internal, internal, internal),
394 FUNCTION 6 gtsvector_picksplit (internal, internal),
395 FUNCTION 7 gtsvector_same (gtsvector, gtsvector, internal),
400 as (word text, ndoc int4, nentry int4);
402 CREATE FUNCTION stat(text)
403 RETURNS setof statinfo
406 RETURNS NULL ON NULL INPUT;
408 CREATE FUNCTION stat(text,text)
409 RETURNS setof statinfo
412 RETURNS NULL ON NULL INPUT;
414 --reset - just for debuging
415 CREATE FUNCTION reset_tsearch()
417 as 'MODULE_PATHNAME', 'tsa_reset_tsearch'
419 RETURNS NULL ON NULL INPUT;
421 --get cover (debug for rank_cd)
422 CREATE FUNCTION get_covers(tsvector,tsquery)
424 as 'MODULE_PATHNAME', 'tsa_get_covers'
426 RETURNS NULL ON NULL INPUT;
429 create type tsdebug as (
438 CREATE FUNCTION _get_parser_from_curcfg()
440 $$select prsname::text from pg_catalog.pg_ts_parser p join pg_ts_config c on cfgparser = p.oid where c.oid = show_curcfg();$$
441 LANGUAGE SQL RETURNS NULL ON NULL INPUT IMMUTABLE;
443 CREATE FUNCTION ts_debug(text)
444 RETURNS setof tsdebug as $$
446 (select c.cfgname::text from pg_catalog.pg_ts_config as c
447 where c.oid = show_curcfg()),
449 t.descr as description,
451 ARRAY ( SELECT m.mapdict::pg_catalog.regdictionary::pg_catalog.text
452 FROM pg_catalog.pg_ts_config_map AS m
453 WHERE m.mapcfg = show_curcfg() AND m.maptokentype = p.tokid
454 ORDER BY m.mapseqno )
456 strip(to_tsvector(p.token)) as tsvector
458 parse( _get_parser_from_curcfg(), $1 ) as p,
462 $$ LANGUAGE SQL RETURNS NULL ON NULL INPUT;
464 CREATE FUNCTION numnode(tsquery)
468 RETURNS NULL ON NULL INPUT IMMUTABLE;
470 CREATE FUNCTION tsquery_and(tsquery,tsquery)
474 RETURNS NULL ON NULL INPUT IMMUTABLE;
476 CREATE FUNCTION tsquery_or(tsquery,tsquery)
480 RETURNS NULL ON NULL INPUT IMMUTABLE;
482 CREATE FUNCTION tsquery_not(tsquery)
486 RETURNS NULL ON NULL INPUT IMMUTABLE;
488 --------------rewrite subsystem
490 CREATE FUNCTION rewrite(tsquery, text)
492 as 'tsquery_rewrite_query'
494 RETURNS NULL ON NULL INPUT IMMUTABLE;
496 CREATE FUNCTION rewrite(tsquery, tsquery, tsquery)
500 RETURNS NULL ON NULL INPUT IMMUTABLE;
502 CREATE FUNCTION rewrite_accum(tsquery,tsquery[])
504 AS 'MODULE_PATHNAME', 'tsa_rewrite_accum'
507 CREATE FUNCTION rewrite_finish(tsquery)
509 as 'MODULE_PATHNAME', 'tsa_rewrite_finish'
512 CREATE AGGREGATE rewrite (
513 BASETYPE = tsquery[],
514 SFUNC = rewrite_accum,
516 FINALFUNC = rewrite_finish
519 CREATE FUNCTION tsq_mcontains(tsquery, tsquery)
523 RETURNS NULL ON NULL INPUT IMMUTABLE;
525 CREATE FUNCTION tsq_mcontained(tsquery, tsquery)
529 RETURNS NULL ON NULL INPUT IMMUTABLE;
531 CREATE OPERATOR CLASS gist_tp_tsquery_ops
532 FOR TYPE tsquery USING gist
534 OPERATOR 7 @> (tsquery, tsquery),
535 OPERATOR 8 <@ (tsquery, tsquery),
536 FUNCTION 1 gtsquery_consistent (internal, internal, int, oid, internal),
537 FUNCTION 2 gtsquery_union (internal, internal),
538 FUNCTION 3 gtsquery_compress (internal),
539 FUNCTION 4 gtsquery_decompress (internal),
540 FUNCTION 5 gtsquery_penalty (internal, internal, internal),
541 FUNCTION 6 gtsquery_picksplit (internal, internal),
542 FUNCTION 7 gtsquery_same (bigint, bigint, internal),
545 CREATE OPERATOR CLASS gin_tsvector_ops
546 FOR TYPE tsvector USING gin
548 OPERATOR 1 @@ (tsvector, tsquery),
549 OPERATOR 2 @@@ (tsvector, tsquery),
550 FUNCTION 1 bttextcmp(text, text),
551 FUNCTION 2 gin_extract_tsvector(tsvector,internal,internal),
552 FUNCTION 3 gin_extract_tsquery(tsquery,internal,smallint,internal,internal,internal,internal),
553 FUNCTION 4 gin_tsquery_consistent(internal,smallint,tsquery,int,internal,internal,internal,internal),
554 FUNCTION 5 gin_cmp_prefix(text,text,smallint,internal),
557 CREATE OPERATOR CLASS tsvector_ops
558 FOR TYPE tsvector USING btree AS
564 FUNCTION 1 tsvector_cmp(tsvector, tsvector);
566 CREATE OPERATOR CLASS tsquery_ops
567 FOR TYPE tsquery USING btree AS
573 FUNCTION 1 tsquery_cmp(tsquery, tsquery);