## Summary **No review yet** ## Minimized query ```sql CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT); INSERT INTO t1 VALUES (json_valid(CAST(2147483646 AS DECIMAL(10,5)), 6), 'Wernher', 10, 100); INSERT INTO t1 VALUES (2, 'von', 20, 200); INSERT INTO t1 VALUES (3, 'Braun', 30, 300); CREATE INDEX t1bc ON t1(b, c); PRAGMA writable_schema == ON; .imposter t1bc t2 SELECT * FROM t2; SELECT b, c FROM t1 ORDER BY b, c; .quit SAVEPOINT sp2043; .progress CAST(9999 AS CLOB) CREATE TABLE t1(a,b); INSERT INTO t1 VALUES(123,'abc'),(234,'def'),(234,'ghi'),(345,'jkl'); CREATE TABLE t2(x,y); INSERT INTO t2 VALUES(987,'zyx'),(654,'wvu'),(987,'rqp'); SELECT *, '|' FROM t1, t2 WHERE a=234 AND x=987 ORDER BY +b; SELECT *, '|' FROM t1, t2 WHERE a=234 AND x=555; SELECT *, '|' FROM t1 LEFT JOIN t2 ON a=234 AND x=555; WITH cte AS (SELECT CASE WHEN x IS NULL THEN 0 ELSE x END AS val FROM t2) SELECT * FROM cte; ROLLBACK TO sp2043; RELEASE sp2043; SELECT * FROM t1 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; INSERT INTO t2 VALUES (NULL, NULL); SELECT * FROM t1 AS a INNER JOIN t2 AS b ON a.rowid = b.rowid; PRAGMA hard_heap_limit = 50000000; CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT); INSERT INTO t1 VALUES (json_valid(CAST(2147483646 AS DECIMAL(10,5)), 6), 'Wernher', 10, 100); INSERT INTO t1 VALUES (2, 'von', 20, 200); INSERT INTO t1 VALUES (3, 'Braun', 30, 300); CREATE INDEX t1bc ON t1(b, c); PRAGMA writable_schema == ON; .imposter t1bc t2 SELECT * FROM t2; SELECT b, c FROM t1 ORDER BY b, c; .quit SAVEPOINT sp2043; .progress CAST(9999 AS CLOB) CREATE TABLE t1(a,b); INSERT INTO t1 VALUES(123,'abc'),(234,'def'),(234,'ghi'),(345,'jkl'); CREATE TABLE t2(x,y); INSERT INTO t2 VALUES(987,'zyx'),(654,'wvu'),(987,'rqp'); SELECT *, '|' FROM t1, t2 WHERE a=234 AND x=987 ORDER BY +b; SELECT *, '|' FROM t1, t2 WHERE a=234 AND x=555; SELECT *, '|' FROM t1 LEFT JOIN t2 ON a=234 AND x=555; WITH cte AS (SELECT CASE WHEN x IS NULL THEN 0 ELSE x END AS val FROM t2) SELECT * FROM cte; ROLLBACK TO sp2043; RELEASE sp2043; SELECT * FROM t1 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; INSERT INTO t2 VALUES (NULL, NULL); SELECT * FROM t1 AS a INNER JOIN t2 AS b ON a.rowid = b.rowid; PRAGMA hard_heap_limit = 50000000; CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT); INSERT INTO t1 VALUES (json_valid(CAST(2147483646 AS DECIMAL(10,5)), 6), 'Wernher', 10, 100); INSERT INTO t1 VALUES (2, 'von', 20, 200); INSERT INTO t1 VALUES (3, 'Braun', 30, 300); CREATE INDEX t1bc ON t1(b, c); PRAGMA writable_schema == ON; .imposter t1bc t2 SELECT * FROM t2; SELECT b, c FROM t1 ORDER BY b, c; .quit SAVEPOINT sp2043; .progress CAST(9999 AS CLOB) CREATE TABLE t1(a,b); INSERT INTO t1 VALUES(123,'abc'),(234,'def'),(234,'ghi'),(345,'jkl'); CREATE TABLE t2(x,y); INSERT INTO t2 VALUES(987,'zyx'),(654,'wvu'),(987,'rqp'); SELECT *, '|' FROM t1, t2 WHERE a=234 AND x=987 ORDER BY +b; SELECT *, '|' FROM t1, t2 WHERE a=234 AND x=555; SELECT *, '|' FROM t1 LEFT JOIN t2 ON a=234 AND x=555; WITH cte AS (SELECT CASE WHEN x IS NULL THEN 0 ELSE x END AS val FROM t2) SELECT * FROM cte; ROLLBACK TO sp2043; RELEASE sp2043; SELECT * FROM t1 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; INSERT INTO t2 VALUES (NULL, NULL); SELECT * FROM t1 AS a INNER JOIN t2 AS b ON a.rowid = b.rowid; PRAGMA hard_heap_limit = 50000000; CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT); INSERT INTO t1 VALUES (json_valid(CAST(2147483646 AS DECIMAL(10,5)), 6), 'Wernher', 10, 100); INSERT INTO t1 VALUES (2, 'von', 20, 200); INSERT INTO t1 VALUES (3, 'Braun', 30, 300); CREATE INDEX t1bc ON t1(b, c); PRAGMA writable_schema == ON; .imposter t1bc t2 SELECT * FROM t2; SELECT b, c FROM t1 ORDER BY b, c; .quit SAVEPOINT sp2043; .progress CAST(9999 AS CLOB) CREATE TABLE t1(a,b); INSERT INTO t1 VALUES(123,'abc'),(234,'def'),(234,'ghi'),(345,'jkl'); CREATE TABLE t2(x,y); INSERT INTO t2 VALUES(987,'zyx'),(654,'wvu'),(987,'rqp'); SELECT *, '|' FROM t1, t2 WHERE a=234 AND x=987 ORDER BY +b; SELECT *, '|' FROM t1, t2 WHERE a=234 AND x=555; SELECT *, '|' FROM t1 LEFT JOIN t2 ON a=234 AND x=555; WITH cte AS (SELECT CASE WHEN x IS NULL THEN 0 ELSE x END AS val FROM t2) SELECT * FROM cte; ROLLBACK TO sp2043; RELEASE sp2043; SELECT * FROM t1 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; INSERT INTO t2 VALUES (NULL, NULL); SELECT * FROM t1 AS a INNER JOIN t2 AS b ON a.rowid = b.rowid; PRAGMA hard_heap_limit = 50000000; CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT); INSERT INTO t1 VALUES (json_valid(CAST(2147483646 AS DECIMAL(10,5)), 6), 'Wernher', 10, 100); INSERT INTO t1 VALUES (2, 'von', 20, 200); INSERT INTO t1 VALUES (3, 'Braun', 30, 300); CREATE INDEX t1bc ON t1(b, c); PRAGMA writable_schema == ON; .imposter t1bc t2 SELECT * FROM t2; SELECT b, c FROM t1 ORDER BY b, c; .quit SAVEPOINT sp2043; .progress CAST(9999 AS CLOB) CREATE TABLE t1(a,b); INSERT INTO t1 VALUES(123,'abc'),(234,'def'),(234,'ghi'),(345,'jkl'); CREATE TABLE t2(x,y); INSERT INTO t2 VALUES(987,'zyx'),(654,'wvu'),(987,'rqp'); SELECT *, '|' FROM t1, t2 WHERE a=234 AND x=987 ORDER BY +b; SELECT *, '|' FROM t1, t2 WHERE a=234 AND x=555; SELECT *, '|' FROM t1 LEFT JOIN t2 ON a=234 AND x=555; WITH cte AS (SELECT CASE WHEN x IS NULL THEN 0 ELSE x END AS val FROM t2) SELECT * FROM cte; ROLLBACK TO sp2043; RELEASE sp2043; SELECT * FROM t1 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; INSERT INTO t2 VALUES (NULL, NULL); SELECT * FROM t1 AS a INNER JOIN t2 AS b ON a.rowid = b.rowid; PRAGMA hard_heap_limit = 50000000; CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT); INSERT INTO t1 VALUES (json_valid(CAST(2147483646 AS DECIMAL(10,5)), 6), 'Wernher', 10, 100); INSERT INTO t1 VALUES (2, 'von', 20, 200); INSERT INTO t1 VALUES (3, 'Braun', 30, 300); CREATE INDEX t1bc ON t1(b, c); PRAGMA writable_schema == ON; .imposter t1bc t2 SELECT * FROM t2; SELECT b, c FROM t1 ORDER BY b, c; .quit SAVEPOINT sp2043; .progress CAST(9999 AS CLOB) CREATE TABLE t1(a,b); INSERT INTO t1 VALUES(123,'abc'),(234,'def'),(234,'ghi'),(345,'jkl'); CREATE TABLE t2(x,y); INSERT INTO t2 VALUES(987,'zyx'),(654,'wvu'),(987,'rqp'); SELECT *, '|' FROM t1, t2 WHERE a=234 AND x=987 ORDER BY +b; SELECT *, '|' FROM t1, t2 WHERE a=234 AND x=555; SELECT *, '|' FROM t1 LEFT JOIN t2 ON a=234 AND x=555; WITH cte AS (SELECT CASE WHEN x IS NULL THEN 0 ELSE x END AS val FROM t2) SELECT * FROM cte; ROLLBACK TO sp2043; RELEASE sp2043; SELECT * FROM t1 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; INSERT INTO t2 VALUES (NULL, NULL); SELECT * FROM t1 AS a INNER JOIN t2 AS b ON a.rowid = b.rowid; PRAGMA hard_heap_limit = 50000000; CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT); INSERT INTO t1 VALUES (json_valid(CAST(2147483646 AS DECIMAL(10,5)), 6), 'Wernher', 10, 100); INSERT INTO t1 VALUES (2, 'von', 20, 200); INSERT INTO t1 VALUES (3, 'Braun', 30, 300); CREATE INDEX t1bc ON t1(b, c); PRAGMA writable_schema == ON; .imposter t1bc t2 SELECT * FROM t2; SELECT b, c FROM t1 ORDER BY b, c; .quit SAVEPOINT sp2043; .progress CAST(9999 AS CLOB) CREATE TABLE t1(a,b); INSERT INTO t1 VALUES(123,'abc'),(234,'def'),(234,'ghi'),(345,'jkl'); CREATE TABLE t2(x,y); INSERT INTO t2 VALUES(987,'zyx'),(654,'wvu'),(987,'rqp'); SELECT *, '|' FROM t1, t2 WHERE a=234 AND x=987 ORDER BY +b; SELECT *, '|' FROM t1, t2 WHERE a=234 AND x=555; SELECT *, '|' FROM t1 LEFT JOIN t2 ON a=234 AND x=555; WITH cte AS (SELECT CASE WHEN x IS NULL THEN 0 ELSE x END AS val FROM t2) SELECT * FROM cte; ROLLBACK TO sp2043; RELEASE sp2043; SELECT * FROM t1 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; INSERT INTO t2 VALUES (NULL, NULL); SELECT * FROM t1 AS a INNER JOIN t2 AS b ON a.rowid = b.rowid; PRAGMA hard_heap_limit = 50000000; CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT); INSERT INTO t1 VALUES (json_valid(CAST(2147483646 AS DECIMAL(10,5)), 6), 'Wernher', 10, 100); INSERT INTO t1 VALUES (2, 'von', 20, 200); INSERT INTO t1 VALUES (3, 'Braun', 30, 300); CREATE INDEX t1bc ON t1(b, c); PRAGMA writable_schema == ON; .imposter t1bc t2 SELECT * FROM t2; SELECT b, c FROM t1 ORDER BY b, c; .quit SAVEPOINT sp2043; .progress CAST(9999 AS CLOB) CREATE TABLE t1(a,b); INSERT INTO t1 VALUES(123,'abc'),(234,'def'),(234,'ghi'),(345,'jkl'); CREATE TABLE t2(x,y); INSERT INTO t2 VALUES(987,'zyx'),(654,'wvu'),(987,'rqp'); SELECT *, '|' FROM t1, t2 WHERE a=234 AND x=987 ORDER BY +b; SELECT *, '|' FROM t1, t2 WHERE a=234 AND x=555; SELECT *, '|' FROM t1 LEFT JOIN t2 ON a=234 AND x=555; WITH cte AS (SELECT CASE WHEN x IS NULL THEN 0 ELSE x END AS val FROM t2) SELECT * FROM cte; ROLLBACK TO sp2043; RELEASE sp2043; SELECT * FROM t1 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; INSERT INTO t2 VALUES (NULL, NULL); SELECT * FROM t1 AS a INNER JOIN t2 AS b ON a.rowid = b.rowid; PRAGMA hard_heap_limit = 50000000; CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT); INSERT INTO t1 VALUES (json_valid(CAST(2147483646 AS DECIMAL(10,5)), 6), 'Wernher', 10, 100); INSERT INTO t1 VALUES (2, 'von', 20, 200); INSERT INTO t1 VALUES (3, 'Braun', 30, 300); CREATE INDEX t1bc ON t1(b, c); PRAGMA writable_schema == ON; .imposter t1bc t2 SELECT * FROM t2; SELECT b, c FROM t1 ORDER BY b, c; .quit SAVEPOINT sp2043; .progress CAST(9999 AS CLOB) CREATE TABLE t1(a,b); INSERT INTO t1 VALUES(123,'abc'),(234,'def'),(234,'ghi'),(345,'jkl'); CREATE TABLE t2(x,y); INSERT INTO t2 VALUES(987,'zyx'),(654,'wvu'),(987,'rqp'); SELECT *, '|' FROM t1, t2 WHERE a=234 AND x=987 ORDER BY +b; SELECT *, '|' FROM t1, t2 WHERE a=234 AND x=555; SELECT *, '|' FROM t1 LEFT JOIN t2 ON a=234 AND x=555; WITH cte AS (SELECT CASE WHEN x IS NULL THEN 0 ELSE x END AS val FROM t2) SELECT * FROM cte; ROLLBACK TO sp2043; RELEASE sp2043; SELECT * FROM t1 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; INSERT INTO t2 VALUES (NULL, NULL); SELECT * FROM t1 AS a INNER JOIN t2 AS b ON a.rowid = b.rowid; PRAGMA hard_heap_limit = 50000000; CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT); INSERT INTO t1 VALUES (json_valid(CAST(2147483646 AS DECIMAL(10,5)), 6), 'Wernher', 10, 100); INSERT INTO t1 VALUES (2, 'von', 20, 200); INSERT INTO t1 VALUES (3, 'Braun', 30, 300); CREATE INDEX t1bc ON t1(b, c); PRAGMA writable_schema == ON; .imposter t1bc t2 SELECT * FROM t2; SELECT b, c FROM t1 ORDER BY b, c; .quit SAVEPOINT sp2043; .progress CAST(9999 AS CLOB) CREATE TABLE t1(a,b); INSERT INTO t1 VALUES(123,'abc'),(234,'def'),(234,'ghi'),(345,'jkl'); CREATE TABLE t2(x,y); INSERT INTO t2 VALUES(987,'zyx'),(654,'wvu'),(987,'rqp'); SELECT *, '|' FROM t1, t2 WHERE a=234 AND x=987 ORDER BY +b; SELECT *, '|' FROM t1, t2 WHERE a=234 AND x=555; SELECT *, '|' FROM t1 LEFT JOIN t2 ON a=234 AND x=555; WITH cte AS (SELECT CASE WHEN x IS NULL THEN 0 ELSE x END AS val FROM t2) SELECT * FROM cte; ROLLBACK TO sp2043; RELEASE sp2043; SELECT * FROM t1 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; INSERT INTO t2 VALUES (NULL, NULL); SELECT * FROM t1 AS a INNER JOIN t2 AS b ON a.rowid = b.rowid; PRAGMA hard_heap_limit = 50000000; REINDEX t2; CREATE TRIGGER IF NOT EXISTS trg_t1_2854 AFTER UPDATE ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END; ALTER TABLE t2 DROP COLUMN x; ALTER TABLE t2 ADD COLUMN extra_1063 SMALLINT DEFAULT (random()); ``` ## Actual output ```sql CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID; WARNING: writing to an imposter table will corrupt the "t1bc" index! Braun|30|3 von|20|2 Braun|30 von|20 ``` ## Expectation ```sql ``` ## Flag ``` ```