@@ -39,6 +39,39 @@ CREATE OPERATOR % (
3939 JOIN = contjoinsel
4040);
4141
42+ CREATE FUNCTION word_similarity (text ,text )
43+ RETURNS float4
44+ AS ' MODULE_PATHNAME'
45+ LANGUAGE C STRICT IMMUTABLE;
46+
47+ CREATE FUNCTION word_similarity_op (text ,text )
48+ RETURNS bool
49+ AS ' MODULE_PATHNAME'
50+ LANGUAGE C STRICT STABLE; -- stable because depends on pg_trgm.word_similarity_threshold
51+
52+ CREATE FUNCTION word_similarity_commutator_op (text ,text )
53+ RETURNS bool
54+ AS ' MODULE_PATHNAME'
55+ LANGUAGE C STRICT STABLE; -- stable because depends on pg_trgm.word_similarity_threshold
56+
57+ CREATE OPERATOR < % (
58+ LEFTARG = text ,
59+ RIGHTARG = text ,
60+ PROCEDURE = word_similarity_op,
61+ COMMUTATOR = ' %>' ,
62+ RESTRICT = contsel,
63+ JOIN = contjoinsel
64+ );
65+
66+ CREATE OPERATOR %> (
67+ LEFTARG = text ,
68+ RIGHTARG = text ,
69+ PROCEDURE = word_similarity_commutator_op,
70+ COMMUTATOR = ' <%' ,
71+ RESTRICT = contsel,
72+ JOIN = contjoinsel
73+ );
74+
4275CREATE FUNCTION similarity_dist (text ,text )
4376RETURNS float4
4477AS ' MODULE_PATHNAME'
@@ -51,6 +84,30 @@ CREATE OPERATOR <-> (
5184 COMMUTATOR = ' <->'
5285);
5386
87+ CREATE FUNCTION word_similarity_dist_op (text ,text )
88+ RETURNS float4
89+ AS ' MODULE_PATHNAME'
90+ LANGUAGE C STRICT IMMUTABLE;
91+
92+ CREATE FUNCTION word_similarity_dist_commutator_op (text ,text )
93+ RETURNS float4
94+ AS ' MODULE_PATHNAME'
95+ LANGUAGE C STRICT IMMUTABLE;
96+
97+ CREATE OPERATOR << - > (
98+ LEFTARG = text ,
99+ RIGHTARG = text ,
100+ PROCEDURE = word_similarity_dist_op,
101+ COMMUTATOR = ' <->>'
102+ );
103+
104+ CREATE OPERATOR < - >> (
105+ LEFTARG = text ,
106+ RIGHTARG = text ,
107+ PROCEDURE = word_similarity_dist_commutator_op,
108+ COMMUTATOR = ' <<->'
109+ );
110+
54111-- gist key
55112CREATE FUNCTION gtrgm_in (cstring)
56113RETURNS gtrgm
@@ -140,6 +197,12 @@ ALTER OPERATOR FAMILY gist_trgm_ops USING gist ADD
140197 OPERATOR 5 pg_catalog.~ (text , text ),
141198 OPERATOR 6 pg_catalog.~* (text , text );
142199
200+ -- Add operators that are new in 9.6 (pg_trgm 1.2).
201+
202+ ALTER OPERATOR FAMILY gist_trgm_ops USING gist ADD
203+ OPERATOR 7 %> (text , text ),
204+ OPERATOR 8 < - >> (text , text ) FOR ORDER BY pg_catalog .float_ops ;
205+
143206-- support functions for gin
144207CREATE FUNCTION gin_extract_value_trgm (text , internal)
145208RETURNS internal
@@ -187,4 +250,5 @@ AS 'MODULE_PATHNAME'
187250LANGUAGE C IMMUTABLE STRICT;
188251
189252ALTER OPERATOR FAMILY gin_trgm_ops USING gin ADD
253+ OPERATOR 7 %> (text , text ),
190254 FUNCTION 6 (text ,text ) gin_trgm_triconsistent (internal, int2, text , int4, internal, internal, internal);
0 commit comments