Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes15kdownloads
intarray--1.2.sql521 linesDownload Raw Back to extension
1/* contrib/intarray/intarray--1.2.sql */2 3-- complain if script is sourced in psql, rather than via CREATE EXTENSION4\echo Use "CREATE EXTENSION intarray" to load this file. \quit5 6--7-- Create the user-defined type for the 1-D integer arrays (_int4)8--9 10-- Query type11CREATE FUNCTION bqarr_in(cstring)12RETURNS query_int13AS 'MODULE_PATHNAME'14LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;15 16CREATE FUNCTION bqarr_out(query_int)17RETURNS cstring18AS 'MODULE_PATHNAME'19LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;20 21CREATE TYPE query_int (22	INTERNALLENGTH = -1,23	INPUT = bqarr_in,24	OUTPUT = bqarr_out25);26 27--only for debug28CREATE FUNCTION querytree(query_int)29RETURNS text30AS 'MODULE_PATHNAME'31LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;32 33 34CREATE FUNCTION boolop(_int4, query_int)35RETURNS bool36AS 'MODULE_PATHNAME'37LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;38 39COMMENT ON FUNCTION boolop(_int4, query_int) IS 'boolean operation with array';40 41CREATE FUNCTION rboolop(query_int, _int4)42RETURNS bool43AS 'MODULE_PATHNAME'44LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;45 46COMMENT ON FUNCTION rboolop(query_int, _int4) IS 'boolean operation with array';47 48CREATE FUNCTION _int_matchsel(internal, oid, internal, integer)49RETURNS float850AS 'MODULE_PATHNAME'51LANGUAGE C STRICT STABLE PARALLEL SAFE;52 53CREATE OPERATOR @@ (54	LEFTARG = _int4,55	RIGHTARG = query_int,56	PROCEDURE = boolop,57	COMMUTATOR = '~~',58	RESTRICT = _int_matchsel,59	JOIN = contjoinsel60);61 62CREATE OPERATOR ~~ (63	LEFTARG = query_int,64	RIGHTARG = _int4,65	PROCEDURE = rboolop,66	COMMUTATOR = '@@',67	RESTRICT = _int_matchsel,68	JOIN = contjoinsel69);70 71 72--73-- External C-functions for R-tree methods74--75 76-- Comparison methods77 78CREATE FUNCTION _int_contains(_int4, _int4)79RETURNS bool80AS 'MODULE_PATHNAME'81LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;82 83COMMENT ON FUNCTION _int_contains(_int4, _int4) IS 'contains';84 85CREATE FUNCTION _int_contained(_int4, _int4)86RETURNS bool87AS 'MODULE_PATHNAME'88LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;89 90COMMENT ON FUNCTION _int_contained(_int4, _int4) IS 'contained in';91 92CREATE FUNCTION _int_overlap(_int4, _int4)93RETURNS bool94AS 'MODULE_PATHNAME'95LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;96 97COMMENT ON FUNCTION _int_overlap(_int4, _int4) IS 'overlaps';98 99CREATE FUNCTION _int_same(_int4, _int4)100RETURNS bool101AS 'MODULE_PATHNAME'102LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;103 104COMMENT ON FUNCTION _int_same(_int4, _int4) IS 'same as';105 106CREATE FUNCTION _int_different(_int4, _int4)107RETURNS bool108AS 'MODULE_PATHNAME'109LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;110 111COMMENT ON FUNCTION _int_different(_int4, _int4) IS 'different';112 113-- support routines for indexing114 115CREATE FUNCTION _int_union(_int4, _int4)116RETURNS _int4117AS 'MODULE_PATHNAME'118LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;119 120CREATE FUNCTION _int_inter(_int4, _int4)121RETURNS _int4122AS 'MODULE_PATHNAME'123LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;124 125CREATE FUNCTION _int_overlap_sel(internal, oid, internal, integer)126RETURNS float8127AS 'MODULE_PATHNAME'128LANGUAGE C STRICT STABLE PARALLEL SAFE;129 130CREATE FUNCTION _int_contains_sel(internal, oid, internal, integer)131RETURNS float8132AS 'MODULE_PATHNAME'133LANGUAGE C STRICT STABLE PARALLEL SAFE;134 135CREATE FUNCTION _int_contained_sel(internal, oid, internal, integer)136RETURNS float8137AS 'MODULE_PATHNAME'138LANGUAGE C STRICT STABLE PARALLEL SAFE;139 140CREATE FUNCTION _int_overlap_joinsel(internal, oid, internal, smallint, internal)141RETURNS float8142AS 'MODULE_PATHNAME'143LANGUAGE C STRICT STABLE PARALLEL SAFE;144 145CREATE FUNCTION _int_contains_joinsel(internal, oid, internal, smallint, internal)146RETURNS float8147AS 'MODULE_PATHNAME'148LANGUAGE C STRICT STABLE PARALLEL SAFE;149 150CREATE FUNCTION _int_contained_joinsel(internal, oid, internal, smallint, internal)151RETURNS float8152AS 'MODULE_PATHNAME'153LANGUAGE C STRICT STABLE PARALLEL SAFE;154 155--156-- OPERATORS157--158 159CREATE OPERATOR && (160	LEFTARG = _int4,161	RIGHTARG = _int4,162	PROCEDURE = _int_overlap,163	COMMUTATOR = '&&',164	RESTRICT = _int_overlap_sel,165	JOIN = _int_overlap_joinsel166);167 168--CREATE OPERATOR = (169--	LEFTARG = _int4,170--	RIGHTARG = _int4,171--	PROCEDURE = _int_same,172--	COMMUTATOR = '=',173--	NEGATOR = '<>',174--	RESTRICT = eqsel,175--	JOIN = eqjoinsel,176--	SORT1 = '<',177--	SORT2 = '<'178--);179 180--CREATE OPERATOR <> (181--	LEFTARG = _int4,182--	RIGHTARG = _int4,183--	PROCEDURE = _int_different,184--	COMMUTATOR = '<>',185--	NEGATOR = '=',186--	RESTRICT = neqsel,187--	JOIN = neqjoinsel188--);189 190CREATE OPERATOR @> (191	LEFTARG = _int4,192	RIGHTARG = _int4,193	PROCEDURE = _int_contains,194	COMMUTATOR = '<@',195	RESTRICT = _int_contains_sel,196	JOIN = _int_contains_joinsel197);198 199CREATE OPERATOR <@ (200	LEFTARG = _int4,201	RIGHTARG = _int4,202	PROCEDURE = _int_contained,203	COMMUTATOR = '@>',204	RESTRICT = _int_contained_sel,205	JOIN = _int_contained_joinsel206);207 208-- obsolete:209CREATE OPERATOR @ (210	LEFTARG = _int4,211	RIGHTARG = _int4,212	PROCEDURE = _int_contains,213	COMMUTATOR = '~',214	RESTRICT = _int_contains_sel,215	JOIN = _int_contains_joinsel216);217 218CREATE OPERATOR ~ (219	LEFTARG = _int4,220	RIGHTARG = _int4,221	PROCEDURE = _int_contained,222	COMMUTATOR = '@',223	RESTRICT = _int_contained_sel,224	JOIN = _int_contained_joinsel225);226 227--------------228CREATE FUNCTION intset(int4)229RETURNS _int4230AS 'MODULE_PATHNAME'231LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;232 233CREATE FUNCTION icount(_int4)234RETURNS int4235AS 'MODULE_PATHNAME'236LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;237 238CREATE OPERATOR # (239	RIGHTARG = _int4,240	PROCEDURE = icount241);242 243CREATE FUNCTION sort(_int4, text)244RETURNS _int4245AS 'MODULE_PATHNAME'246LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;247 248CREATE FUNCTION sort(_int4)249RETURNS _int4250AS 'MODULE_PATHNAME'251LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;252 253CREATE FUNCTION sort_asc(_int4)254RETURNS _int4255AS 'MODULE_PATHNAME'256LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;257 258CREATE FUNCTION sort_desc(_int4)259RETURNS _int4260AS 'MODULE_PATHNAME'261LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;262 263CREATE FUNCTION uniq(_int4)264RETURNS _int4265AS 'MODULE_PATHNAME'266LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;267 268CREATE FUNCTION idx(_int4, int4)269RETURNS int4270AS 'MODULE_PATHNAME'271LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;272 273CREATE OPERATOR # (274	LEFTARG = _int4,275	RIGHTARG = int4,276	PROCEDURE = idx277);278 279CREATE FUNCTION subarray(_int4, int4, int4)280RETURNS _int4281AS 'MODULE_PATHNAME'282LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;283 284CREATE FUNCTION subarray(_int4, int4)285RETURNS _int4286AS 'MODULE_PATHNAME'287LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;288 289CREATE FUNCTION intarray_push_elem(_int4, int4)290RETURNS _int4291AS 'MODULE_PATHNAME'292LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;293 294CREATE OPERATOR + (295	LEFTARG = _int4,296	RIGHTARG = int4,297	PROCEDURE = intarray_push_elem298);299 300CREATE FUNCTION intarray_push_array(_int4, _int4)301RETURNS _int4302AS 'MODULE_PATHNAME'303LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;304 305CREATE OPERATOR + (306	LEFTARG = _int4,307	RIGHTARG = _int4,308	COMMUTATOR = +,309	PROCEDURE = intarray_push_array310);311 312CREATE FUNCTION intarray_del_elem(_int4, int4)313RETURNS _int4314AS 'MODULE_PATHNAME'315LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;316 317CREATE OPERATOR - (318	LEFTARG = _int4,319	RIGHTARG = int4,320	PROCEDURE = intarray_del_elem321);322 323CREATE FUNCTION intset_union_elem(_int4, int4)324RETURNS _int4325AS 'MODULE_PATHNAME'326LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;327 328CREATE OPERATOR | (329	LEFTARG = _int4,330	RIGHTARG = int4,331	PROCEDURE = intset_union_elem332);333 334CREATE OPERATOR | (335	LEFTARG = _int4,336	RIGHTARG = _int4,337	COMMUTATOR = |,338	PROCEDURE = _int_union339);340 341CREATE FUNCTION intset_subtract(_int4, _int4)342RETURNS _int4343AS 'MODULE_PATHNAME'344LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;345 346CREATE OPERATOR - (347	LEFTARG = _int4,348	RIGHTARG = _int4,349	PROCEDURE = intset_subtract350);351 352CREATE OPERATOR & (353	LEFTARG = _int4,354	RIGHTARG = _int4,355	COMMUTATOR = &,356	PROCEDURE = _int_inter357);358--------------359 360-- define the GiST support methods361CREATE FUNCTION g_int_consistent(internal,_int4,smallint,oid,internal)362RETURNS bool363AS 'MODULE_PATHNAME'364LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;365 366CREATE FUNCTION g_int_compress(internal)367RETURNS internal368AS 'MODULE_PATHNAME'369LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;370 371CREATE FUNCTION g_int_decompress(internal)372RETURNS internal373AS 'MODULE_PATHNAME'374LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;375 376CREATE FUNCTION g_int_penalty(internal,internal,internal)377RETURNS internal378AS 'MODULE_PATHNAME'379LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;380 381CREATE FUNCTION g_int_picksplit(internal, internal)382RETURNS internal383AS 'MODULE_PATHNAME'384LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;385 386CREATE FUNCTION g_int_union(internal, internal)387RETURNS _int4388AS 'MODULE_PATHNAME'389LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;390 391CREATE FUNCTION g_int_same(_int4, _int4, internal)392RETURNS internal393AS 'MODULE_PATHNAME'394LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;395 396 397-- Create the operator class for indexing398 399CREATE OPERATOR CLASS gist__int_ops400DEFAULT FOR TYPE _int4 USING gist AS401	OPERATOR	3	&&,402	OPERATOR	6	= (anyarray, anyarray),403	OPERATOR	7	@>,404	OPERATOR	8	<@,405	OPERATOR	13	@,406	OPERATOR	14	~,407	OPERATOR	20	@@ (_int4, query_int),408	FUNCTION	1	g_int_consistent (internal, _int4, smallint, oid, internal),409	FUNCTION	2	g_int_union (internal, internal),410	FUNCTION	3	g_int_compress (internal),411	FUNCTION	4	g_int_decompress (internal),412	FUNCTION	5	g_int_penalty (internal, internal, internal),413	FUNCTION	6	g_int_picksplit (internal, internal),414	FUNCTION	7	g_int_same (_int4, _int4, internal);415 416 417---------------------------------------------418-- intbig419---------------------------------------------420-- define the GiST support methods421 422CREATE FUNCTION _intbig_in(cstring)423RETURNS intbig_gkey424AS 'MODULE_PATHNAME'425LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;426 427CREATE FUNCTION _intbig_out(intbig_gkey)428RETURNS cstring429AS 'MODULE_PATHNAME'430LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;431 432CREATE TYPE intbig_gkey (433        INTERNALLENGTH = -1,434        INPUT = _intbig_in,435        OUTPUT = _intbig_out436);437 438CREATE FUNCTION g_intbig_consistent(internal,_int4,smallint,oid,internal)439RETURNS bool440AS 'MODULE_PATHNAME'441LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;442 443CREATE FUNCTION g_intbig_compress(internal)444RETURNS internal445AS 'MODULE_PATHNAME'446LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;447 448CREATE FUNCTION g_intbig_decompress(internal)449RETURNS internal450AS 'MODULE_PATHNAME'451LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;452 453CREATE FUNCTION g_intbig_penalty(internal,internal,internal)454RETURNS internal455AS 'MODULE_PATHNAME'456LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;457 458CREATE FUNCTION g_intbig_picksplit(internal, internal)459RETURNS internal460AS 'MODULE_PATHNAME'461LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;462 463CREATE FUNCTION g_intbig_union(internal, internal)464RETURNS intbig_gkey465AS 'MODULE_PATHNAME'466LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;467 468CREATE FUNCTION g_intbig_same(intbig_gkey, intbig_gkey, internal)469RETURNS internal470AS 'MODULE_PATHNAME'471LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;472 473-- register the opclass for indexing (not as default)474 475CREATE OPERATOR CLASS gist__intbig_ops476FOR TYPE _int4 USING gist477AS478	OPERATOR	3	&&,479	OPERATOR	6	= (anyarray, anyarray),480	OPERATOR	7	@>,481	OPERATOR	8	<@,482	OPERATOR	13	@,483	OPERATOR	14	~,484	OPERATOR	20	@@ (_int4, query_int),485	FUNCTION	1	g_intbig_consistent (internal, _int4, smallint, oid, internal),486	FUNCTION	2	g_intbig_union (internal, internal),487	FUNCTION	3	g_intbig_compress (internal),488	FUNCTION	4	g_intbig_decompress (internal),489	FUNCTION	5	g_intbig_penalty (internal, internal, internal),490	FUNCTION	6	g_intbig_picksplit (internal, internal),491	FUNCTION	7	g_intbig_same (intbig_gkey, intbig_gkey, internal),492	STORAGE		intbig_gkey;493 494--GIN495 496CREATE FUNCTION ginint4_queryextract(_int4, internal, int2, internal, internal, internal, internal)497RETURNS internal498AS 'MODULE_PATHNAME'499LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;500 501CREATE FUNCTION ginint4_consistent(internal, int2, _int4, int4, internal, internal, internal, internal)502RETURNS bool503AS 'MODULE_PATHNAME'504LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;505 506CREATE OPERATOR CLASS gin__int_ops507FOR TYPE _int4 USING gin508AS509	OPERATOR	3	&&,510	OPERATOR	6	= (anyarray, anyarray),511	OPERATOR	7	@>,512	OPERATOR	8	<@,513	OPERATOR	13	@,514	OPERATOR	14	~,515	OPERATOR	20	@@ (_int4, query_int),516	FUNCTION	1	btint4cmp (int4, int4),517	FUNCTION	2	ginarrayextract (anyarray, internal, internal),518	FUNCTION	3	ginint4_queryextract (_int4, internal, int2, internal, internal, internal, internal),519	FUNCTION	4	ginint4_consistent (internal, int2, _int4, int4, internal, internal, internal, internal),520	STORAGE		int4;521 
codekingpro/portable-devtools · Team Ai