1 /* contrib/intarray/intarray--1.0.sql */
3 -- complain if script is sourced in psql, rather than via CREATE EXTENSION
4 \echo Use "CREATE EXTENSION intarray" to load this file. \quit
7 -- Create the user-defined type for the 1-D integer arrays (_int4)
11 CREATE FUNCTION bqarr_in(cstring)
14 LANGUAGE C STRICT IMMUTABLE;
16 CREATE FUNCTION bqarr_out(query_int)
19 LANGUAGE C STRICT IMMUTABLE;
21 CREATE TYPE query_int (
28 CREATE FUNCTION querytree(query_int)
31 LANGUAGE C STRICT IMMUTABLE;
34 CREATE FUNCTION boolop(_int4, query_int)
37 LANGUAGE C STRICT IMMUTABLE;
39 COMMENT ON FUNCTION boolop(_int4, query_int) IS 'boolean operation with array';
41 CREATE FUNCTION rboolop(query_int, _int4)
44 LANGUAGE C STRICT IMMUTABLE;
46 COMMENT ON FUNCTION rboolop(query_int, _int4) IS 'boolean operation with array';
68 -- External C-functions for R-tree methods
73 CREATE FUNCTION _int_contains(_int4, _int4)
76 LANGUAGE C STRICT IMMUTABLE;
78 COMMENT ON FUNCTION _int_contains(_int4, _int4) IS 'contains';
80 CREATE FUNCTION _int_contained(_int4, _int4)
83 LANGUAGE C STRICT IMMUTABLE;
85 COMMENT ON FUNCTION _int_contained(_int4, _int4) IS 'contained in';
87 CREATE FUNCTION _int_overlap(_int4, _int4)
90 LANGUAGE C STRICT IMMUTABLE;
92 COMMENT ON FUNCTION _int_overlap(_int4, _int4) IS 'overlaps';
94 CREATE FUNCTION _int_same(_int4, _int4)
97 LANGUAGE C STRICT IMMUTABLE;
99 COMMENT ON FUNCTION _int_same(_int4, _int4) IS 'same as';
101 CREATE FUNCTION _int_different(_int4, _int4)
104 LANGUAGE C STRICT IMMUTABLE;
106 COMMENT ON FUNCTION _int_different(_int4, _int4) IS 'different';
108 -- support routines for indexing
110 CREATE FUNCTION _int_union(_int4, _int4)
113 LANGUAGE C STRICT IMMUTABLE;
115 CREATE FUNCTION _int_inter(_int4, _int4)
118 LANGUAGE C STRICT IMMUTABLE;
127 PROCEDURE = _int_overlap,
133 --CREATE OPERATOR = (
136 -- PROCEDURE = _int_same,
145 --CREATE OPERATOR <> (
148 -- PROCEDURE = _int_different,
149 -- COMMUTATOR = '<>',
151 -- RESTRICT = neqsel,
158 PROCEDURE = _int_contains,
167 PROCEDURE = _int_contained,
177 PROCEDURE = _int_contains,
186 PROCEDURE = _int_contained,
193 CREATE FUNCTION intset(int4)
196 LANGUAGE C STRICT IMMUTABLE;
198 CREATE FUNCTION icount(_int4)
201 LANGUAGE C STRICT IMMUTABLE;
208 CREATE FUNCTION sort(_int4, text)
211 LANGUAGE C STRICT IMMUTABLE;
213 CREATE FUNCTION sort(_int4)
216 LANGUAGE C STRICT IMMUTABLE;
218 CREATE FUNCTION sort_asc(_int4)
221 LANGUAGE C STRICT IMMUTABLE;
223 CREATE FUNCTION sort_desc(_int4)
226 LANGUAGE C STRICT IMMUTABLE;
228 CREATE FUNCTION uniq(_int4)
231 LANGUAGE C STRICT IMMUTABLE;
233 CREATE FUNCTION idx(_int4, int4)
236 LANGUAGE C STRICT IMMUTABLE;
244 CREATE FUNCTION subarray(_int4, int4, int4)
247 LANGUAGE C STRICT IMMUTABLE;
249 CREATE FUNCTION subarray(_int4, int4)
252 LANGUAGE C STRICT IMMUTABLE;
254 CREATE FUNCTION intarray_push_elem(_int4, int4)
257 LANGUAGE C STRICT IMMUTABLE;
262 PROCEDURE = intarray_push_elem
265 CREATE FUNCTION intarray_push_array(_int4, _int4)
268 LANGUAGE C STRICT IMMUTABLE;
274 PROCEDURE = intarray_push_array
277 CREATE FUNCTION intarray_del_elem(_int4, int4)
280 LANGUAGE C STRICT IMMUTABLE;
285 PROCEDURE = intarray_del_elem
288 CREATE FUNCTION intset_union_elem(_int4, int4)
291 LANGUAGE C STRICT IMMUTABLE;
296 PROCEDURE = intset_union_elem
303 PROCEDURE = _int_union
306 CREATE FUNCTION intset_subtract(_int4, _int4)
309 LANGUAGE C STRICT IMMUTABLE;
314 PROCEDURE = intset_subtract
321 PROCEDURE = _int_inter
325 -- define the GiST support methods
326 CREATE FUNCTION g_int_consistent(internal,_int4,int,oid,internal)
329 LANGUAGE C IMMUTABLE STRICT;
331 CREATE FUNCTION g_int_compress(internal)
334 LANGUAGE C IMMUTABLE STRICT;
336 CREATE FUNCTION g_int_decompress(internal)
339 LANGUAGE C IMMUTABLE STRICT;
341 CREATE FUNCTION g_int_penalty(internal,internal,internal)
344 LANGUAGE C IMMUTABLE STRICT;
346 CREATE FUNCTION g_int_picksplit(internal, internal)
349 LANGUAGE C IMMUTABLE STRICT;
351 CREATE FUNCTION g_int_union(internal, internal)
354 LANGUAGE C IMMUTABLE STRICT;
356 CREATE FUNCTION g_int_same(_int4, _int4, internal)
359 LANGUAGE C IMMUTABLE STRICT;
362 -- Create the operator class for indexing
364 CREATE OPERATOR CLASS gist__int_ops
365 DEFAULT FOR TYPE _int4 USING gist AS
367 OPERATOR 6 = (anyarray, anyarray),
372 OPERATOR 20 @@ (_int4, query_int),
373 FUNCTION 1 g_int_consistent (internal, _int4, int, oid, internal),
374 FUNCTION 2 g_int_union (internal, internal),
375 FUNCTION 3 g_int_compress (internal),
376 FUNCTION 4 g_int_decompress (internal),
377 FUNCTION 5 g_int_penalty (internal, internal, internal),
378 FUNCTION 6 g_int_picksplit (internal, internal),
379 FUNCTION 7 g_int_same (_int4, _int4, internal);
382 ---------------------------------------------
384 ---------------------------------------------
385 -- define the GiST support methods
387 CREATE FUNCTION _intbig_in(cstring)
390 LANGUAGE C STRICT IMMUTABLE;
392 CREATE FUNCTION _intbig_out(intbig_gkey)
395 LANGUAGE C STRICT IMMUTABLE;
397 CREATE TYPE intbig_gkey (
403 CREATE FUNCTION g_intbig_consistent(internal,internal,int,oid,internal)
406 LANGUAGE C IMMUTABLE STRICT;
408 CREATE FUNCTION g_intbig_compress(internal)
411 LANGUAGE C IMMUTABLE STRICT;
413 CREATE FUNCTION g_intbig_decompress(internal)
416 LANGUAGE C IMMUTABLE STRICT;
418 CREATE FUNCTION g_intbig_penalty(internal,internal,internal)
421 LANGUAGE C IMMUTABLE STRICT;
423 CREATE FUNCTION g_intbig_picksplit(internal, internal)
426 LANGUAGE C IMMUTABLE STRICT;
428 CREATE FUNCTION g_intbig_union(internal, internal)
431 LANGUAGE C IMMUTABLE STRICT;
433 CREATE FUNCTION g_intbig_same(internal, internal, internal)
436 LANGUAGE C IMMUTABLE STRICT;
438 -- register the opclass for indexing (not as default)
440 CREATE OPERATOR CLASS gist__intbig_ops
441 FOR TYPE _int4 USING gist
444 OPERATOR 6 = (anyarray, anyarray),
449 OPERATOR 20 @@ (_int4, query_int),
450 FUNCTION 1 g_intbig_consistent (internal, internal, int, oid, internal),
451 FUNCTION 2 g_intbig_union (internal, internal),
452 FUNCTION 3 g_intbig_compress (internal),
453 FUNCTION 4 g_intbig_decompress (internal),
454 FUNCTION 5 g_intbig_penalty (internal, internal, internal),
455 FUNCTION 6 g_intbig_picksplit (internal, internal),
456 FUNCTION 7 g_intbig_same (internal, internal, internal),
461 CREATE FUNCTION ginint4_queryextract(internal, internal, int2, internal, internal, internal, internal)
464 LANGUAGE C IMMUTABLE STRICT;
466 CREATE FUNCTION ginint4_consistent(internal, int2, internal, int4, internal, internal, internal, internal)
469 LANGUAGE C IMMUTABLE STRICT;
471 CREATE OPERATOR CLASS gin__int_ops
472 FOR TYPE _int4 USING gin
475 OPERATOR 6 = (anyarray, anyarray),
480 OPERATOR 20 @@ (_int4, query_int),
481 FUNCTION 1 btint4cmp (int4, int4),
482 FUNCTION 2 ginarrayextract (anyarray, internal, internal),
483 FUNCTION 3 ginint4_queryextract (internal, internal, int2, internal, internal, internal, internal),
484 FUNCTION 4 ginint4_consistent (internal, int2, internal, int4, internal, internal, internal, internal),