1/* contrib/btree_gin/btree_gin--1.2--1.3.sql */
2
3-- complain if script is sourced in psql, rather than via CREATE EXTENSION
4\echo Use "ALTER EXTENSION btree_gin UPDATE TO '1.3'" to load this file. \quit
5
6-- uuid datatype support new in 1.3.
7CREATE FUNCTION gin_extract_value_uuid(uuid, internal)
8RETURNS internal
9AS 'MODULE_PATHNAME'
10LANGUAGE C STRICT IMMUTABLE;
11
12CREATE FUNCTION gin_compare_prefix_uuid(uuid, uuid, int2, internal)
13RETURNS int4
14AS 'MODULE_PATHNAME'
15LANGUAGE C STRICT IMMUTABLE;
16
17CREATE FUNCTION gin_extract_query_uuid(uuid, internal, int2, internal, internal)
18RETURNS internal
19AS 'MODULE_PATHNAME'
20LANGUAGE C STRICT IMMUTABLE;
21
22CREATE OPERATOR CLASS uuid_ops
23DEFAULT FOR TYPE uuid USING gin
24AS
25    OPERATOR        1       <,
26    OPERATOR        2       <=,
27    OPERATOR        3       =,
28    OPERATOR        4       >=,
29    OPERATOR        5       >,
30    FUNCTION        1       uuid_cmp(uuid,uuid),
31    FUNCTION        2       gin_extract_value_uuid(uuid, internal),
32    FUNCTION        3       gin_extract_query_uuid(uuid, internal, int2, internal, internal),
33    FUNCTION        4       gin_btree_consistent(internal, int2, anyelement, int4, internal, internal),
34    FUNCTION        5       gin_compare_prefix_uuid(uuid,uuid,int2, internal),
35STORAGE         uuid;
36
37-- name datatype support new in 1.3.
38CREATE FUNCTION gin_extract_value_name(name, internal)
39RETURNS internal
40AS 'MODULE_PATHNAME'
41LANGUAGE C STRICT IMMUTABLE;
42
43CREATE FUNCTION gin_compare_prefix_name(name, name, int2, internal)
44RETURNS int4
45AS 'MODULE_PATHNAME'
46LANGUAGE C STRICT IMMUTABLE;
47
48CREATE FUNCTION gin_extract_query_name(name, internal, int2, internal, internal)
49RETURNS internal
50AS 'MODULE_PATHNAME'
51LANGUAGE C STRICT IMMUTABLE;
52
53CREATE OPERATOR CLASS name_ops
54DEFAULT FOR TYPE name USING gin
55AS
56    OPERATOR        1       <,
57    OPERATOR        2       <=,
58    OPERATOR        3       =,
59    OPERATOR        4       >=,
60    OPERATOR        5       >,
61    FUNCTION        1       btnamecmp(name,name),
62    FUNCTION        2       gin_extract_value_name(name, internal),
63    FUNCTION        3       gin_extract_query_name(name, internal, int2, internal, internal),
64    FUNCTION        4       gin_btree_consistent(internal, int2, anyelement, int4, internal, internal),
65    FUNCTION        5       gin_compare_prefix_name(name,name,int2, internal),
66STORAGE         name;
67
68-- bool datatype support new in 1.3.
69CREATE FUNCTION gin_extract_value_bool(bool, internal)
70RETURNS internal
71AS 'MODULE_PATHNAME'
72LANGUAGE C STRICT IMMUTABLE;
73
74CREATE FUNCTION gin_compare_prefix_bool(bool, bool, int2, internal)
75RETURNS int4
76AS 'MODULE_PATHNAME'
77LANGUAGE C STRICT IMMUTABLE;
78
79CREATE FUNCTION gin_extract_query_bool(bool, internal, int2, internal, internal)
80RETURNS internal
81AS 'MODULE_PATHNAME'
82LANGUAGE C STRICT IMMUTABLE;
83
84CREATE OPERATOR CLASS bool_ops
85DEFAULT FOR TYPE bool USING gin
86AS
87    OPERATOR        1       <,
88    OPERATOR        2       <=,
89    OPERATOR        3       =,
90    OPERATOR        4       >=,
91    OPERATOR        5       >,
92    FUNCTION        1       btboolcmp(bool,bool),
93    FUNCTION        2       gin_extract_value_bool(bool, internal),
94    FUNCTION        3       gin_extract_query_bool(bool, internal, int2, internal, internal),
95    FUNCTION        4       gin_btree_consistent(internal, int2, anyelement, int4, internal, internal),
96    FUNCTION        5       gin_compare_prefix_bool(bool,bool,int2, internal),
97STORAGE         bool;
98
99-- bpchar datatype support new in 1.3.
100CREATE FUNCTION gin_extract_value_bpchar(bpchar, internal)
101RETURNS internal
102AS 'MODULE_PATHNAME'
103LANGUAGE C STRICT IMMUTABLE;
104
105CREATE FUNCTION gin_compare_prefix_bpchar(bpchar, bpchar, int2, internal)
106RETURNS int4
107AS 'MODULE_PATHNAME'
108LANGUAGE C STRICT IMMUTABLE;
109
110CREATE FUNCTION gin_extract_query_bpchar(bpchar, internal, int2, internal, internal)
111RETURNS internal
112AS 'MODULE_PATHNAME'
113LANGUAGE C STRICT IMMUTABLE;
114
115CREATE OPERATOR CLASS bpchar_ops
116DEFAULT FOR TYPE bpchar USING gin
117AS
118    OPERATOR        1       <,
119    OPERATOR        2       <=,
120    OPERATOR        3       =,
121    OPERATOR        4       >=,
122    OPERATOR        5       >,
123    FUNCTION        1       bpcharcmp(bpchar, bpchar),
124    FUNCTION        2       gin_extract_value_bpchar(bpchar, internal),
125    FUNCTION        3       gin_extract_query_bpchar(bpchar, internal, int2, internal, internal),
126    FUNCTION        4       gin_btree_consistent(internal, int2, anyelement, int4, internal, internal),
127    FUNCTION        5       gin_compare_prefix_bpchar(bpchar,bpchar,int2, internal),
128STORAGE         bpchar;
129