## Summary **No review yet** ## Minimized query ```sql SAVEPOINT sp2435; SAVEPOINT sp2550; CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT); INSERT INTO t1 VALUES (1, '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 CREATE TABLE main.T ( a INTEGER, b TEXT, c INTEGER ); INSERT INTO T VALUES (-(-(ifnull(x'0a61e433b2ab715e25765c', 2))),'a',NULL), (2,'b',1), (3,'c',2); WITH RECURSIVE d(a,b,c,e) AS ( SELECT *,1 FROM T WHERE c IS NULL UNION ALL SELECT T.a,T.b,T.c,d.e+1 FROM T JOIN d ON T.c=d.a ) SELECT * FROM d; DELETE FROM T WHERE b IS NULL RETURNING *; SELECT * FROM T; DROP TABLE IF EXISTS T; ROLLBACK TRANSACTION TO SAVEPOINT sp2550; RELEASE SAVEPOINT sp2550; RELEASE sp2435; WITH cte AS (SELECT NULL AS x, NULL AS y) SELECT x, y, x IS NULL FROM cte; CREATE TABLE T ( a INTEGER, b TEXT, c INTEGER ); INSERT INTO T VALUES (1,'a',NULL), (2,'b',1), (3,'c',2); WITH RECURSIVE d(a,b,c,e) AS ( SELECT *,1 FROM T WHERE c IS NULL UNION ALL SELECT T.a,T.b,T.c,d.e+1 FROM T JOIN d ON T.c=d.a ) SELECT * FROM d; SELECT COUNT(*) FILTER (WHERE a IS NOT NULL), SUM(rowid) FILTER (WHERE a > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(a) FILTER (WHERE a > 0 AND a < 100), COUNT(*) FILTER (WHERE typeof(a) = "text") FROM T; ANALYZE T; ``` ## 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 Wernher|10|1 von|20|2 Braun|30 Wernher|10 von|20 ``` ## Expectation ```sql CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID; Braun|30|3 Wernher|10|1 von|20|2 Braun|30 Wernher|10 von|20 ``` ## Flag ``` ```