diff options
| author | Teodor Sigaev <teodor@sigaev.ru> | 2004-05-31 17:18:12 +0000 |
|---|---|---|
| committer | Teodor Sigaev <teodor@sigaev.ru> | 2004-05-31 17:18:12 +0000 |
| commit | cbfa4092bb9c0668dba9870ca06038aebe71d7e6 (patch) | |
| tree | e0cf5ac9bb93b3fab6197297f5a99de64694b9cd /contrib/pg_trgm/pg_trgm.sql.in | |
| parent | 553bc4163388d660a30d5cb0cacad0e86fb7e449 (diff) | |
| download | postgresql-cbfa4092bb9c0668dba9870ca06038aebe71d7e6.tar.gz | |
trgm - Trigram matching for PostgreSQL
--------------------------------------
The pg_trgm contrib module provides functions and index classes
for determining the similarity of text based on trigram
matching.
Diffstat (limited to 'contrib/pg_trgm/pg_trgm.sql.in')
| -rw-r--r-- | contrib/pg_trgm/pg_trgm.sql.in | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/contrib/pg_trgm/pg_trgm.sql.in b/contrib/pg_trgm/pg_trgm.sql.in new file mode 100644 index 0000000000..f38abb6e48 --- /dev/null +++ b/contrib/pg_trgm/pg_trgm.sql.in @@ -0,0 +1,107 @@ +SET search_path = public; + +BEGIN; + +create function set_limit(float4) +returns float4 +AS 'MODULE_PATHNAME' +LANGUAGE 'C' with (isstrict,iscachable); + +create function show_limit() +returns float4 +AS 'MODULE_PATHNAME' +LANGUAGE 'C' with (isstrict,iscachable); + +create function show_trgm(text) +returns _text +AS 'MODULE_PATHNAME' +LANGUAGE 'C' with (isstrict,iscachable); + +create function similarity(text,text) +returns float4 +AS 'MODULE_PATHNAME' +LANGUAGE 'C' with (isstrict,iscachable); + +create function similarity_op(text,text) +returns bool +AS 'MODULE_PATHNAME' +LANGUAGE 'C' with (isstrict,iscachable); + +CREATE OPERATOR % ( + LEFTARG = text, + RIGHTARG = text, + PROCEDURE = similarity_op, + COMMUTATOR = '%', + RESTRICT = contsel, + JOIN = contjoinsel +); + +--gist key +CREATE FUNCTION gtrgm_in(cstring) +RETURNS gtrgm +AS 'MODULE_PATHNAME' +LANGUAGE 'C' with (isstrict); + +CREATE FUNCTION gtrgm_out(gtrgm) +RETURNS cstring +AS 'MODULE_PATHNAME' +LANGUAGE 'C' with (isstrict); + +CREATE TYPE gtrgm ( + INTERNALLENGTH = -1, + INPUT = gtrgm_in, + OUTPUT = gtrgm_out +); + +-- support functions +CREATE FUNCTION gtrgm_consistent(gtrgm,internal,int4) +RETURNS bool +AS 'MODULE_PATHNAME' +LANGUAGE 'C'; + +CREATE FUNCTION gtrgm_compress(internal) +RETURNS internal +AS 'MODULE_PATHNAME' +LANGUAGE 'C'; + +CREATE FUNCTION gtrgm_decompress(internal) +RETURNS internal +AS 'MODULE_PATHNAME' +LANGUAGE 'C'; + +CREATE FUNCTION gtrgm_penalty(internal,internal,internal) +RETURNS internal +AS 'MODULE_PATHNAME' +LANGUAGE 'C' with (isstrict); + +CREATE FUNCTION gtrgm_picksplit(internal, internal) +RETURNS internal +AS 'MODULE_PATHNAME' +LANGUAGE 'C'; + +CREATE FUNCTION gtrgm_union(bytea, internal) +RETURNS _int4 +AS 'MODULE_PATHNAME' +LANGUAGE 'C'; + +CREATE FUNCTION gtrgm_same(gtrgm, gtrgm, internal) +RETURNS internal +AS 'MODULE_PATHNAME' +LANGUAGE 'C'; + +-- create the operator class +CREATE OPERATOR CLASS gist_trgm_ops +FOR TYPE text USING gist +AS + OPERATOR 1 % (text, text), + FUNCTION 1 gtrgm_consistent (gtrgm, internal, int4), + FUNCTION 2 gtrgm_union (bytea, internal), + FUNCTION 3 gtrgm_compress (internal), + FUNCTION 4 gtrgm_decompress (internal), + FUNCTION 5 gtrgm_penalty (internal, internal, internal), + FUNCTION 6 gtrgm_picksplit (internal, internal), + FUNCTION 7 gtrgm_same (gtrgm, gtrgm, internal), + STORAGE gtrgm; + + +COMMIT; |
