@@ -2,15 +2,17 @@ SET search_path = public;
2
2
3
3
BEGIN;
4
4
5
+ CREATE TYPE hstore;
6
+
5
7
CREATE FUNCTION hstore_in(cstring)
6
8
RETURNS hstore
7
9
AS 'MODULE_PATHNAME'
8
- LANGUAGE 'C' with (isstrict) ;
10
+ LANGUAGE C STRICT ;
9
11
10
12
CREATE FUNCTION hstore_out(hstore)
11
13
RETURNS cstring
12
14
AS 'MODULE_PATHNAME'
13
- LANGUAGE 'C' with (isstrict) ;
15
+ LANGUAGE C STRICT ;
14
16
15
17
CREATE TYPE hstore (
16
18
INTERNALLENGTH = -1,
@@ -22,7 +24,7 @@ CREATE TYPE hstore (
22
24
CREATE FUNCTION fetchval(hstore,text)
23
25
RETURNS text
24
26
AS 'MODULE_PATHNAME'
25
- LANGUAGE 'C' with (isstrict,iscachable) ;
27
+ LANGUAGE C STRICT IMMUTABLE ;
26
28
27
29
CREATE OPERATOR -> (
28
30
LEFTARG = hstore,
@@ -33,12 +35,12 @@ CREATE OPERATOR -> (
33
35
CREATE FUNCTION isexists(hstore,text)
34
36
RETURNS bool
35
37
AS 'MODULE_PATHNAME','exists'
36
- LANGUAGE 'C' with (isstrict,iscachable) ;
38
+ LANGUAGE C STRICT IMMUTABLE ;
37
39
38
40
CREATE FUNCTION exist(hstore,text)
39
41
RETURNS bool
40
42
AS 'MODULE_PATHNAME','exists'
41
- LANGUAGE 'C' with (isstrict,iscachable) ;
43
+ LANGUAGE C STRICT IMMUTABLE ;
42
44
43
45
CREATE OPERATOR ? (
44
46
LEFTARG = hstore,
@@ -51,22 +53,22 @@ CREATE OPERATOR ? (
51
53
CREATE FUNCTION isdefined(hstore,text)
52
54
RETURNS bool
53
55
AS 'MODULE_PATHNAME','defined'
54
- LANGUAGE 'C' with (isstrict,iscachable) ;
56
+ LANGUAGE C STRICT IMMUTABLE ;
55
57
56
58
CREATE FUNCTION defined(hstore,text)
57
59
RETURNS bool
58
60
AS 'MODULE_PATHNAME','defined'
59
- LANGUAGE 'C' with (isstrict,iscachable) ;
61
+ LANGUAGE C STRICT IMMUTABLE ;
60
62
61
63
CREATE FUNCTION delete(hstore,text)
62
64
RETURNS hstore
63
65
AS 'MODULE_PATHNAME','delete'
64
- LANGUAGE 'C' with (isstrict,iscachable) ;
66
+ LANGUAGE C STRICT IMMUTABLE ;
65
67
66
68
CREATE FUNCTION hs_concat(hstore,hstore)
67
69
RETURNS hstore
68
70
AS 'MODULE_PATHNAME'
69
- LANGUAGE 'C' with (isstrict,iscachable) ;
71
+ LANGUAGE C STRICT IMMUTABLE ;
70
72
71
73
CREATE OPERATOR || (
72
74
LEFTARG = hstore,
@@ -77,12 +79,12 @@ CREATE OPERATOR || (
77
79
CREATE FUNCTION hs_contains(hstore,hstore)
78
80
RETURNS bool
79
81
AS 'MODULE_PATHNAME'
80
- LANGUAGE 'C' with (isstrict,iscachable) ;
82
+ LANGUAGE C STRICT IMMUTABLE ;
81
83
82
84
CREATE FUNCTION hs_contained(hstore,hstore)
83
85
RETURNS bool
84
86
AS 'MODULE_PATHNAME'
85
- LANGUAGE 'C' with (isstrict,iscachable) ;
87
+ LANGUAGE C STRICT IMMUTABLE ;
86
88
87
89
CREATE OPERATOR @> (
88
90
LEFTARG = hstore,
@@ -124,7 +126,7 @@ CREATE OPERATOR ~ (
124
126
CREATE FUNCTION tconvert(text,text)
125
127
RETURNS hstore
126
128
AS 'MODULE_PATHNAME'
127
- LANGUAGE 'C' with (iscachable) ;
129
+ LANGUAGE C IMMUTABLE ;
128
130
129
131
CREATE OPERATOR => (
130
132
LEFTARG = text,
@@ -135,43 +137,45 @@ CREATE OPERATOR => (
135
137
CREATE FUNCTION akeys(hstore)
136
138
RETURNS _text
137
139
AS 'MODULE_PATHNAME'
138
- LANGUAGE 'C' with (isstrict,iscachable) ;
140
+ LANGUAGE C STRICT IMMUTABLE ;
139
141
140
142
CREATE FUNCTION avals(hstore)
141
143
RETURNS _text
142
144
AS 'MODULE_PATHNAME'
143
- LANGUAGE 'C' with (isstrict,iscachable) ;
145
+ LANGUAGE C STRICT IMMUTABLE ;
144
146
145
147
CREATE FUNCTION skeys(hstore)
146
148
RETURNS setof text
147
149
AS 'MODULE_PATHNAME'
148
- LANGUAGE 'C' with (isstrict,iscachable) ;
150
+ LANGUAGE C STRICT IMMUTABLE ;
149
151
150
152
CREATE FUNCTION svals(hstore)
151
153
RETURNS setof text
152
154
AS 'MODULE_PATHNAME'
153
- LANGUAGE 'C' with (isstrict,iscachable);
154
-
155
- create type hs_each as (key text, value text);
155
+ LANGUAGE C STRICT IMMUTABLE;
156
156
157
- CREATE FUNCTION each(hstore)
158
- RETURNS setof hs_each
157
+ CREATE FUNCTION each(IN hs hstore,
158
+ OUT key text,
159
+ OUT value text)
160
+ RETURNS SETOF record
159
161
AS 'MODULE_PATHNAME'
160
- LANGUAGE 'C' with (isstrict,iscachable) ;
162
+ LANGUAGE C STRICT IMMUTABLE ;
161
163
162
164
163
165
164
166
-- define the GiST support methods
165
167
168
+ CREATE TYPE ghstore;
169
+
166
170
CREATE FUNCTION ghstore_in(cstring)
167
171
RETURNS ghstore
168
172
AS 'MODULE_PATHNAME'
169
- LANGUAGE 'C' with (isstrict) ;
173
+ LANGUAGE C STRICT ;
170
174
171
175
CREATE FUNCTION ghstore_out(ghstore)
172
176
RETURNS cstring
173
177
AS 'MODULE_PATHNAME'
174
- LANGUAGE 'C' with (isstrict) ;
178
+ LANGUAGE C STRICT ;
175
179
176
180
CREATE TYPE ghstore (
177
181
INTERNALLENGTH = -1,
@@ -182,37 +186,37 @@ CREATE TYPE ghstore (
182
186
CREATE FUNCTION ghstore_compress(internal)
183
187
RETURNS internal
184
188
AS 'MODULE_PATHNAME'
185
- LANGUAGE 'C' ;
189
+ LANGUAGE C ;
186
190
187
191
CREATE FUNCTION ghstore_decompress(internal)
188
192
RETURNS internal
189
193
AS 'MODULE_PATHNAME'
190
- LANGUAGE 'C' ;
194
+ LANGUAGE C ;
191
195
192
196
CREATE FUNCTION ghstore_penalty(internal,internal,internal)
193
197
RETURNS internal
194
198
AS 'MODULE_PATHNAME'
195
- LANGUAGE 'C' WITH (isstrict) ;
199
+ LANGUAGE C STRICT ;
196
200
197
201
CREATE FUNCTION ghstore_picksplit(internal, internal)
198
202
RETURNS internal
199
203
AS 'MODULE_PATHNAME'
200
- LANGUAGE 'C' ;
204
+ LANGUAGE C ;
201
205
202
206
CREATE FUNCTION ghstore_union(internal, internal)
203
207
RETURNS internal
204
208
AS 'MODULE_PATHNAME'
205
- LANGUAGE 'C' ;
209
+ LANGUAGE C ;
206
210
207
211
CREATE FUNCTION ghstore_same(internal, internal, internal)
208
212
RETURNS internal
209
213
AS 'MODULE_PATHNAME'
210
- LANGUAGE 'C' ;
214
+ LANGUAGE C ;
211
215
212
216
CREATE FUNCTION ghstore_consistent(internal,internal,int4)
213
217
RETURNS bool
214
218
AS 'MODULE_PATHNAME'
215
- LANGUAGE 'C' ;
219
+ LANGUAGE C ;
216
220
217
221
-- register the opclass for indexing (not as default)
218
222
CREATE OPERATOR CLASS gist_hstore_ops
0 commit comments