@ -3,10 +3,10 @@ psql:ltree.sql:9: NOTICE: ProcedureCreate: type ltree is not yet defined
psql:ltree.sql:14: NOTICE: Argument type "ltree" is only a shell
psql:ltree.sql:281: NOTICE: ProcedureCreate: type lquery is not yet defined
psql:ltree.sql:286: NOTICE: Argument type "lquery" is only a shell
psql:ltree.sql:345 : NOTICE: ProcedureCreate: type ltxtquery is not yet defined
psql:ltree.sql:350 : NOTICE: Argument type "ltxtquery" is only a shell
psql:ltree.sql:412 : NOTICE: ProcedureCreate: type ltree_gist is not yet defined
psql:ltree.sql:417 : NOTICE: Argument type "ltree_gist" is only a shell
psql:ltree.sql:392 : NOTICE: ProcedureCreate: type ltxtquery is not yet defined
psql:ltree.sql:397 : NOTICE: Argument type "ltxtquery" is only a shell
psql:ltree.sql:459 : NOTICE: ProcedureCreate: type ltree_gist is not yet defined
psql:ltree.sql:464 : NOTICE: Argument type "ltree_gist" is only a shell
SELECT ''::ltree;
ltree
-------
@ -963,6 +963,36 @@ SELECT '{j.k.l.m, g.b.c.d.e}'::ltree[] ~ 'A*@|g.b.c.d.e';
t
(1 row)
SELECT 'a.b.c.d.e'::ltree ? '{A.b.c.d.e}';
?column?
----------
f
(1 row)
SELECT 'a.b.c.d.e'::ltree ? '{a.b.c.d.e}';
?column?
----------
t
(1 row)
SELECT 'a.b.c.d.e'::ltree ? '{A.b.c.d.e, a.*}';
?column?
----------
t
(1 row)
SELECT '{a.b.c.d.e,B.df}'::ltree[] ? '{A.b.c.d.e}';
?column?
----------
f
(1 row)
SELECT '{a.b.c.d.e,B.df}'::ltree[] ? '{A.b.c.d.e,*.df}';
?column?
----------
t
(1 row)
--exractors
SELECT ('{3456,1.2.3.34}'::ltree[] ?@> '1.2.3.4') is null;
?column?
@ -3058,6 +3088,50 @@ SELECT * FROM ltreetest WHERE t <@ '1.1.1' order by t asc;
1.1.1.2.1
(4 rows)
SELECT * FROM ltreetest WHERE t @ '23 & 1' order by t asc;
t
--------------------------------
1.10.23.25.5.11
1.10.4.18.22.23.24
1.12.25.26.22.8.15.23
1.19.22.11.14.7.32.23.19.14
1.21.28.4.23
1.26.15.23.5.31.29.11.19.28.1
1.27.22.23.2.26.32.17.7.9
10.12.9.6.6.26.14.8.23.1.25
12.27.23.32.1.1.9.29.13
14.1.15.25.27.23.25.26.28.10
14.27.29.23.4.1.17.32.6.25.22
15.11.26.1.30.6.23.5
19.22.29.32.1.21.26.24.23.17
19.9.32.23.13.24.1
21.23.17.8.23.11.8.1
22.30.31.24.23.22.5.20.28.1
23.1.23.18.12.29
23.12.1.5.32.25.8.24.1.25
23.12.32.22.19.1.22.4
23.17.22.1.23.4.29.32.4.1
23.17.25.4.1.16.29.10
23.19.17.31.29.13.1.12.5.25
23.22.10.1.14.24
23.28.1
23.3.32.21.5.14.10.17.1
27.29.1.5.30.6.22.16.23.2.28
28.23.2.30.3.8.1.15.15.14.13
29.23.1.21.31.8
29.23.15.25.1.6.6.10
30.23.10.1.10.7.22.28.18.11.17
31.30.23.7.7.24.32.10.11.1.31
32.1.23.20.14.12.23.5.32.15
32.15.20.28.5.1.23.4
5.13.23.19.28.26.27.6.1.22
6.18.1.4.18.23
7.23.1.24.29.13.31.19.23.17.7
8.16.1.16.28.6.3.22.6.23
8.2.18.23.5.16.17.1
9.5.9.3.23.9.25.14.1.29.28
(39 rows)
SELECT * FROM ltreetest WHERE t ~ '1.1.1.*' order by t asc;
t
-----------
@ -3071,9 +3145,17 @@ SELECT * FROM ltreetest WHERE t ~ '*.1' order by t asc;
t
--------------------------------
1
1.1
1.1.1
1.1.1.1
1.1.1.2.1
1.1.2.1
1.26.15.23.5.31.29.11.19.28.1
10.13.22.1.8.30.9.24.1.2.1
10.22.1
10.26.30.15.1
11.1
12.1.1
17.25.2.13.10.27.13.1
18.13.6.12.26.26.26.29.18.20.1
19.20.25.7.27.28.27.17.9.3.1
@ -3083,6 +3165,7 @@ SELECT * FROM ltreetest WHERE t ~ '*.1' order by t asc;
21.18.2.1
21.23.17.8.23.11.8.1
22.30.31.24.23.22.5.20.28.1
23.17.22.1.23.4.29.32.4.1
23.28.1
23.3.32.21.5.14.10.17.1
25.6.12.16.1
@ -3095,14 +3178,7 @@ SELECT * FROM ltreetest WHERE t ~ '*.1' order by t asc;
8.2.18.23.5.16.17.1
8.32.30.1
9.21.20.29.1
(25 rows)
SELECT * FROM ltreetest WHERE t ~ '23.*.1' order by t asc;
t
-------------------------
23.28.1
23.3.32.21.5.14.10.17.1
(2 rows)
(34 rows)
SELECT * FROM ltreetest WHERE t ~ '23.*{1}.1' order by t asc;
t
@ -3110,49 +3186,28 @@ SELECT * FROM ltreetest WHERE t ~ '23.*{1}.1' order by t asc;
23.28.1
(1 row)
SELECT * FROM ltreetest WHERE t @ '23 & 1' order by t asc;
t
--------------------------------
1.10.23.25.5.11
1.10.4.18.22.23.24
1.12.25.26.22.8.15.23
1.19.22.11.14.7.32.23.19.14
1.21.28.4.23
1.26.15.23.5.31.29.11.19.28.1
1.27.22.23.2.26.32.17.7.9
10.12.9.6.6.26.14.8.23.1.25
12.27.23.32.1.1.9.29.13
14.1.15.25.27.23.25.26.28.10
14.27.29.23.4.1.17.32.6.25.22
15.11.26.1.30.6.23.5
19.22.29.32.1.21.26.24.23.17
19.9.32.23.13.24.1
21.23.17.8.23.11.8.1
22.30.31.24.23.22.5.20.28.1
23.1.23.18.12.29
23.12.1.5.32.25.8.24.1.25
23.12.32.22.19.1.22.4
SELECT * FROM ltreetest WHERE t ~ '23.*.1' order by t asc;
t
---------------------------
23.17.22.1.23.4.29.32.4.1
23.17.25.4.1.16.29.10
23.19.17.31.29.13.1.12.5.25
23.22.10.1.14.24
23.28.1
23.3.32.21.5.14.10.17.1
27.29.1.5.30.6.22.16.23.2.28
28.23.2.30.3.8.1.15.15.14.13
29.23.1.21.31.8
29.23.15.25.1.6.6.10
30.23.10.1.10.7.22.28.18.11.17
31.30.23.7.7.24.32.10.11.1.31
32.1.23.20.14.12.23.5.32.15
32.15.20.28.5.1.23.4
5.13.23.19.28.26.27.6.1.22
6.18.1.4.18.23
7.23.1.24.29.13.31.19.23.17.7
8.16.1.16.28.6.3.22.6.23
8.2.18.23.5.16.17.1
9.5.9.3.23.9.25.14.1.29.28
(39 rows)
(3 rows)
SELECT * FROM ltreetest WHERE t ~ '23.*.2' order by t asc;
t
------------------
23.20.12.16.15.2
(1 row)
SELECT * FROM ltreetest WHERE t ? '{23.*.1,23.*.2}' order by t asc;
t
---------------------------
23.17.22.1.23.4.29.32.4.1
23.20.12.16.15.2
23.28.1
23.3.32.21.5.14.10.17.1
(4 rows)
create unique index tstidx on ltreetest (t);
set enable_seqscan=off;
@ -7253,6 +7308,50 @@ SELECT * FROM ltreetest WHERE t <@ '1.1.1' order by t asc;
1.1.1.2.1
(4 rows)
SELECT * FROM ltreetest WHERE t @ '23 & 1' order by t asc;
t
--------------------------------
1.10.23.25.5.11
1.10.4.18.22.23.24
1.12.25.26.22.8.15.23
1.19.22.11.14.7.32.23.19.14
1.21.28.4.23
1.26.15.23.5.31.29.11.19.28.1
1.27.22.23.2.26.32.17.7.9
10.12.9.6.6.26.14.8.23.1.25
12.27.23.32.1.1.9.29.13
14.1.15.25.27.23.25.26.28.10
14.27.29.23.4.1.17.32.6.25.22
15.11.26.1.30.6.23.5
19.22.29.32.1.21.26.24.23.17
19.9.32.23.13.24.1
21.23.17.8.23.11.8.1
22.30.31.24.23.22.5.20.28.1
23.1.23.18.12.29
23.12.1.5.32.25.8.24.1.25
23.12.32.22.19.1.22.4
23.17.22.1.23.4.29.32.4.1
23.17.25.4.1.16.29.10
23.19.17.31.29.13.1.12.5.25
23.22.10.1.14.24
23.28.1
23.3.32.21.5.14.10.17.1
27.29.1.5.30.6.22.16.23.2.28
28.23.2.30.3.8.1.15.15.14.13
29.23.1.21.31.8
29.23.15.25.1.6.6.10
30.23.10.1.10.7.22.28.18.11.17
31.30.23.7.7.24.32.10.11.1.31
32.1.23.20.14.12.23.5.32.15
32.15.20.28.5.1.23.4
5.13.23.19.28.26.27.6.1.22
6.18.1.4.18.23
7.23.1.24.29.13.31.19.23.17.7
8.16.1.16.28.6.3.22.6.23
8.2.18.23.5.16.17.1
9.5.9.3.23.9.25.14.1.29.28
(39 rows)
SELECT * FROM ltreetest WHERE t ~ '1.1.1.*' order by t asc;
t
-----------
@ -7266,9 +7365,17 @@ SELECT * FROM ltreetest WHERE t ~ '*.1' order by t asc;
t
--------------------------------
1
1.1
1.1.1
1.1.1.1
1.1.1.2.1
1.1.2.1
1.26.15.23.5.31.29.11.19.28.1
10.13.22.1.8.30.9.24.1.2.1
10.22.1
10.26.30.15.1
11.1
12.1.1
17.25.2.13.10.27.13.1
18.13.6.12.26.26.26.29.18.20.1
19.20.25.7.27.28.27.17.9.3.1
@ -7278,6 +7385,7 @@ SELECT * FROM ltreetest WHERE t ~ '*.1' order by t asc;
21.18.2.1
21.23.17.8.23.11.8.1
22.30.31.24.23.22.5.20.28.1
23.17.22.1.23.4.29.32.4.1
23.28.1
23.3.32.21.5.14.10.17.1
25.6.12.16.1
@ -7290,14 +7398,7 @@ SELECT * FROM ltreetest WHERE t ~ '*.1' order by t asc;
8.2.18.23.5.16.17.1
8.32.30.1
9.21.20.29.1
(25 rows)
SELECT * FROM ltreetest WHERE t ~ '23.*.1' order by t asc;
t
-------------------------
23.28.1
23.3.32.21.5.14.10.17.1
(2 rows)
(34 rows)
SELECT * FROM ltreetest WHERE t ~ '23.*{1}.1' order by t asc;
t
@ -7305,49 +7406,28 @@ SELECT * FROM ltreetest WHERE t ~ '23.*{1}.1' order by t asc;
23.28.1
(1 row)
SELECT * FROM ltreetest WHERE t @ '23 & 1' order by t asc;
t
--------------------------------
1.10.23.25.5.11
1.10.4.18.22.23.24
1.12.25.26.22.8.15.23
1.19.22.11.14.7.32.23.19.14
1.21.28.4.23
1.26.15.23.5.31.29.11.19.28.1
1.27.22.23.2.26.32.17.7.9
10.12.9.6.6.26.14.8.23.1.25
12.27.23.32.1.1.9.29.13
14.1.15.25.27.23.25.26.28.10
14.27.29.23.4.1.17.32.6.25.22
15.11.26.1.30.6.23.5
19.22.29.32.1.21.26.24.23.17
19.9.32.23.13.24.1
21.23.17.8.23.11.8.1
22.30.31.24.23.22.5.20.28.1
23.1.23.18.12.29
23.12.1.5.32.25.8.24.1.25
23.12.32.22.19.1.22.4
SELECT * FROM ltreetest WHERE t ~ '23.*.1' order by t asc;
t
---------------------------
23.17.22.1.23.4.29.32.4.1
23.17.25.4.1.16.29.10
23.19.17.31.29.13.1.12.5.25
23.22.10.1.14.24
23.28.1
23.3.32.21.5.14.10.17.1
27.29.1.5.30.6.22.16.23.2.28
28.23.2.30.3.8.1.15.15.14.13
29.23.1.21.31.8
29.23.15.25.1.6.6.10
30.23.10.1.10.7.22.28.18.11.17
31.30.23.7.7.24.32.10.11.1.31
32.1.23.20.14.12.23.5.32.15
32.15.20.28.5.1.23.4
5.13.23.19.28.26.27.6.1.22
6.18.1.4.18.23
7.23.1.24.29.13.31.19.23.17.7
8.16.1.16.28.6.3.22.6.23
8.2.18.23.5.16.17.1
9.5.9.3.23.9.25.14.1.29.28
(39 rows)
(3 rows)
SELECT * FROM ltreetest WHERE t ~ '23.*.2' order by t asc;
t
------------------
23.20.12.16.15.2
(1 row)
SELECT * FROM ltreetest WHERE t ? '{23.*.1,23.*.2}' order by t asc;
t
---------------------------
23.17.22.1.23.4.29.32.4.1
23.20.12.16.15.2
23.28.1
23.3.32.21.5.14.10.17.1
(4 rows)
create table _ltreetest (t ltree[]);
\copy _ltreetest FROM 'data/_ltree.data'
@ -7363,6 +7443,12 @@ SELECT count(*) FROM _ltreetest WHERE t <@ '1.1.1' ;
19
(1 row)
SELECT count(*) FROM _ltreetest WHERE t @ '23 & 1' ;
count
-------
147
(1 row)
SELECT count(*) FROM _ltreetest WHERE t ~ '1.1.1.*' ;
count
-------
@ -7372,25 +7458,31 @@ SELECT count(*) FROM _ltreetest WHERE t ~ '1.1.1.*' ;
SELECT count(*) FROM _ltreetest WHERE t ~ '*.1' ;
count
-------
83
109
(1 row)
SELECT count(*) FROM _ltreetest WHERE t ~ '23.*{1}.1' ;
count
-------
5
(1 row)
SELECT count(*) FROM _ltreetest WHERE t ~ '23.*.1' ;
count
-------
10
11
(1 row)
SELECT count(*) FROM _ltreetest WHERE t ~ '23.*{1}.1 ' ;
SELECT count(*) FROM _ltreetest WHERE t ~ '23.*.2 ' ;
count
-------
5
(1 row)
SELECT count(*) FROM _ltreetest WHERE t @ '23 & 1 ' ;
SELECT count(*) FROM _ltreetest WHERE t ? '{23.*.1,23.*.2} ' ;
count
-------
147
15
(1 row)
create index _tstidx on _ltreetest using gist (t);
@ -7407,6 +7499,12 @@ SELECT count(*) FROM _ltreetest WHERE t <@ '1.1.1' ;
19
(1 row)
SELECT count(*) FROM _ltreetest WHERE t @ '23 & 1' ;
count
-------
147
(1 row)
SELECT count(*) FROM _ltreetest WHERE t ~ '1.1.1.*' ;
count
-------
@ -7416,24 +7514,30 @@ SELECT count(*) FROM _ltreetest WHERE t ~ '1.1.1.*' ;
SELECT count(*) FROM _ltreetest WHERE t ~ '*.1' ;
count
-------
83
109
(1 row)
SELECT count(*) FROM _ltreetest WHERE t ~ '23.*{1}.1' ;
count
-------
5
(1 row)
SELECT count(*) FROM _ltreetest WHERE t ~ '23.*.1' ;
count
-------
10
11
(1 row)
SELECT count(*) FROM _ltreetest WHERE t ~ '23.*{1}.1 ' ;
SELECT count(*) FROM _ltreetest WHERE t ~ '23.*.2 ' ;
count
-------
5
(1 row)
SELECT count(*) FROM _ltreetest WHERE t @ '23 & 1 ' ;
SELECT count(*) FROM _ltreetest WHERE t ? '{23.*.1,23.*.2} ' ;
count
-------
147
15
(1 row)