should be it
This commit is contained in:
38
external/duckdb/test/issues/general/test_2554.test_slow
vendored
Normal file
38
external/duckdb/test/issues/general/test_2554.test_slow
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
# name: test/issues/general/test_2554.test_slow
|
||||
# description: Issue 2554: a recursive CTE SQL works in Sqlite reports a within error in duckdb
|
||||
# group: [general]
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
query I
|
||||
WITH RECURSIVE
|
||||
input(sud) AS (
|
||||
VALUES('53..7....6..195....98....6.8...6...34..8.3..17...2...6.6....28....419..5....8..79')
|
||||
),
|
||||
digits(z, lp) AS (
|
||||
VALUES('1', 1)
|
||||
UNION ALL SELECT
|
||||
CAST(lp+1 AS TEXT), lp+1 FROM digits WHERE lp<9
|
||||
),
|
||||
x(s, ind) AS (
|
||||
SELECT sud, instr(sud, '.') FROM input
|
||||
UNION ALL
|
||||
SELECT
|
||||
substr(s, 1, ind::int-1) || z || substr(s, ind::int+1),
|
||||
instr( substr(s, 1, ind::int-1) || z || substr(s, ind::int+1), '.' )
|
||||
FROM x, digits AS z
|
||||
WHERE ind::int>0
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM digits AS lp
|
||||
WHERE z.z = substr(s, ((ind::int-1)//9)*9 + lp, 1)
|
||||
OR z.z = substr(s, ((ind::int-1)%9) + (lp-1)*9 + 1, 1)
|
||||
OR z.z = substr(s, (((ind::int-1)//3) % 3) * 3
|
||||
+ ((ind::int-1)//27) * 27 + lp
|
||||
+ ((lp-1) // 3) * 6, 1)
|
||||
)
|
||||
)
|
||||
SELECT s FROM x WHERE ind::int=0;
|
||||
----
|
||||
534678912672195348198342567859761423426853791713924856961537284287419635345286179
|
||||
Reference in New Issue
Block a user