1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-01 06:27:03 +03:00

Fix an assertion failure triggered by a SELECT with a compound sub-query that

contains an incorrectly placed ORDER BY clause. This problem is just an
assert() failure - non-DEBUG builds are not affected. Problem found by
OSSFuzz.

FossilOrigin-Name: 823779d31eb09cda5effe747d9adb35e600a52d4274226586437f674e7824d91
This commit is contained in:
dan
2018-03-31 16:31:51 +00:00
parent 58bd03320d
commit 4f9a7e5cb7
4 changed files with 58 additions and 10 deletions

View File

@ -148,5 +148,54 @@ do_execsql_test 3.2 {
);
} {a 4 b 3 c 2 d 1}
#-------------------------------------------------------------------------
do_execsql_test 4.0 {
CREATE TABLE t6(x);
}
foreach {tn sql} {
1 {
SELECT 'abc' FROM (
SELECT x FROM t6 ORDER BY 1
UNION ALL
SELECT x FROM t6
)
}
2 {
SELECT 'abc' FROM (
SELECT x FROM t6
UNION ALL
SELECT x FROM t6 ORDER BY 1
UNION ALL
SELECT x FROM t6
)
}
3 {
SELECT 'abc' FROM (
SELECT x FROM t6 ORDER BY 1
UNION ALL
SELECT x FROM t6 ORDER BY 1
UNION ALL
SELECT x FROM t6
)
}
4 {
SELECT 'abc' FROM (
SELECT x FROM t6
UNION ALL
SELECT x FROM t6 ORDER BY 1
UNION ALL
SELECT x FROM t6 ORDER BY 1
UNION ALL
SELECT x FROM t6
)
}
} {
do_catchsql_test 4.$tn $sql [list {*}{
1 {ORDER BY clause should come after UNION ALL not before}
}]
}
finish_test