@@ -10,7 +10,6 @@ ALTER EXTENSION pg_trgm ADD type gtrgm;
1010ALTER EXTENSION pg_trgm ADD function gtrgm_in(cstring);
1111ALTER EXTENSION pg_trgm ADD function gtrgm_out(gtrgm);
1212ALTER EXTENSION pg_trgm ADD function gtrgm_consistent(internal,text ,integer ,oid ,internal);
13- ALTER EXTENSION pg_trgm ADD function gtrgm_distance(internal,text ,integer ,oid );
1413ALTER EXTENSION pg_trgm ADD function gtrgm_compress(internal);
1514ALTER EXTENSION pg_trgm ADD function gtrgm_decompress(internal);
1615ALTER EXTENSION pg_trgm ADD function gtrgm_penalty(internal,internal,internal);
@@ -19,13 +18,52 @@ ALTER EXTENSION pg_trgm ADD function gtrgm_union(bytea,internal);
1918ALTER EXTENSION pg_trgm ADD function gtrgm_same(gtrgm,gtrgm,internal);
2019ALTER EXTENSION pg_trgm ADD operator family gist_trgm_ops using gist;
2120ALTER EXTENSION pg_trgm ADD operator class gist_trgm_ops using gist;
22- ALTER EXTENSION pg_trgm ADD function gin_extract_value_trgm(text ,internal);
23- ALTER EXTENSION pg_trgm ADD function gin_extract_query_trgm(text ,internal,smallint ,internal,internal,internal,internal);
24- ALTER EXTENSION pg_trgm ADD function gin_trgm_consistent(internal,smallint ,text ,integer ,internal,internal,internal,internal);
2521ALTER EXTENSION pg_trgm ADD operator family gin_trgm_ops using gin;
2622ALTER EXTENSION pg_trgm ADD operator class gin_trgm_ops using gin;
2723
28- -- these were not in 9.0:
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.
27+
28+ -- First, absorb them into the extension under their old names.
29+
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);
33+
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).
36+
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)
40+ RETURNS internal
41+ AS ' MODULE_PATHNAME'
42+ LANGUAGE C IMMUTABLE STRICT;
43+
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)
47+ RETURNS internal
48+ AS ' MODULE_PATHNAME'
49+ LANGUAGE C IMMUTABLE STRICT;
50+
51+ -- gin_trgm_consistent didn't change name.
52+
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.
56+
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 ;
60+
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 ;
64+
65+
66+ -- These were not in 9.0:
2967
3068CREATE FUNCTION similarity_dist (text ,text )
3169RETURNS float4
@@ -38,3 +76,20 @@ CREATE OPERATOR <-> (
3876 PROCEDURE = similarity_dist,
3977 COMMUTATOR = ' <->'
4078);
79+
80+ CREATE FUNCTION gtrgm_distance (internal,text ,int ,oid )
81+ RETURNS float8
82+ AS ' MODULE_PATHNAME'
83+ LANGUAGE C IMMUTABLE STRICT;
84+
85+ -- Add new stuff to the operator classes. See comment in pg_trgm--1.0.sql.
86+
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 );
92+
93+ ALTER OPERATOR FAMILY gin_trgm_ops USING gin ADD
94+ OPERATOR 3 pg_catalog.~~ (text , text ),
95+ OPERATOR 4 pg_catalog.~~* (text , text );
0 commit comments