65 lines
1.5 KiB
Markdown
65 lines
1.5 KiB
Markdown
## Summary
|
|
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->
|
|
We think that the patched version just ignores the third select statement, and therefore does not print out the second table.
|
|
|
|
## Minimized query
|
|
|
|
```sql
|
|
CREATE TABLE T (
|
|
a INTEGER,
|
|
b REAL,
|
|
c REAL
|
|
);
|
|
INSERT INTO T VALUES (if(ifnull(x'be83e7457352932f', round(2)), 1, 0, 1, 0, 1),2.0,10.5), (1,-3.5,20.25), (2,9e999,-1.0);
|
|
WITH d AS (SELECT a,SUM(b*c) AS e FROM T GROUP BY a) SELECT * FROM d;
|
|
BEGIN IMMEDIATE;
|
|
PRAGMA parser_trace = OFF;
|
|
PRAGMA empty_result_callbacks = TRUE;
|
|
CREATE TABLE t1(a INT, b INT);
|
|
CREATE TABLE t2(c INT, d INT);
|
|
CREATE TABLE t3(e TEXT, f TEXT);
|
|
INSERT INTO t1 VALUES('𝕊𝕢𝕝', 1);
|
|
INSERT INTO t2 VALUES(1, 2);
|
|
INSERT INTO t3 VALUES('abc', 'def');
|
|
SELECT * FROM t1, t2 LEFT JOIN t3 ON (t2.d=1) WHERE t2.c = +t1.a;
|
|
SELECT * FROM t1 LEFT JOIN t2 ON (t2.c=+t1.a) LEFT JOIN t3 ON (t2.d IS NULL);
|
|
|
|
SELECT * FROM t2;
|
|
SELECT MIN(b) OVER (PARTITION BY b ORDER BY b RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
|
COMMIT;
|
|
ALTER TABLE t2 RENAME TO /* PRAGMA count_changes = TRUE; */ t2_r1545;
|
|
INSERT OR FAIL INTO t3 VALUES ('x', 0);
|
|
ANALYZE;
|
|
DELETE FROM t1 WHERE rowid = 15 RETURNING *;
|
|
SELECT * FROM T AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
|
```
|
|
|
|
## Actual output
|
|
|
|
```sql
|
|
???|1|||abc|def
|
|
1|2
|
|
1
|
|
```
|
|
|
|
## Expectation
|
|
|
|
```sql
|
|
|21.0
|
|
1|-70.875
|
|
2|-Inf
|
|
𝕊𝕢𝕝|1|||abc|def
|
|
1|2
|
|
1
|
|
|2.0|10.5|𝕊𝕢𝕝|1
|
|
1|-3.5|20.25||
|
|
2|Inf|-1.0||
|
|
```
|
|
|
|
## Flag
|
|
|
|
```
|
|
|
|
```
|
|
|