should be it
This commit is contained in:
76
external/duckdb/test/sql/cte/recursive_array_slice.test
vendored
Normal file
76
external/duckdb/test/sql/cte/recursive_array_slice.test
vendored
Normal file
@@ -0,0 +1,76 @@
|
||||
# name: test/sql/cte/recursive_array_slice.test
|
||||
# description: Issue #3005: array_slice prevents row values to be used more than once
|
||||
# group: [cte]
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
statement ok
|
||||
CREATE TABLE p(loc int8);
|
||||
|
||||
statement ok
|
||||
INSERT INTO p VALUES (1);
|
||||
|
||||
query II
|
||||
WITH RECURSIVE t(y, arr) AS
|
||||
(
|
||||
SELECT 1, array[1,2,3,4,5,6]
|
||||
UNION ALL
|
||||
SELECT y+1, arr[:loc]
|
||||
FROM t, p
|
||||
WHERE y < 10
|
||||
) SELECT * FROM t;
|
||||
----
|
||||
1 [1, 2, 3, 4, 5, 6]
|
||||
2 [1]
|
||||
3 [1]
|
||||
4 [1]
|
||||
5 [1]
|
||||
6 [1]
|
||||
7 [1]
|
||||
8 [1]
|
||||
9 [1]
|
||||
10 [1]
|
||||
|
||||
query II
|
||||
WITH RECURSIVE t(y, arr) AS
|
||||
(
|
||||
SELECT 1, array[1,2,3,4,5,6]
|
||||
UNION ALL
|
||||
SELECT y+1, arr
|
||||
FROM t, p
|
||||
WHERE y < 10
|
||||
AND y = loc
|
||||
) SELECT * FROM t;
|
||||
----
|
||||
1 [1, 2, 3, 4, 5, 6]
|
||||
2 [1, 2, 3, 4, 5, 6]
|
||||
|
||||
query II
|
||||
WITH RECURSIVE t(y, arr) AS
|
||||
(
|
||||
SELECT 1, array[1,2,3,4,5,6]
|
||||
UNION ALL
|
||||
SELECT y+1, arr[:loc]
|
||||
FROM t, p
|
||||
WHERE y < 10
|
||||
AND y = loc
|
||||
) SELECT * FROM t;
|
||||
----
|
||||
1 [1, 2, 3, 4, 5, 6]
|
||||
2 [1]
|
||||
|
||||
query I
|
||||
WITH RECURSIVE t(arr) AS
|
||||
(
|
||||
SELECT array[1,2,3,4,5,6]
|
||||
UNION ALL
|
||||
SELECT arr[arr[1]+1:6]
|
||||
FROM t
|
||||
WHERE arr[1] < 6
|
||||
) SELECT * FROM t;
|
||||
----
|
||||
[1, 2, 3, 4, 5, 6]
|
||||
[2, 3, 4, 5, 6]
|
||||
[4, 5, 6]
|
||||
[]
|
||||
Reference in New Issue
Block a user