Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
ltree--1.1.sql873 linesDownload Raw Back to extension
1/* contrib/ltree/ltree--1.1.sql */2 3-- complain if script is sourced in psql, rather than via CREATE EXTENSION4\echo Use "CREATE EXTENSION ltree" to load this file. \quit5 6CREATE FUNCTION ltree_in(cstring)7RETURNS ltree8AS 'MODULE_PATHNAME'9LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;10 11CREATE FUNCTION ltree_out(ltree)12RETURNS cstring13AS 'MODULE_PATHNAME'14LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;15 16CREATE TYPE ltree (17	INTERNALLENGTH = -1,18	INPUT = ltree_in,19	OUTPUT = ltree_out,20	STORAGE = extended21);22 23 24--Compare function for ltree25CREATE FUNCTION ltree_cmp(ltree,ltree)26RETURNS int427AS 'MODULE_PATHNAME'28LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;29 30CREATE FUNCTION ltree_lt(ltree,ltree)31RETURNS bool32AS 'MODULE_PATHNAME'33LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;34 35CREATE FUNCTION ltree_le(ltree,ltree)36RETURNS bool37AS 'MODULE_PATHNAME'38LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;39 40CREATE FUNCTION ltree_eq(ltree,ltree)41RETURNS bool42AS 'MODULE_PATHNAME'43LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;44 45CREATE FUNCTION ltree_ge(ltree,ltree)46RETURNS bool47AS 'MODULE_PATHNAME'48LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;49 50CREATE FUNCTION ltree_gt(ltree,ltree)51RETURNS bool52AS 'MODULE_PATHNAME'53LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;54 55CREATE FUNCTION ltree_ne(ltree,ltree)56RETURNS bool57AS 'MODULE_PATHNAME'58LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;59 60 61CREATE OPERATOR < (62        LEFTARG = ltree,63	RIGHTARG = ltree,64	PROCEDURE = ltree_lt,65        COMMUTATOR = '>',66	NEGATOR = '>=',67        RESTRICT = contsel,68	JOIN = contjoinsel69);70 71CREATE OPERATOR <= (72        LEFTARG = ltree,73	RIGHTARG = ltree,74	PROCEDURE = ltree_le,75        COMMUTATOR = '>=',76	NEGATOR = '>',77        RESTRICT = contsel,78	JOIN = contjoinsel79);80 81CREATE OPERATOR >= (82        LEFTARG = ltree,83	RIGHTARG = ltree,84	PROCEDURE = ltree_ge,85        COMMUTATOR = '<=',86	NEGATOR = '<',87        RESTRICT = contsel,88	JOIN = contjoinsel89);90 91CREATE OPERATOR > (92        LEFTARG = ltree,93	RIGHTARG = ltree,94	PROCEDURE = ltree_gt,95        COMMUTATOR = '<',96	NEGATOR = '<=',97        RESTRICT = contsel,98	JOIN = contjoinsel99);100 101CREATE OPERATOR = (102        LEFTARG = ltree,103	RIGHTARG = ltree,104	PROCEDURE = ltree_eq,105        COMMUTATOR = '=',106	NEGATOR = '<>',107        RESTRICT = eqsel,108	JOIN = eqjoinsel,109        SORT1 = '<',110	SORT2 = '<'111);112 113CREATE OPERATOR <> (114        LEFTARG = ltree,115	RIGHTARG = ltree,116	PROCEDURE = ltree_ne,117        COMMUTATOR = '<>',118	NEGATOR = '=',119        RESTRICT = neqsel,120	JOIN = neqjoinsel121);122 123--util functions124 125CREATE FUNCTION subltree(ltree,int4,int4)126RETURNS ltree127AS 'MODULE_PATHNAME'128LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;129 130CREATE FUNCTION subpath(ltree,int4,int4)131RETURNS ltree132AS 'MODULE_PATHNAME'133LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;134 135CREATE FUNCTION subpath(ltree,int4)136RETURNS ltree137AS 'MODULE_PATHNAME'138LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;139 140CREATE FUNCTION index(ltree,ltree)141RETURNS int4142AS 'MODULE_PATHNAME', 'ltree_index'143LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;144 145CREATE FUNCTION index(ltree,ltree,int4)146RETURNS int4147AS 'MODULE_PATHNAME', 'ltree_index'148LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;149 150CREATE FUNCTION nlevel(ltree)151RETURNS int4152AS 'MODULE_PATHNAME'153LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;154 155CREATE FUNCTION ltree2text(ltree)156RETURNS text157AS 'MODULE_PATHNAME'158LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;159 160CREATE FUNCTION text2ltree(text)161RETURNS ltree162AS 'MODULE_PATHNAME'163LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;164 165CREATE FUNCTION lca(_ltree)166RETURNS ltree167AS 'MODULE_PATHNAME','_lca'168LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;169 170CREATE FUNCTION lca(ltree,ltree)171RETURNS ltree172AS 'MODULE_PATHNAME'173LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;174 175CREATE FUNCTION lca(ltree,ltree,ltree)176RETURNS ltree177AS 'MODULE_PATHNAME'178LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;179 180CREATE FUNCTION lca(ltree,ltree,ltree,ltree)181RETURNS ltree182AS 'MODULE_PATHNAME'183LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;184 185CREATE FUNCTION lca(ltree,ltree,ltree,ltree,ltree)186RETURNS ltree187AS 'MODULE_PATHNAME'188LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;189 190CREATE FUNCTION lca(ltree,ltree,ltree,ltree,ltree,ltree)191RETURNS ltree192AS 'MODULE_PATHNAME'193LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;194 195CREATE FUNCTION lca(ltree,ltree,ltree,ltree,ltree,ltree,ltree)196RETURNS ltree197AS 'MODULE_PATHNAME'198LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;199 200CREATE FUNCTION lca(ltree,ltree,ltree,ltree,ltree,ltree,ltree,ltree)201RETURNS ltree202AS 'MODULE_PATHNAME'203LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;204 205CREATE FUNCTION ltree_isparent(ltree,ltree)206RETURNS bool207AS 'MODULE_PATHNAME'208LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;209 210CREATE FUNCTION ltree_risparent(ltree,ltree)211RETURNS bool212AS 'MODULE_PATHNAME'213LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;214 215CREATE FUNCTION ltree_addltree(ltree,ltree)216RETURNS ltree217AS 'MODULE_PATHNAME'218LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;219 220CREATE FUNCTION ltree_addtext(ltree,text)221RETURNS ltree222AS 'MODULE_PATHNAME'223LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;224 225CREATE FUNCTION ltree_textadd(text,ltree)226RETURNS ltree227AS 'MODULE_PATHNAME'228LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;229 230CREATE FUNCTION ltreeparentsel(internal, oid, internal, integer)231RETURNS float8232AS 'MODULE_PATHNAME'233LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;234 235CREATE OPERATOR @> (236        LEFTARG = ltree,237	RIGHTARG = ltree,238	PROCEDURE = ltree_isparent,239        COMMUTATOR = '<@',240        RESTRICT = ltreeparentsel,241	JOIN = contjoinsel242);243 244CREATE OPERATOR ^@> (245        LEFTARG = ltree,246	RIGHTARG = ltree,247	PROCEDURE = ltree_isparent,248        COMMUTATOR = '^<@',249        RESTRICT = contsel,250	JOIN = contjoinsel251);252 253CREATE OPERATOR <@ (254        LEFTARG = ltree,255	RIGHTARG = ltree,256	PROCEDURE = ltree_risparent,257        COMMUTATOR = '@>',258        RESTRICT = ltreeparentsel,259	JOIN = contjoinsel260);261 262CREATE OPERATOR ^<@ (263        LEFTARG = ltree,264	RIGHTARG = ltree,265	PROCEDURE = ltree_risparent,266        COMMUTATOR = '^@>',267        RESTRICT = contsel,268	JOIN = contjoinsel269);270 271CREATE OPERATOR || (272        LEFTARG = ltree,273	RIGHTARG = ltree,274	PROCEDURE = ltree_addltree275);276 277CREATE OPERATOR || (278        LEFTARG = ltree,279	RIGHTARG = text,280	PROCEDURE = ltree_addtext281);282 283CREATE OPERATOR || (284        LEFTARG = text,285	RIGHTARG = ltree,286	PROCEDURE = ltree_textadd287);288 289 290-- B-tree support291 292CREATE OPERATOR CLASS ltree_ops293    DEFAULT FOR TYPE ltree USING btree AS294        OPERATOR        1       < ,295        OPERATOR        2       <= ,296        OPERATOR        3       = ,297        OPERATOR        4       >= ,298        OPERATOR        5       > ,299        FUNCTION        1       ltree_cmp(ltree, ltree);300 301 302--lquery type303CREATE FUNCTION lquery_in(cstring)304RETURNS lquery305AS 'MODULE_PATHNAME'306LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;307 308CREATE FUNCTION lquery_out(lquery)309RETURNS cstring310AS 'MODULE_PATHNAME'311LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;312 313CREATE TYPE lquery (314	INTERNALLENGTH = -1,315	INPUT = lquery_in,316	OUTPUT = lquery_out,317	STORAGE = extended318);319 320CREATE FUNCTION ltq_regex(ltree,lquery)321RETURNS bool322AS 'MODULE_PATHNAME'323LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;324 325CREATE FUNCTION ltq_rregex(lquery,ltree)326RETURNS bool327AS 'MODULE_PATHNAME'328LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;329 330CREATE OPERATOR ~ (331        LEFTARG = ltree,332	RIGHTARG = lquery,333	PROCEDURE = ltq_regex,334	COMMUTATOR = '~',335	RESTRICT = contsel,336	JOIN = contjoinsel337);338 339CREATE OPERATOR ~ (340        LEFTARG = lquery,341	RIGHTARG = ltree,342	PROCEDURE = ltq_rregex,343	COMMUTATOR = '~',344	RESTRICT = contsel,345	JOIN = contjoinsel346);347 348--not-indexed349CREATE OPERATOR ^~ (350        LEFTARG = ltree,351	RIGHTARG = lquery,352	PROCEDURE = ltq_regex,353	COMMUTATOR = '^~',354	RESTRICT = contsel,355	JOIN = contjoinsel356);357 358CREATE OPERATOR ^~ (359        LEFTARG = lquery,360	RIGHTARG = ltree,361	PROCEDURE = ltq_rregex,362	COMMUTATOR = '^~',363	RESTRICT = contsel,364	JOIN = contjoinsel365);366 367CREATE FUNCTION lt_q_regex(ltree,_lquery)368RETURNS bool369AS 'MODULE_PATHNAME'370LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;371 372CREATE FUNCTION lt_q_rregex(_lquery,ltree)373RETURNS bool374AS 'MODULE_PATHNAME'375LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;376 377CREATE OPERATOR ? (378        LEFTARG = ltree,379	RIGHTARG = _lquery,380	PROCEDURE = lt_q_regex,381	COMMUTATOR = '?',382	RESTRICT = contsel,383	JOIN = contjoinsel384);385 386CREATE OPERATOR ? (387        LEFTARG = _lquery,388	RIGHTARG = ltree,389	PROCEDURE = lt_q_rregex,390	COMMUTATOR = '?',391	RESTRICT = contsel,392	JOIN = contjoinsel393);394 395--not-indexed396CREATE OPERATOR ^? (397        LEFTARG = ltree,398	RIGHTARG = _lquery,399	PROCEDURE = lt_q_regex,400	COMMUTATOR = '^?',401	RESTRICT = contsel,402	JOIN = contjoinsel403);404 405CREATE OPERATOR ^? (406        LEFTARG = _lquery,407	RIGHTARG = ltree,408	PROCEDURE = lt_q_rregex,409	COMMUTATOR = '^?',410	RESTRICT = contsel,411	JOIN = contjoinsel412);413 414CREATE FUNCTION ltxtq_in(cstring)415RETURNS ltxtquery416AS 'MODULE_PATHNAME'417LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;418 419CREATE FUNCTION ltxtq_out(ltxtquery)420RETURNS cstring421AS 'MODULE_PATHNAME'422LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;423 424CREATE TYPE ltxtquery (425	INTERNALLENGTH = -1,426	INPUT = ltxtq_in,427	OUTPUT = ltxtq_out,428	STORAGE = extended429);430 431-- operations WITH ltxtquery432 433CREATE FUNCTION ltxtq_exec(ltree, ltxtquery)434RETURNS bool435AS 'MODULE_PATHNAME'436LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;437 438CREATE FUNCTION ltxtq_rexec(ltxtquery, ltree)439RETURNS bool440AS 'MODULE_PATHNAME'441LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;442 443CREATE OPERATOR @ (444        LEFTARG = ltree,445	RIGHTARG = ltxtquery,446	PROCEDURE = ltxtq_exec,447	COMMUTATOR = '@',448	RESTRICT = contsel,449	JOIN = contjoinsel450);451 452CREATE OPERATOR @ (453        LEFTARG = ltxtquery,454	RIGHTARG = ltree,455	PROCEDURE = ltxtq_rexec,456	COMMUTATOR = '@',457	RESTRICT = contsel,458	JOIN = contjoinsel459);460 461--not-indexed462CREATE OPERATOR ^@ (463        LEFTARG = ltree,464	RIGHTARG = ltxtquery,465	PROCEDURE = ltxtq_exec,466	COMMUTATOR = '^@',467	RESTRICT = contsel,468	JOIN = contjoinsel469);470 471CREATE OPERATOR ^@ (472        LEFTARG = ltxtquery,473	RIGHTARG = ltree,474	PROCEDURE = ltxtq_rexec,475	COMMUTATOR = '^@',476	RESTRICT = contsel,477	JOIN = contjoinsel478);479 480--GiST support for ltree481CREATE FUNCTION ltree_gist_in(cstring)482RETURNS ltree_gist483AS 'MODULE_PATHNAME'484LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;485 486CREATE FUNCTION ltree_gist_out(ltree_gist)487RETURNS cstring488AS 'MODULE_PATHNAME'489LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;490 491CREATE TYPE ltree_gist (492	internallength = -1,493	input = ltree_gist_in,494	output = ltree_gist_out,495	storage = plain496);497 498 499CREATE FUNCTION ltree_consistent(internal,ltree,int2,oid,internal)500RETURNS bool as 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;501 502CREATE FUNCTION ltree_compress(internal)503RETURNS internal as 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;504 505CREATE FUNCTION ltree_decompress(internal)506RETURNS internal as 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;507 508CREATE FUNCTION ltree_penalty(internal,internal,internal)509RETURNS internal as 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;510 511CREATE FUNCTION ltree_picksplit(internal, internal)512RETURNS internal as 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;513 514CREATE FUNCTION ltree_union(internal, internal)515RETURNS ltree_gist as 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;516 517CREATE FUNCTION ltree_same(ltree_gist, ltree_gist, internal)518RETURNS internal as 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;519 520CREATE OPERATOR CLASS gist_ltree_ops521    DEFAULT FOR TYPE ltree USING gist AS522	OPERATOR	1	< ,523	OPERATOR	2	<= ,524	OPERATOR	3	= ,525	OPERATOR	4	>= ,526	OPERATOR	5	> ,527	OPERATOR	10	@> ,528	OPERATOR	11	<@ ,529	OPERATOR	12	~ (ltree, lquery) ,530	OPERATOR	13	~ (lquery, ltree) ,531	OPERATOR	14	@ (ltree, ltxtquery) ,532	OPERATOR	15	@ (ltxtquery, ltree) ,533	OPERATOR	16	? (ltree, _lquery) ,534	OPERATOR	17	? (_lquery, ltree) ,535	FUNCTION	1	ltree_consistent (internal, ltree, int2, oid, internal),536	FUNCTION	2	ltree_union (internal, internal),537	FUNCTION	3	ltree_compress (internal),538	FUNCTION	4	ltree_decompress (internal),539	FUNCTION	5	ltree_penalty (internal, internal, internal),540	FUNCTION	6	ltree_picksplit (internal, internal),541	FUNCTION	7	ltree_same (ltree_gist, ltree_gist, internal),542	STORAGE		ltree_gist;543 544 545-- arrays of ltree546 547CREATE FUNCTION _ltree_isparent(_ltree,ltree)548RETURNS bool549AS 'MODULE_PATHNAME'550LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;551 552CREATE FUNCTION _ltree_r_isparent(ltree,_ltree)553RETURNS bool554AS 'MODULE_PATHNAME'555LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;556 557CREATE FUNCTION _ltree_risparent(_ltree,ltree)558RETURNS bool559AS 'MODULE_PATHNAME'560LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;561 562CREATE FUNCTION _ltree_r_risparent(ltree,_ltree)563RETURNS bool564AS 'MODULE_PATHNAME'565LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;566 567CREATE FUNCTION _ltq_regex(_ltree,lquery)568RETURNS bool569AS 'MODULE_PATHNAME'570LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;571 572CREATE FUNCTION _ltq_rregex(lquery,_ltree)573RETURNS bool574AS 'MODULE_PATHNAME'575LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;576 577CREATE FUNCTION _lt_q_regex(_ltree,_lquery)578RETURNS bool579AS 'MODULE_PATHNAME'580LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;581 582CREATE FUNCTION _lt_q_rregex(_lquery,_ltree)583RETURNS bool584AS 'MODULE_PATHNAME'585LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;586 587CREATE FUNCTION _ltxtq_exec(_ltree, ltxtquery)588RETURNS bool589AS 'MODULE_PATHNAME'590LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;591 592CREATE FUNCTION _ltxtq_rexec(ltxtquery, _ltree)593RETURNS bool594AS 'MODULE_PATHNAME'595LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;596 597CREATE OPERATOR @> (598        LEFTARG = _ltree,599	RIGHTARG = ltree,600	PROCEDURE = _ltree_isparent,601        COMMUTATOR = '<@',602        RESTRICT = contsel,603	JOIN = contjoinsel604);605 606CREATE OPERATOR <@ (607        LEFTARG = ltree,608	RIGHTARG = _ltree,609	PROCEDURE = _ltree_r_isparent,610        COMMUTATOR = '@>',611        RESTRICT = contsel,612	JOIN = contjoinsel613);614 615CREATE OPERATOR <@ (616        LEFTARG = _ltree,617	RIGHTARG = ltree,618	PROCEDURE = _ltree_risparent,619        COMMUTATOR = '@>',620        RESTRICT = contsel,621	JOIN = contjoinsel622);623 624CREATE OPERATOR @> (625        LEFTARG = ltree,626	RIGHTARG = _ltree,627	PROCEDURE = _ltree_r_risparent,628        COMMUTATOR = '<@',629        RESTRICT = contsel,630	JOIN = contjoinsel631);632 633CREATE OPERATOR ~ (634        LEFTARG = _ltree,635	RIGHTARG = lquery,636	PROCEDURE = _ltq_regex,637        COMMUTATOR = '~',638        RESTRICT = contsel,639	JOIN = contjoinsel640);641 642CREATE OPERATOR ~ (643        LEFTARG = lquery,644	RIGHTARG = _ltree,645	PROCEDURE = _ltq_rregex,646        COMMUTATOR = '~',647        RESTRICT = contsel,648	JOIN = contjoinsel649);650 651CREATE OPERATOR ? (652        LEFTARG = _ltree,653	RIGHTARG = _lquery,654	PROCEDURE = _lt_q_regex,655        COMMUTATOR = '?',656        RESTRICT = contsel,657	JOIN = contjoinsel658);659 660CREATE OPERATOR ? (661        LEFTARG = _lquery,662	RIGHTARG = _ltree,663	PROCEDURE = _lt_q_rregex,664        COMMUTATOR = '?',665        RESTRICT = contsel,666	JOIN = contjoinsel667);668 669CREATE OPERATOR @ (670        LEFTARG = _ltree,671	RIGHTARG = ltxtquery,672	PROCEDURE = _ltxtq_exec,673        COMMUTATOR = '@',674        RESTRICT = contsel,675	JOIN = contjoinsel676);677 678CREATE OPERATOR @ (679        LEFTARG = ltxtquery,680	RIGHTARG = _ltree,681	PROCEDURE = _ltxtq_rexec,682        COMMUTATOR = '@',683        RESTRICT = contsel,684	JOIN = contjoinsel685);686 687 688--not indexed689CREATE OPERATOR ^@> (690        LEFTARG = _ltree,691	RIGHTARG = ltree,692	PROCEDURE = _ltree_isparent,693        COMMUTATOR = '^<@',694        RESTRICT = contsel,695	JOIN = contjoinsel696);697 698CREATE OPERATOR ^<@ (699        LEFTARG = ltree,700	RIGHTARG = _ltree,701	PROCEDURE = _ltree_r_isparent,702        COMMUTATOR = '^@>',703        RESTRICT = contsel,704	JOIN = contjoinsel705);706 707CREATE OPERATOR ^<@ (708        LEFTARG = _ltree,709	RIGHTARG = ltree,710	PROCEDURE = _ltree_risparent,711        COMMUTATOR = '^@>',712        RESTRICT = contsel,713	JOIN = contjoinsel714);715 716CREATE OPERATOR ^@> (717        LEFTARG = ltree,718	RIGHTARG = _ltree,719	PROCEDURE = _ltree_r_risparent,720        COMMUTATOR = '^<@',721        RESTRICT = contsel,722	JOIN = contjoinsel723);724 725CREATE OPERATOR ^~ (726        LEFTARG = _ltree,727	RIGHTARG = lquery,728	PROCEDURE = _ltq_regex,729        COMMUTATOR = '^~',730        RESTRICT = contsel,731	JOIN = contjoinsel732);733 734CREATE OPERATOR ^~ (735        LEFTARG = lquery,736	RIGHTARG = _ltree,737	PROCEDURE = _ltq_rregex,738        COMMUTATOR = '^~',739        RESTRICT = contsel,740	JOIN = contjoinsel741);742 743CREATE OPERATOR ^? (744        LEFTARG = _ltree,745	RIGHTARG = _lquery,746	PROCEDURE = _lt_q_regex,747        COMMUTATOR = '^?',748        RESTRICT = contsel,749	JOIN = contjoinsel750);751 752CREATE OPERATOR ^? (753        LEFTARG = _lquery,754	RIGHTARG = _ltree,755	PROCEDURE = _lt_q_rregex,756        COMMUTATOR = '^?',757        RESTRICT = contsel,758	JOIN = contjoinsel759);760 761CREATE OPERATOR ^@ (762        LEFTARG = _ltree,763	RIGHTARG = ltxtquery,764	PROCEDURE = _ltxtq_exec,765        COMMUTATOR = '^@',766        RESTRICT = contsel,767	JOIN = contjoinsel768);769 770CREATE OPERATOR ^@ (771        LEFTARG = ltxtquery,772	RIGHTARG = _ltree,773	PROCEDURE = _ltxtq_rexec,774        COMMUTATOR = '^@',775        RESTRICT = contsel,776	JOIN = contjoinsel777);778 779--extractors780CREATE FUNCTION _ltree_extract_isparent(_ltree,ltree)781RETURNS ltree782AS 'MODULE_PATHNAME'783LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;784 785CREATE OPERATOR ?@> (786        LEFTARG = _ltree,787	RIGHTARG = ltree,788	PROCEDURE = _ltree_extract_isparent789);790 791CREATE FUNCTION _ltree_extract_risparent(_ltree,ltree)792RETURNS ltree793AS 'MODULE_PATHNAME'794LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;795 796CREATE OPERATOR ?<@ (797        LEFTARG = _ltree,798	RIGHTARG = ltree,799	PROCEDURE = _ltree_extract_risparent800);801 802CREATE FUNCTION _ltq_extract_regex(_ltree,lquery)803RETURNS ltree804AS 'MODULE_PATHNAME'805LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;806 807CREATE OPERATOR ?~ (808        LEFTARG = _ltree,809	RIGHTARG = lquery,810	PROCEDURE = _ltq_extract_regex811);812 813CREATE FUNCTION _ltxtq_extract_exec(_ltree,ltxtquery)814RETURNS ltree815AS 'MODULE_PATHNAME'816LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;817 818CREATE OPERATOR ?@ (819        LEFTARG = _ltree,820	RIGHTARG = ltxtquery,821	PROCEDURE = _ltxtq_extract_exec822);823 824--GiST support for ltree[]825CREATE FUNCTION _ltree_consistent(internal,_ltree,int2,oid,internal)826RETURNS bool827AS 'MODULE_PATHNAME'828LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;829 830CREATE FUNCTION _ltree_compress(internal)831RETURNS internal832AS 'MODULE_PATHNAME'833LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;834 835CREATE FUNCTION _ltree_penalty(internal,internal,internal)836RETURNS internal837AS 'MODULE_PATHNAME'838LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;839 840CREATE FUNCTION _ltree_picksplit(internal, internal)841RETURNS internal842AS 'MODULE_PATHNAME'843LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;844 845CREATE FUNCTION _ltree_union(internal, internal)846RETURNS ltree_gist847AS 'MODULE_PATHNAME'848LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;849 850CREATE FUNCTION _ltree_same(ltree_gist, ltree_gist, internal)851RETURNS internal852AS 'MODULE_PATHNAME'853LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;854 855CREATE OPERATOR CLASS gist__ltree_ops856    DEFAULT FOR TYPE _ltree USING gist AS857	OPERATOR	10	<@ (_ltree, ltree),858	OPERATOR	11	@> (ltree, _ltree),859	OPERATOR	12	~ (_ltree, lquery),860	OPERATOR	13	~ (lquery, _ltree),861	OPERATOR	14	@ (_ltree, ltxtquery),862	OPERATOR	15	@ (ltxtquery, _ltree),863	OPERATOR	16	? (_ltree, _lquery),864	OPERATOR	17	? (_lquery, _ltree),865	FUNCTION	1	_ltree_consistent (internal, _ltree, int2, oid, internal),866	FUNCTION	2	_ltree_union (internal, internal),867	FUNCTION	3	_ltree_compress (internal),868	FUNCTION	4	ltree_decompress (internal),869	FUNCTION	5	_ltree_penalty (internal, internal, internal),870	FUNCTION	6	_ltree_picksplit (internal, internal),871	FUNCTION	7	_ltree_same (ltree_gist, ltree_gist, internal),872	STORAGE		ltree_gist;873 
codekingpro/portable-devtools · Team Ai