seg.sql

来自「PostgreSQL 8.2中增加了很多企业用户所需要的功能和性能上的提高,其开」· SQL 代码 · 共 390 行

SQL
390
字号
-- Create the user-defined type for 1-D floating point intervals (seg)-- -- Adjust this setting to control where the objects get created.SET search_path = public;CREATE FUNCTION seg_in(cstring)RETURNS segAS '$libdir/seg'LANGUAGE C STRICT IMMUTABLE;CREATE FUNCTION seg_out(seg)RETURNS cstringAS '$libdir/seg'LANGUAGE C STRICT IMMUTABLE;CREATE TYPE seg (	INTERNALLENGTH = 12,	INPUT = seg_in,	OUTPUT = seg_out);COMMENT ON TYPE seg IS'floating point interval ''FLOAT .. FLOAT'', ''.. FLOAT'', ''FLOAT ..'' or ''FLOAT''';---- External C-functions for R-tree methods---- Left/Right methodsCREATE FUNCTION seg_over_left(seg, seg)RETURNS boolAS '$libdir/seg'LANGUAGE C STRICT IMMUTABLE;COMMENT ON FUNCTION seg_over_left(seg, seg) IS'overlaps or is left of';CREATE FUNCTION seg_over_right(seg, seg)RETURNS boolAS '$libdir/seg'LANGUAGE C STRICT IMMUTABLE;COMMENT ON FUNCTION seg_over_right(seg, seg) IS'overlaps or is right of';CREATE FUNCTION seg_left(seg, seg)RETURNS boolAS '$libdir/seg'LANGUAGE C STRICT IMMUTABLE;COMMENT ON FUNCTION seg_left(seg, seg) IS'is left of';CREATE FUNCTION seg_right(seg, seg)RETURNS boolAS '$libdir/seg'LANGUAGE C STRICT IMMUTABLE;COMMENT ON FUNCTION seg_right(seg, seg) IS'is right of';-- Scalar comparison methodsCREATE FUNCTION seg_lt(seg, seg)RETURNS boolAS '$libdir/seg'LANGUAGE C STRICT IMMUTABLE;COMMENT ON FUNCTION seg_lt(seg, seg) IS'less than';CREATE FUNCTION seg_le(seg, seg)RETURNS boolAS '$libdir/seg'LANGUAGE C STRICT IMMUTABLE;COMMENT ON FUNCTION seg_le(seg, seg) IS'less than or equal';CREATE FUNCTION seg_gt(seg, seg)RETURNS boolAS '$libdir/seg'LANGUAGE C STRICT IMMUTABLE;COMMENT ON FUNCTION seg_gt(seg, seg) IS'greater than';CREATE FUNCTION seg_ge(seg, seg)RETURNS boolAS '$libdir/seg'LANGUAGE C STRICT IMMUTABLE;COMMENT ON FUNCTION seg_ge(seg, seg) IS'greater than or equal';CREATE FUNCTION seg_contains(seg, seg)RETURNS boolAS '$libdir/seg'LANGUAGE C STRICT IMMUTABLE;COMMENT ON FUNCTION seg_contains(seg, seg) IS'contains';CREATE FUNCTION seg_contained(seg, seg)RETURNS boolAS '$libdir/seg'LANGUAGE C STRICT IMMUTABLE;COMMENT ON FUNCTION seg_contained(seg, seg) IS'contained in';CREATE FUNCTION seg_overlap(seg, seg)RETURNS boolAS '$libdir/seg'LANGUAGE C STRICT IMMUTABLE;COMMENT ON FUNCTION seg_overlap(seg, seg) IS'overlaps';CREATE FUNCTION seg_same(seg, seg)RETURNS boolAS '$libdir/seg'LANGUAGE C STRICT IMMUTABLE;COMMENT ON FUNCTION seg_same(seg, seg) IS'same as';CREATE FUNCTION seg_different(seg, seg)RETURNS boolAS '$libdir/seg'LANGUAGE C STRICT IMMUTABLE;COMMENT ON FUNCTION seg_different(seg, seg) IS'different';-- support routines for indexingCREATE OR REPLACE FUNCTION seg_cmp(seg, seg)RETURNS int4AS '$libdir/seg'LANGUAGE C STRICT IMMUTABLE;COMMENT ON FUNCTION seg_cmp(seg, seg) IS 'btree comparison function';CREATE FUNCTION seg_union(seg, seg)RETURNS segAS '$libdir/seg'LANGUAGE C STRICT IMMUTABLE;CREATE FUNCTION seg_inter(seg, seg)RETURNS segAS '$libdir/seg'LANGUAGE C STRICT IMMUTABLE;CREATE FUNCTION seg_size(seg)RETURNS float4AS '$libdir/seg'LANGUAGE C STRICT IMMUTABLE;-- miscellaneousCREATE FUNCTION seg_upper(seg)RETURNS float4AS '$libdir/seg'LANGUAGE C STRICT IMMUTABLE;CREATE FUNCTION seg_lower(seg)RETURNS float4AS '$libdir/seg'LANGUAGE C STRICT IMMUTABLE;---- OPERATORS--CREATE OPERATOR < (	LEFTARG = seg,	RIGHTARG = seg,	PROCEDURE = seg_lt,	COMMUTATOR = '>',	NEGATOR = '>=',	RESTRICT = scalarltsel,	JOIN = scalarltjoinsel);CREATE OPERATOR <= (	LEFTARG = seg,	RIGHTARG = seg,	PROCEDURE = seg_le,	COMMUTATOR = '>=',	NEGATOR = '>',	RESTRICT = scalarltsel,	JOIN = scalarltjoinsel);CREATE OPERATOR > (	LEFTARG = seg,	RIGHTARG = seg,	PROCEDURE = seg_gt,	COMMUTATOR = '<',	NEGATOR = '<=',	RESTRICT = scalargtsel,	JOIN = scalargtjoinsel);CREATE OPERATOR >= (	LEFTARG = seg,	RIGHTARG = seg,	PROCEDURE = seg_ge,	COMMUTATOR = '<=',	NEGATOR = '<',	RESTRICT = scalargtsel,	JOIN = scalargtjoinsel);CREATE OPERATOR << (	LEFTARG = seg,	RIGHTARG = seg,	PROCEDURE = seg_left,	COMMUTATOR = '>>',	RESTRICT = positionsel,	JOIN = positionjoinsel);CREATE OPERATOR &< (	LEFTARG = seg,	RIGHTARG = seg,	PROCEDURE = seg_over_left,	RESTRICT = positionsel,	JOIN = positionjoinsel);CREATE OPERATOR && (	LEFTARG = seg,	RIGHTARG = seg,	PROCEDURE = seg_overlap,	COMMUTATOR = '&&',	RESTRICT = areasel,	JOIN = areajoinsel);CREATE OPERATOR &> (	LEFTARG = seg,	RIGHTARG = seg,	PROCEDURE = seg_over_right,	RESTRICT = positionsel,	JOIN = positionjoinsel);CREATE OPERATOR >> (	LEFTARG = seg,	RIGHTARG = seg,	PROCEDURE = seg_right,	COMMUTATOR = '<<',	RESTRICT = positionsel,	JOIN = positionjoinsel);CREATE OPERATOR = (	LEFTARG = seg,	RIGHTARG = seg,	PROCEDURE = seg_same,	COMMUTATOR = '=',	NEGATOR = '<>',	RESTRICT = eqsel,	JOIN = eqjoinsel,	MERGES);CREATE OPERATOR <> (	LEFTARG = seg,	RIGHTARG = seg,	PROCEDURE = seg_different,	COMMUTATOR = '<>',	NEGATOR = '=',	RESTRICT = neqsel,	JOIN = neqjoinsel);CREATE OPERATOR @> (	LEFTARG = seg,	RIGHTARG = seg,	PROCEDURE = seg_contains,	COMMUTATOR = '<@',	RESTRICT = contsel,	JOIN = contjoinsel);CREATE OPERATOR <@ (	LEFTARG = seg,	RIGHTARG = seg,	PROCEDURE = seg_contained,	COMMUTATOR = '@>',	RESTRICT = contsel,	JOIN = contjoinsel);-- obsolete:CREATE OPERATOR @ (	LEFTARG = seg,	RIGHTARG = seg,	PROCEDURE = seg_contains,	COMMUTATOR = '~',	RESTRICT = contsel,	JOIN = contjoinsel);CREATE OPERATOR ~ (	LEFTARG = seg,	RIGHTARG = seg,	PROCEDURE = seg_contained,	COMMUTATOR = '@',	RESTRICT = contsel,	JOIN = contjoinsel);-- define the GiST support methodsCREATE FUNCTION gseg_consistent(internal,seg,int4)RETURNS boolAS '$libdir/seg'LANGUAGE C;CREATE FUNCTION gseg_compress(internal)RETURNS internal AS '$libdir/seg'LANGUAGE C;CREATE FUNCTION gseg_decompress(internal)RETURNS internal AS '$libdir/seg'LANGUAGE C;CREATE FUNCTION gseg_penalty(internal,internal,internal)RETURNS internalAS '$libdir/seg'LANGUAGE C STRICT;CREATE FUNCTION gseg_picksplit(internal, internal)RETURNS internalAS '$libdir/seg'LANGUAGE C;CREATE FUNCTION gseg_union(internal, internal)RETURNS seg AS '$libdir/seg'LANGUAGE C;CREATE FUNCTION gseg_same(seg, seg, internal)RETURNS internal AS '$libdir/seg'LANGUAGE C;-- Create the operator classes for indexingCREATE OPERATOR CLASS seg_ops    DEFAULT FOR TYPE seg USING btree AS        OPERATOR        1       < ,        OPERATOR        2       <= ,        OPERATOR        3       = ,        OPERATOR        4       >= ,        OPERATOR        5       > ,        FUNCTION        1       seg_cmp(seg, seg);CREATE OPERATOR CLASS gist_seg_opsDEFAULT FOR TYPE seg USING gist AS	OPERATOR	1	<< ,	OPERATOR	2	&< ,	OPERATOR	3	&& ,	OPERATOR	4	&> ,	OPERATOR	5	>> ,	OPERATOR	6	= ,	OPERATOR	7	@> ,	OPERATOR	8	<@ ,	OPERATOR	13	@ ,	OPERATOR	14	~ ,	FUNCTION	1	gseg_consistent (internal, seg, int4),	FUNCTION	2	gseg_union (internal, internal),	FUNCTION	3	gseg_compress (internal),	FUNCTION	4	gseg_decompress (internal),	FUNCTION	5	gseg_penalty (internal, internal, internal),	FUNCTION	6	gseg_picksplit (internal, internal),	FUNCTION	7	gseg_same (seg, seg, internal);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?