Summary
We think that the patched version just ignores the third select statement, and therefore does not print out the second table.
Minimized query
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
???|1|||abc|def
1|2
1
Expectation
|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