2 -- Create the user-defined type for the 1-D integer arrays (_int4)
5 -- Adjust this setting to control where the operators, functions, and
6 -- opclasses get created.
7 SET search_path = public;
10 CREATE FUNCTION bqarr_in(cstring)
13 LANGUAGE 'C' WITH (isstrict);
15 CREATE FUNCTION bqarr_out(query_int)
18 LANGUAGE 'C' WITH (isstrict);
20 CREATE TYPE query_int (
27 CREATE FUNCTION querytree(query_int)
30 LANGUAGE 'C' WITH (isstrict);
33 CREATE FUNCTION boolop(_int4, query_int)
36 LANGUAGE 'C' WITH (isstrict);
38 COMMENT ON FUNCTION boolop(_int4, query_int) IS 'boolean operation with array';
40 CREATE FUNCTION rboolop(query_int, _int4)
43 LANGUAGE 'C' WITH (isstrict);
45 COMMENT ON FUNCTION rboolop(query_int, _int4) IS 'boolean operation with array';
67 -- External C-functions for R-tree methods
72 CREATE FUNCTION _int_contains(_int4, _int4)
75 LANGUAGE 'C' WITH (isstrict);
77 COMMENT ON FUNCTION _int_contains(_int4, _int4) IS 'contains';
79 CREATE FUNCTION _int_contained(_int4, _int4)
82 LANGUAGE 'C' WITH (isstrict);
84 COMMENT ON FUNCTION _int_contained(_int4, _int4) IS 'contained in';
86 CREATE FUNCTION _int_overlap(_int4, _int4)
89 LANGUAGE 'C' WITH (isstrict);
91 COMMENT ON FUNCTION _int_overlap(_int4, _int4) IS 'overlaps';
93 CREATE FUNCTION _int_same(_int4, _int4)
96 LANGUAGE 'C' WITH (isstrict);
98 COMMENT ON FUNCTION _int_same(_int4, _int4) IS 'same as';
100 CREATE FUNCTION _int_different(_int4, _int4)
103 LANGUAGE 'C' WITH (isstrict);
105 COMMENT ON FUNCTION _int_different(_int4, _int4) IS 'different';
107 -- support routines for indexing
109 CREATE FUNCTION _int_union(_int4, _int4)
111 AS 'MODULE_PATHNAME' LANGUAGE 'C' WITH (isstrict);
113 CREATE FUNCTION _int_inter(_int4, _int4)
116 LANGUAGE 'C' WITH (isstrict);
125 PROCEDURE = _int_overlap,
131 --CREATE OPERATOR = (
134 -- PROCEDURE = _int_same,
143 --CREATE OPERATOR <> (
146 -- PROCEDURE = _int_different,
147 -- COMMUTATOR = '<>',
149 -- RESTRICT = neqsel,
156 PROCEDURE = _int_contains,
165 PROCEDURE = _int_contained,
172 CREATE FUNCTION intset(int4)
175 LANGUAGE 'C' WITH (isStrict, isCachable);
177 CREATE FUNCTION icount(_int4)
180 LANGUAGE 'C' WITH (isStrict, isCachable);
187 CREATE FUNCTION sort(_int4, text)
190 LANGUAGE 'C' WITH (isStrict, isCachable);
192 CREATE FUNCTION sort(_int4)
195 LANGUAGE 'C' WITH (isStrict, isCachable);
197 CREATE FUNCTION sort_asc(_int4)
200 LANGUAGE 'C' WITH (isStrict, isCachable);
202 CREATE FUNCTION sort_desc(_int4)
205 LANGUAGE 'C' WITH (isStrict, isCachable);
207 CREATE FUNCTION uniq(_int4)
210 LANGUAGE 'C' WITH (isStrict, isCachable);
212 CREATE FUNCTION idx(_int4, int4)
215 LANGUAGE 'C' WITH (isStrict, isCachable);
223 CREATE FUNCTION subarray(_int4, int4, int4)
226 LANGUAGE 'C' WITH (isStrict, isCachable);
228 CREATE FUNCTION subarray(_int4, int4)
231 LANGUAGE 'C' WITH (isStrict, isCachable);
233 CREATE FUNCTION intarray_push_elem(_int4, int4)
236 LANGUAGE 'C' WITH (isStrict, isCachable);
241 PROCEDURE = intarray_push_elem
244 CREATE FUNCTION intarray_push_array(_int4, _int4)
247 LANGUAGE 'C' WITH (isStrict, isCachable);
253 PROCEDURE = intarray_push_array
256 CREATE FUNCTION intarray_del_elem(_int4, int4)
259 LANGUAGE 'C' WITH (isStrict, isCachable);
264 PROCEDURE = intarray_del_elem
267 CREATE FUNCTION intset_union_elem(_int4, int4)
270 LANGUAGE 'C' WITH (isStrict, isCachable);
275 PROCEDURE = intset_union_elem
282 PROCEDURE = _int_union
285 CREATE FUNCTION intset_subtract(_int4, _int4)
288 LANGUAGE 'C' WITH (isStrict, isCachable);
293 PROCEDURE = intset_subtract
300 PROCEDURE = _int_inter
304 -- define the GiST support methods
305 CREATE FUNCTION g_int_consistent(internal,_int4,int4)
310 CREATE FUNCTION g_int_compress(internal)
315 CREATE FUNCTION g_int_decompress(internal)
320 CREATE FUNCTION g_int_penalty(internal,internal,internal)
323 LANGUAGE 'C' WITH (isstrict);
325 CREATE FUNCTION g_int_picksplit(internal, internal)
330 CREATE FUNCTION g_int_union(bytea, internal)
335 CREATE FUNCTION g_int_same(_int4, _int4, internal)
341 -- Create the operator class for indexing
343 CREATE OPERATOR CLASS gist__int_ops
344 DEFAULT FOR TYPE _int4 USING gist AS
346 OPERATOR 6 = (anyarray, anyarray) RECHECK,
349 OPERATOR 20 @@ (_int4, query_int),
350 FUNCTION 1 g_int_consistent (internal, _int4, int4),
351 FUNCTION 2 g_int_union (bytea, internal),
352 FUNCTION 3 g_int_compress (internal),
353 FUNCTION 4 g_int_decompress (internal),
354 FUNCTION 5 g_int_penalty (internal, internal, internal),
355 FUNCTION 6 g_int_picksplit (internal, internal),
356 FUNCTION 7 g_int_same (_int4, _int4, internal);
359 ---------------------------------------------
361 ---------------------------------------------
362 -- define the GiST support methods
364 CREATE FUNCTION _intbig_in(cstring)
367 LANGUAGE 'C' with (isstrict);
369 CREATE FUNCTION _intbig_out(intbig_gkey)
372 LANGUAGE 'C' with (isstrict);
374 CREATE TYPE intbig_gkey (
380 CREATE FUNCTION g_intbig_consistent(internal,internal,int4)
385 CREATE FUNCTION g_intbig_compress(internal)
390 CREATE FUNCTION g_intbig_decompress(internal)
395 CREATE FUNCTION g_intbig_penalty(internal,internal,internal)
398 LANGUAGE 'C' WITH (isstrict);
400 CREATE FUNCTION g_intbig_picksplit(internal, internal)
405 CREATE FUNCTION g_intbig_union(bytea, internal)
410 CREATE FUNCTION g_intbig_same(internal, internal, internal)
415 -- register the opclass for indexing (not as default)
417 CREATE OPERATOR CLASS gist__intbig_ops
418 FOR TYPE _int4 USING gist
420 OPERATOR 3 && RECHECK,
421 OPERATOR 6 = (anyarray, anyarray) RECHECK,
422 OPERATOR 7 @ RECHECK,
423 OPERATOR 8 ~ RECHECK,
424 OPERATOR 20 @@ (_int4, query_int) RECHECK,
425 FUNCTION 1 g_intbig_consistent (internal, internal, int4),
426 FUNCTION 2 g_intbig_union (bytea, internal),
427 FUNCTION 3 g_intbig_compress (internal),
428 FUNCTION 4 g_intbig_decompress (internal),
429 FUNCTION 5 g_intbig_penalty (internal, internal, internal),
430 FUNCTION 6 g_intbig_picksplit (internal, internal),
431 FUNCTION 7 g_intbig_same (internal, internal, internal),