## Summary The queries added new columns with 123. Probably "INTERSECT" is wrong. It is a logic bug because the output is different ## Minimized query ```sql ATTACH DATABASE ':memory:' AS aux12; PRAGMA fullfsync; PRAGMA automatic_index = ON; PRAGMA wal_checkpoint; .tables CREATE TABLE t1(c1); INSERT INTO t1 VALUES(if(2147483647, 12, 0, 12, 0, 12, 12)),(123),(1234),(NULL),('abc'); CREATE TABLE "t2"(c2); INSERT INTO t2 VALUES(44),(55),(123); CREATE TABLE t3(c3,c4); INSERT INTO t3 VALUES(66,1),(123,2),(77,3); CREATE VIEW t4 AS SELECT c3 FROM t3; CREATE VIEW t5 AS SELECT c3 FROM t3 ORDER BY c4; SELECT * FROM t1, t2 WHERE c1=(SELECT 123 INTERSECT SELECT c2 FROM t4) AND c1=123; SELECT * FROM t1, t2 WHERE c1=(SELECT 123 INTERSECT SELECT c2 FROM t5) AND c1=123; SELECT COUNT(*) FROM t1; ANALYZE; INSERT OR IGNORE INTO t1 VALUES (''); SELECT * FROM t1 WHERE c1 = (SELECT SUM(c1) FROM t1); INSERT INTO t2 DEFAULT VALUES; SELECT COUNT(*) FROM t1; ANALYZE; WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<63) SELECT * FROM cnt; ANALYZE; SELECT COUNT(*) FROM t3; ANALYZE t2; ANALYZE; CREATE TEMP VIEW IF NOT EXISTS v_t1_9829 AS SELECT c1 FROM t1; WITH cte AS (SELECT c3, LEAD(c3) OVER (ORDER BY c3) AS nxt FROM t3) SELECT * FROM cte; SELECT * FROM t1 NATURAL JOIN t1; REINDEX; PRAGMA foreign_keys = YES; VACUUM main; CREATE TRIGGER IF NOT EXISTS trg_t1_6595 BEFORE UPDATE OF c1 ON t1 FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END; DETACH DATABASE aux12; INSERT INTO t1 DEFAULT VALUES; ``` ## Actual output ```sql 0 0|-1|-1 0 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 3 66|77 77|123 123| ``` ## Expectation ```sql 0 0|-1|-1 123|123 123|123 5 6 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 3 66|77 77|123 123| 12 123 1234 abc ``` ## Flag ``` ```