1/* contrib/pg_trgm/pg_trgm--1.1--1.2.sql */
2
3-- complain if script is sourced in psql, rather than via ALTER EXTENSION
4\echo Use "ALTER EXTENSION pg_trgm UPDATE TO '1.2'" to load this file. \quit
5
6CREATE FUNCTION word_similarity(text,text)
7RETURNS float4
8AS 'MODULE_PATHNAME'
9LANGUAGE C STRICT IMMUTABLE;
10
11CREATE FUNCTION word_similarity_op(text,text)
12RETURNS bool
13AS 'MODULE_PATHNAME'
14LANGUAGE C STRICT STABLE;  -- stable because depends on pg_trgm.word_similarity_threshold
15
16CREATE FUNCTION word_similarity_commutator_op(text,text)
17RETURNS bool
18AS 'MODULE_PATHNAME'
19LANGUAGE C STRICT STABLE;  -- stable because depends on pg_trgm.word_similarity_threshold
20
21CREATE FUNCTION word_similarity_dist_op(text,text)
22RETURNS float4
23AS 'MODULE_PATHNAME'
24LANGUAGE C STRICT IMMUTABLE;
25
26CREATE FUNCTION word_similarity_dist_commutator_op(text,text)
27RETURNS float4
28AS 'MODULE_PATHNAME'
29LANGUAGE C STRICT IMMUTABLE;
30
31CREATE OPERATOR <% (
32        LEFTARG = text,
33        RIGHTARG = text,
34        PROCEDURE = word_similarity_op,
35        COMMUTATOR = '%>',
36        RESTRICT = contsel,
37        JOIN = contjoinsel
38);
39
40CREATE OPERATOR %> (
41        LEFTARG = text,
42        RIGHTARG = text,
43        PROCEDURE = word_similarity_commutator_op,
44        COMMUTATOR = '<%',
45        RESTRICT = contsel,
46        JOIN = contjoinsel
47);
48
49CREATE OPERATOR <<-> (
50        LEFTARG = text,
51        RIGHTARG = text,
52        PROCEDURE = word_similarity_dist_op,
53        COMMUTATOR = '<->>'
54);
55
56CREATE OPERATOR <->> (
57        LEFTARG = text,
58        RIGHTARG = text,
59        PROCEDURE = word_similarity_dist_commutator_op,
60        COMMUTATOR = '<<->'
61);
62
63CREATE FUNCTION gin_trgm_triconsistent(internal, int2, text, int4, internal, internal, internal)
64RETURNS "char"
65AS 'MODULE_PATHNAME'
66LANGUAGE C IMMUTABLE STRICT;
67
68ALTER OPERATOR FAMILY gist_trgm_ops USING gist ADD
69        OPERATOR        7       %> (text, text),
70        OPERATOR        8       <->> (text, text) FOR ORDER BY pg_catalog.float_ops;
71
72ALTER OPERATOR FAMILY gin_trgm_ops USING gin ADD
73        OPERATOR        7       %> (text, text),
74        FUNCTION        6      (text, text)   gin_trgm_triconsistent (internal, int2, text, int4, internal, internal, internal);
75