1
-- Adjust this setting to control where the objects get created.
2
SET search_path = public;
4
CREATE FUNCTION ltree_in(cstring)
7
LANGUAGE 'C' WITH (isstrict);
9
CREATE FUNCTION ltree_out(ltree)
12
LANGUAGE 'C' WITH (isstrict);
22
--Compare function for ltree
23
CREATE FUNCTION ltree_cmp(ltree,ltree)
26
LANGUAGE 'C' WITH (isstrict,iscachable);
28
CREATE FUNCTION ltree_lt(ltree,ltree)
31
LANGUAGE 'C' WITH (isstrict,iscachable);
33
CREATE FUNCTION ltree_le(ltree,ltree)
36
LANGUAGE 'C' WITH (isstrict,iscachable);
38
CREATE FUNCTION ltree_eq(ltree,ltree)
41
LANGUAGE 'C' WITH (isstrict,iscachable);
43
CREATE FUNCTION ltree_ge(ltree,ltree)
46
LANGUAGE 'C' WITH (isstrict,iscachable);
48
CREATE FUNCTION ltree_gt(ltree,ltree)
51
LANGUAGE 'C' WITH (isstrict,iscachable);
53
CREATE FUNCTION ltree_ne(ltree,ltree)
56
LANGUAGE 'C' WITH (isstrict,iscachable);
102
PROCEDURE = ltree_eq,
114
PROCEDURE = ltree_ne,
123
CREATE FUNCTION subltree(ltree,int4,int4)
126
LANGUAGE 'C' WITH (isstrict,iscachable);
128
CREATE FUNCTION subpath(ltree,int4,int4)
131
LANGUAGE 'C' WITH (isstrict,iscachable);
133
CREATE FUNCTION subpath(ltree,int4)
136
LANGUAGE 'C' WITH (isstrict,iscachable);
138
CREATE FUNCTION index(ltree,ltree)
140
AS 'MODULE_PATHNAME', 'ltree_index'
141
LANGUAGE 'C' WITH (isstrict,iscachable);
143
CREATE FUNCTION index(ltree,ltree,int4)
145
AS 'MODULE_PATHNAME', 'ltree_index'
146
LANGUAGE 'C' WITH (isstrict,iscachable);
148
CREATE FUNCTION nlevel(ltree)
151
LANGUAGE 'C' WITH (isstrict,iscachable);
153
CREATE FUNCTION ltree2text(ltree)
156
LANGUAGE 'C' WITH (isstrict,iscachable);
158
CREATE FUNCTION text2ltree(text)
161
LANGUAGE 'C' WITH (isstrict,iscachable);
163
CREATE FUNCTION lca(_ltree)
165
AS 'MODULE_PATHNAME','_lca'
166
LANGUAGE 'C' WITH (isstrict,iscachable);
168
CREATE FUNCTION lca(ltree,ltree)
171
LANGUAGE 'C' WITH (isstrict,iscachable);
173
CREATE FUNCTION lca(ltree,ltree,ltree)
176
LANGUAGE 'C' WITH (isstrict,iscachable);
178
CREATE FUNCTION lca(ltree,ltree,ltree,ltree)
181
LANGUAGE 'C' WITH (isstrict,iscachable);
183
CREATE FUNCTION lca(ltree,ltree,ltree,ltree,ltree)
186
LANGUAGE 'C' WITH (isstrict,iscachable);
188
CREATE FUNCTION lca(ltree,ltree,ltree,ltree,ltree,ltree)
191
LANGUAGE 'C' WITH (isstrict,iscachable);
193
CREATE FUNCTION lca(ltree,ltree,ltree,ltree,ltree,ltree,ltree)
196
LANGUAGE 'C' WITH (isstrict,iscachable);
198
CREATE FUNCTION lca(ltree,ltree,ltree,ltree,ltree,ltree,ltree,ltree)
201
LANGUAGE 'C' WITH (isstrict,iscachable);
203
CREATE FUNCTION ltree_isparent(ltree,ltree)
206
LANGUAGE 'C' WITH (isstrict,iscachable);
208
CREATE FUNCTION ltree_risparent(ltree,ltree)
211
LANGUAGE 'C' WITH (isstrict,iscachable);
213
CREATE FUNCTION ltree_addltree(ltree,ltree)
216
LANGUAGE 'C' WITH (isstrict,iscachable);
218
CREATE FUNCTION ltree_addtext(ltree,text)
221
LANGUAGE 'C' WITH (isstrict,iscachable);
223
CREATE FUNCTION ltree_textadd(text,ltree)
226
LANGUAGE 'C' WITH (isstrict,iscachable);
231
PROCEDURE = ltree_isparent,
237
CREATE OPERATOR ^@> (
240
PROCEDURE = ltree_isparent,
249
PROCEDURE = ltree_risparent,
255
CREATE OPERATOR ^<@ (
258
PROCEDURE = ltree_risparent,
267
PROCEDURE = ltree_addltree
273
PROCEDURE = ltree_addtext
279
PROCEDURE = ltree_textadd
285
CREATE OPERATOR CLASS ltree_ops
286
DEFAULT FOR TYPE ltree USING btree AS
292
FUNCTION 1 ltree_cmp(ltree, ltree);
296
CREATE FUNCTION lquery_in(cstring)
299
LANGUAGE 'C' WITH (isstrict);
301
CREATE FUNCTION lquery_out(lquery)
304
LANGUAGE 'C' WITH (isstrict);
313
CREATE FUNCTION ltq_regex(ltree,lquery)
316
LANGUAGE 'C' WITH (isstrict,iscachable);
318
CREATE FUNCTION ltq_rregex(lquery,ltree)
321
LANGUAGE 'C' WITH (isstrict,iscachable);
326
PROCEDURE = ltq_regex,
335
PROCEDURE = ltq_rregex,
345
PROCEDURE = ltq_regex,
354
PROCEDURE = ltq_rregex,
360
CREATE FUNCTION lt_q_regex(ltree,_lquery)
363
LANGUAGE 'C' WITH (isstrict,iscachable);
365
CREATE FUNCTION lt_q_rregex(_lquery,ltree)
368
LANGUAGE 'C' WITH (isstrict,iscachable);
373
PROCEDURE = lt_q_regex,
382
PROCEDURE = lt_q_rregex,
392
PROCEDURE = lt_q_regex,
401
PROCEDURE = lt_q_rregex,
407
CREATE FUNCTION ltxtq_in(cstring)
410
LANGUAGE 'C' WITH (isstrict);
412
CREATE FUNCTION ltxtq_out(ltxtquery)
415
LANGUAGE 'C' WITH (isstrict);
417
CREATE TYPE ltxtquery (
424
-- operations WITH ltxtquery
426
CREATE FUNCTION ltxtq_exec(ltree, ltxtquery)
429
LANGUAGE 'C' WITH (isstrict, iscachable);
431
CREATE FUNCTION ltxtq_rexec(ltxtquery, ltree)
434
LANGUAGE 'C' WITH (isstrict, iscachable);
438
RIGHTARG = ltxtquery,
439
PROCEDURE = ltxtq_exec,
448
PROCEDURE = ltxtq_rexec,
457
RIGHTARG = ltxtquery,
458
PROCEDURE = ltxtq_exec,
467
PROCEDURE = ltxtq_rexec,
473
--GiST support for ltree
474
CREATE FUNCTION ltree_gist_in(cstring)
477
LANGUAGE 'C' WITH (isstrict);
479
CREATE FUNCTION ltree_gist_out(ltree_gist)
482
LANGUAGE 'C' WITH (isstrict);
484
CREATE TYPE ltree_gist (
486
input = ltree_gist_in,
487
output = ltree_gist_out,
492
CREATE FUNCTION ltree_consistent(internal,internal,int2)
493
RETURNS bool as 'MODULE_PATHNAME' language 'C';
494
CREATE FUNCTION ltree_compress(internal)
495
RETURNS internal as 'MODULE_PATHNAME' language 'C';
496
CREATE FUNCTION ltree_decompress(internal)
497
RETURNS internal as 'MODULE_PATHNAME' language 'C';
498
CREATE FUNCTION ltree_penalty(internal,internal,internal)
499
RETURNS internal as 'MODULE_PATHNAME' language 'C' with(isstrict);
500
CREATE FUNCTION ltree_picksplit(internal, internal)
501
RETURNS internal as 'MODULE_PATHNAME' language 'C';
502
CREATE FUNCTION ltree_union(internal, internal)
503
RETURNS int4 as 'MODULE_PATHNAME' language 'C';
504
CREATE FUNCTION ltree_same(internal, internal, internal)
505
RETURNS internal as 'MODULE_PATHNAME' language 'C';
507
CREATE OPERATOR CLASS gist_ltree_ops
508
DEFAULT FOR TYPE ltree USING gist AS
516
OPERATOR 12 ~ (ltree, lquery) ,
517
OPERATOR 13 ~ (lquery, ltree) ,
518
OPERATOR 14 @ (ltree, ltxtquery) ,
519
OPERATOR 15 @ (ltxtquery, ltree) ,
520
OPERATOR 16 ? (ltree, _lquery) ,
521
OPERATOR 17 ? (_lquery, ltree) ,
522
FUNCTION 1 ltree_consistent (internal, internal, int2),
523
FUNCTION 2 ltree_union (internal, internal),
524
FUNCTION 3 ltree_compress (internal),
525
FUNCTION 4 ltree_decompress (internal),
526
FUNCTION 5 ltree_penalty (internal, internal, internal),
527
FUNCTION 6 ltree_picksplit (internal, internal),
528
FUNCTION 7 ltree_same (internal, internal, internal),
534
CREATE FUNCTION _ltree_isparent(_ltree,ltree)
537
LANGUAGE 'C' WITH (isstrict,iscachable);
539
CREATE FUNCTION _ltree_r_isparent(ltree,_ltree)
542
LANGUAGE 'C' WITH (isstrict,iscachable);
544
CREATE FUNCTION _ltree_risparent(_ltree,ltree)
547
LANGUAGE 'C' WITH (isstrict,iscachable);
549
CREATE FUNCTION _ltree_r_risparent(ltree,_ltree)
552
LANGUAGE 'C' WITH (isstrict,iscachable);
554
CREATE FUNCTION _ltq_regex(_ltree,lquery)
557
LANGUAGE 'C' WITH (isstrict,iscachable);
559
CREATE FUNCTION _ltq_rregex(lquery,_ltree)
562
LANGUAGE 'C' WITH (isstrict,iscachable);
564
CREATE FUNCTION _lt_q_regex(_ltree,_lquery)
567
LANGUAGE 'C' WITH (isstrict,iscachable);
569
CREATE FUNCTION _lt_q_rregex(_lquery,_ltree)
572
LANGUAGE 'C' WITH (isstrict,iscachable);
574
CREATE FUNCTION _ltxtq_exec(_ltree, ltxtquery)
577
LANGUAGE 'C' WITH (isstrict, iscachable);
579
CREATE FUNCTION _ltxtq_rexec(ltxtquery, _ltree)
582
LANGUAGE 'C' WITH (isstrict, iscachable);
587
PROCEDURE = _ltree_isparent,
596
PROCEDURE = _ltree_r_isparent,
605
PROCEDURE = _ltree_risparent,
614
PROCEDURE = _ltree_r_risparent,
623
PROCEDURE = _ltq_regex,
632
PROCEDURE = _ltq_rregex,
641
PROCEDURE = _lt_q_regex,
650
PROCEDURE = _lt_q_rregex,
658
RIGHTARG = ltxtquery,
659
PROCEDURE = _ltxtq_exec,
668
PROCEDURE = _ltxtq_rexec,
676
CREATE OPERATOR ^@> (
679
PROCEDURE = _ltree_isparent,
685
CREATE OPERATOR ^<@ (
688
PROCEDURE = _ltree_r_isparent,
694
CREATE OPERATOR ^<@ (
697
PROCEDURE = _ltree_risparent,
703
CREATE OPERATOR ^@> (
706
PROCEDURE = _ltree_r_risparent,
715
PROCEDURE = _ltq_regex,
724
PROCEDURE = _ltq_rregex,
733
PROCEDURE = _lt_q_regex,
742
PROCEDURE = _lt_q_rregex,
750
RIGHTARG = ltxtquery,
751
PROCEDURE = _ltxtq_exec,
760
PROCEDURE = _ltxtq_rexec,
767
CREATE FUNCTION _ltree_extract_isparent(_ltree,ltree)
770
LANGUAGE 'C' WITH (isstrict,iscachable);
772
CREATE OPERATOR ?@> (
775
PROCEDURE = _ltree_extract_isparent
778
CREATE FUNCTION _ltree_extract_risparent(_ltree,ltree)
781
LANGUAGE 'C' WITH (isstrict,iscachable);
783
CREATE OPERATOR ?<@ (
786
PROCEDURE = _ltree_extract_risparent
789
CREATE FUNCTION _ltq_extract_regex(_ltree,lquery)
792
LANGUAGE 'C' WITH (isstrict,iscachable);
797
PROCEDURE = _ltq_extract_regex
800
CREATE FUNCTION _ltxtq_extract_exec(_ltree,ltxtquery)
803
LANGUAGE 'C' WITH (isstrict,iscachable);
807
RIGHTARG = ltxtquery,
808
PROCEDURE = _ltxtq_extract_exec
811
--GiST support for ltree[]
812
CREATE FUNCTION _ltree_consistent(internal,internal,int2)
816
CREATE FUNCTION _ltree_compress(internal)
820
CREATE FUNCTION _ltree_penalty(internal,internal,internal)
823
LANGUAGE 'C' WITH(isstrict);
824
CREATE FUNCTION _ltree_picksplit(internal, internal)
828
CREATE FUNCTION _ltree_union(internal, internal)
832
CREATE FUNCTION _ltree_same(internal, internal, internal)
837
CREATE OPERATOR CLASS gist__ltree_ops
838
DEFAULT FOR TYPE _ltree USING gist AS
839
OPERATOR 10 <@ (_ltree, ltree) RECHECK ,
840
OPERATOR 11 @> (ltree, _ltree) RECHECK ,
841
OPERATOR 12 ~ (_ltree, lquery) RECHECK ,
842
OPERATOR 13 ~ (lquery, _ltree) RECHECK ,
843
OPERATOR 14 @ (_ltree, ltxtquery) RECHECK ,
844
OPERATOR 15 @ (ltxtquery, _ltree) RECHECK ,
845
OPERATOR 16 ? (_ltree, _lquery) RECHECK ,
846
OPERATOR 17 ? (_lquery, _ltree) RECHECK ,
847
FUNCTION 1 _ltree_consistent (internal, internal, int2),
848
FUNCTION 2 _ltree_union (internal, internal),
849
FUNCTION 3 _ltree_compress (internal),
850
FUNCTION 4 ltree_decompress (internal),
851
FUNCTION 5 _ltree_penalty (internal, internal, internal),
852
FUNCTION 6 _ltree_picksplit (internal, internal),
853
FUNCTION 7 _ltree_same (internal, internal, internal),