1 /* contrib/pg_trgm/pg_trgm--unpackaged--1.0.sql */
3 ALTER EXTENSION pg_trgm ADD function set_limit(real);
4 ALTER EXTENSION pg_trgm ADD function show_limit();
5 ALTER EXTENSION pg_trgm ADD function show_trgm(text);
6 ALTER EXTENSION pg_trgm ADD function similarity(text,text);
7 ALTER EXTENSION pg_trgm ADD function similarity_op(text,text);
8 ALTER EXTENSION pg_trgm ADD operator %(text,text);
9 ALTER EXTENSION pg_trgm ADD type gtrgm;
10 ALTER EXTENSION pg_trgm ADD function gtrgm_in(cstring);
11 ALTER EXTENSION pg_trgm ADD function gtrgm_out(gtrgm);
12 ALTER EXTENSION pg_trgm ADD function gtrgm_consistent(internal,text,integer,oid,internal);
13 ALTER EXTENSION pg_trgm ADD function gtrgm_compress(internal);
14 ALTER EXTENSION pg_trgm ADD function gtrgm_decompress(internal);
15 ALTER EXTENSION pg_trgm ADD function gtrgm_penalty(internal,internal,internal);
16 ALTER EXTENSION pg_trgm ADD function gtrgm_picksplit(internal,internal);
17 ALTER EXTENSION pg_trgm ADD function gtrgm_union(bytea,internal);
18 ALTER EXTENSION pg_trgm ADD function gtrgm_same(gtrgm,gtrgm,internal);
19 ALTER EXTENSION pg_trgm ADD operator family gist_trgm_ops using gist;
20 ALTER EXTENSION pg_trgm ADD operator class gist_trgm_ops using gist;
21 ALTER EXTENSION pg_trgm ADD operator family gin_trgm_ops using gin;
22 ALTER EXTENSION pg_trgm ADD operator class gin_trgm_ops using gin;
24 -- These functions had different names/signatures in 9.0. We can't just
25 -- drop and recreate them because they are linked into the GIN opclass,
26 -- so we need some ugly hacks.
28 -- First, absorb them into the extension under their old names.
30 ALTER EXTENSION pg_trgm ADD function gin_extract_trgm(text, internal);
31 ALTER EXTENSION pg_trgm ADD function gin_extract_trgm(text, internal, int2, internal, internal);
32 ALTER EXTENSION pg_trgm ADD function gin_trgm_consistent(internal,smallint,text,integer,internal,internal);
34 -- Fix the names, and then do CREATE OR REPLACE to adjust the function
35 -- bodies to be correct (ie, reference the correct C symbol).
37 ALTER FUNCTION gin_extract_trgm(text, internal)
38 RENAME TO gin_extract_value_trgm;
39 CREATE OR REPLACE FUNCTION gin_extract_value_trgm(text, internal)
42 LANGUAGE C IMMUTABLE STRICT;
44 ALTER FUNCTION gin_extract_trgm(text, internal, int2, internal, internal)
45 RENAME TO gin_extract_query_trgm;
46 CREATE OR REPLACE FUNCTION gin_extract_query_trgm(text, internal, int2, internal, internal)
49 LANGUAGE C IMMUTABLE STRICT;
51 -- gin_trgm_consistent didn't change name.
53 -- Last, fix the parameter lists by means of direct UPDATE on the pg_proc
54 -- entries. This is ugly as can be, but there's no other way to do it
55 -- while preserving the identities (OIDs) of the functions.
57 UPDATE pg_catalog.pg_proc
58 SET pronargs = 7, proargtypes = '25 2281 21 2281 2281 2281 2281'
59 WHERE oid = 'gin_extract_query_trgm(text,internal,int2,internal,internal)'::pg_catalog.regprocedure;
61 UPDATE pg_catalog.pg_proc
62 SET pronargs = 8, proargtypes = '2281 21 25 23 2281 2281 2281 2281'
63 WHERE oid = 'gin_trgm_consistent(internal,smallint,text,integer,internal,internal)'::pg_catalog.regprocedure;
66 -- These were not in 9.0:
68 CREATE FUNCTION similarity_dist(text,text)
71 LANGUAGE C STRICT IMMUTABLE;
76 PROCEDURE = similarity_dist,
80 CREATE FUNCTION gtrgm_distance(internal,text,int,oid)
83 LANGUAGE C IMMUTABLE STRICT;
85 -- Add new stuff to the operator classes. See comment in pg_trgm--1.0.sql.
87 ALTER OPERATOR FAMILY gist_trgm_ops USING gist ADD
88 OPERATOR 2 <-> (text, text) FOR ORDER BY pg_catalog.float_ops,
89 OPERATOR 3 pg_catalog.~~ (text, text),
90 OPERATOR 4 pg_catalog.~~* (text, text),
91 FUNCTION 8 (text, text) gtrgm_distance (internal, text, int, oid);
93 ALTER OPERATOR FAMILY gin_trgm_ops USING gin ADD
94 OPERATOR 3 pg_catalog.~~ (text, text),
95 OPERATOR 4 pg_catalog.~~* (text, text);