## Summary **No review yet** ## Minimized query ```sql SAVEPOINT sp3272; PRAGMA ignore_check_constraints = NO; .eqp off PRAGMA count_changes = '|'; ATTACH DATABASE ':memory:' AS aux96; ATTACH DATABASE ':memory:' AS aux34; CREATE TEMPORARY TABLE t0(x, y, z); CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT); INSERT INTO t1 VALUES (CAST(unicode('你好') AS MEDIUMINT), 'Wernher', if(1, 10, 0, 10, 0, 10, 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 SELECT -99999999999999999999999999999999999999999999999999; SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***'; DROP TABLE t0; REINDEX; DELETE FROM t0 WHERE 1 RETURNING *; UPDATE t0 SET z = '' WHERE z BETWEEN 0 AND 100; SELECT * FROM t0 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1 WHERE b NOT IN (SELECT b FROM t1); DETACH DATABASE aux34; SELECT * FROM t1 AS a FULL OUTER JOIN t0 AS b ON a.rowid = b.rowid; ALTER TABLE t0 RENAME TO t0_r5353; ALTER TABLE t1 RENAME TO t1_r3388; PRAGMA short_column_names = YES; INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL); SELECT COUNT(*) FROM t1; CREATE TRIGGER IF NOT EXISTS trg_t0_3641 AFTER UPDATE ON t0 BEGIN SELECT RAISE(IGNORE); END; 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 t1; DETACH DATABASE aux96; 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 WITH RECURSIVE multi(a, b) AS (VALUES(1, 1.0) UNION ALL SELECT a+1, b*0.5 FROM multi WHERE a<38) SELECT * FROM multi; .eqp off PRAGMA count_changes = '|'; ATTACH DATABASE ':memory:' AS aux96; ATTACH DATABASE ':memory:' AS aux34; CREATE TEMPORARY TABLE t0(x, y, z); CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT); INSERT INTO t1 VALUES (CAST(unicode('你好') AS MEDIUMINT), '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 SELECT -99999999999999999999999999999999999999999999999999; SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***'; DROP TABLE t0; REINDEX; DELETE FROM t0 WHERE 1 RETURNING *; UPDATE t0 SET z = '' WHERE z BETWEEN 0 AND 100; SELECT * FROM t0 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1 WHERE b NOT IN (SELECT b FROM t1); DETACH DATABASE aux34; SELECT * FROM t1 AS a FULL OUTER JOIN t0 AS b ON a.rowid = b.rowid; ALTER TABLE t0 RENAME TO t0_r5353; ALTER TABLE t1 RENAME TO t1_r3388; PRAGMA short_column_names = YES; INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL); SELECT COUNT(*) FROM t1; CREATE TRIGGER IF NOT EXISTS trg_t0_3641 AFTER UPDATE ON t0 BEGIN SELECT RAISE(IGNORE); END; 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 t1; DETACH DATABASE aux96; 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 WITH RECURSIVE multi(a, b) AS (VALUES(1, 1.0) UNION ALL SELECT a+1, b*0.5 FROM multi WHERE a<38) SELECT * FROM multi; .eqp off PRAGMA count_changes = '|'; ATTACH DATABASE ':memory:' AS aux96; ATTACH DATABASE ':memory:' AS aux34; CREATE TEMPORARY TABLE t0(x, y, z); CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT); INSERT INTO t1 VALUES (CAST(unicode('你好') AS MEDIUMINT), '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 SELECT -99999999999999999999999999999999999999999999999999; SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***'; DROP TABLE t0; REINDEX; DELETE FROM t0 WHERE 1 RETURNING *; UPDATE t0 SET z = '' WHERE z BETWEEN 0 AND 100; SELECT * FROM t0 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1 WHERE b NOT IN (SELECT b FROM t1); DETACH DATABASE aux34; SELECT * FROM t1 AS a FULL OUTER JOIN t0 AS b ON a.rowid = b.rowid; ALTER TABLE t0 RENAME TO t0_r5353; ALTER TABLE t1 RENAME TO t1_r3388; PRAGMA short_column_names = YES; INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL); SELECT COUNT(*) FROM t1; CREATE TRIGGER IF NOT EXISTS trg_t0_3641 AFTER UPDATE ON t0 BEGIN SELECT RAISE(IGNORE); END; 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 t1; DETACH DATABASE aux96; 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 WITH RECURSIVE multi(a, b) AS (VALUES(1, 1.0) UNION ALL SELECT a+1, b*0.5 FROM multi WHERE a<38) SELECT * FROM multi; .eqp off PRAGMA count_changes = '|'; ATTACH DATABASE ':memory:' AS aux96; ATTACH DATABASE ':memory:' AS aux34; CREATE TEMPORARY TABLE t0(x, y, z); CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT); INSERT INTO t1 VALUES (CAST(unicode('你好') AS MEDIUMINT), '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 SELECT -99999999999999999999999999999999999999999999999999; SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***'; DROP TABLE t0; REINDEX; DELETE FROM t0 WHERE 1 RETURNING *; UPDATE t0 SET z = '' WHERE z BETWEEN 0 AND 100; SELECT * FROM t0 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1 WHERE b NOT IN (SELECT b FROM t1); DETACH DATABASE aux34; SELECT * FROM t1 AS a FULL OUTER JOIN t0 AS b ON a.rowid = b.rowid; ALTER TABLE t0 RENAME TO t0_r5353; ALTER TABLE t1 RENAME TO t1_r3388; PRAGMA short_column_names = YES; INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL); SELECT COUNT(*) FROM t1; CREATE TRIGGER IF NOT EXISTS trg_t0_3641 AFTER UPDATE ON t0 BEGIN SELECT RAISE(IGNORE); END; 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 t1; DETACH DATABASE aux96; 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 WITH RECURSIVE multi(a, b) AS (VALUES(1, 1.0) UNION ALL SELECT a+1, b*0.5 FROM multi WHERE a<38) SELECT * FROM multi; .eqp off PRAGMA count_changes = '|'; ATTACH DATABASE ':memory:' AS aux96; ATTACH DATABASE ':memory:' AS aux34; CREATE TEMPORARY TABLE t0(x, y, z); CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT); INSERT INTO t1 VALUES (CAST(unicode('你好') AS MEDIUMINT), '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 SELECT -99999999999999999999999999999999999999999999999999; SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***'; DROP TABLE t0; REINDEX; DELETE FROM t0 WHERE 1 RETURNING *; UPDATE t0 SET z = '' WHERE z BETWEEN 0 AND 100; SELECT * FROM t0 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1 WHERE b NOT IN (SELECT b FROM t1); DETACH DATABASE aux34; SELECT * FROM t1 AS a FULL OUTER JOIN t0 AS b ON a.rowid = b.rowid; ALTER TABLE t0 RENAME TO t0_r5353; ALTER TABLE t1 RENAME TO t1_r3388; PRAGMA short_column_names = YES; INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL); SELECT COUNT(*) FROM t1; CREATE TRIGGER IF NOT EXISTS trg_t0_3641 AFTER UPDATE ON t0 BEGIN SELECT RAISE(IGNORE); END; 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 t1; DETACH DATABASE aux96; 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 WITH RECURSIVE multi(a, b) AS (VALUES(1, 1.0) UNION ALL SELECT a+1, b*0.5 FROM multi WHERE a<38) SELECT * FROM multi; .eqp off PRAGMA count_changes = '|'; ATTACH DATABASE ':memory:' AS aux96; ATTACH DATABASE ':memory:' AS aux34; CREATE TEMPORARY TABLE t0(x, y, z); CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT); INSERT INTO t1 VALUES (CAST(unicode('你好') AS MEDIUMINT), '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 SELECT -99999999999999999999999999999999999999999999999999; SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***'; DROP TABLE t0; REINDEX; DELETE FROM t0 WHERE 1 RETURNING *; UPDATE t0 SET z = '' WHERE z BETWEEN 0 AND 100; SELECT * FROM t0 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1 WHERE b NOT IN (SELECT b FROM t1); DETACH DATABASE aux34; SELECT * FROM t1 AS a FULL OUTER JOIN t0 AS b ON a.rowid = b.rowid; ALTER TABLE t0 RENAME TO t0_r5353; ALTER TABLE t1 RENAME TO t1_r3388; PRAGMA short_column_names = YES; INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL); SELECT COUNT(*) FROM t1; CREATE TRIGGER IF NOT EXISTS trg_t0_3641 AFTER UPDATE ON t0 BEGIN SELECT RAISE(IGNORE); END; 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 t1; DETACH DATABASE aux96; 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 WITH RECURSIVE multi(a, b) AS (VALUES(1, 1.0) UNION ALL SELECT a+1, b*0.5 FROM multi WHERE a<38) SELECT * FROM multi; .eqp off PRAGMA count_changes = '|'; ATTACH DATABASE ':memory:' AS aux96; ATTACH DATABASE ':memory:' AS aux34; CREATE TEMPORARY TABLE t0(x, y, z); CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT); INSERT INTO t1 VALUES (CAST(unicode('你好') AS MEDIUMINT), '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 SELECT -99999999999999999999999999999999999999999999999999; SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***'; DROP TABLE t0; REINDEX; DELETE FROM t0 WHERE 1 RETURNING *; UPDATE t0 SET z = '' WHERE z BETWEEN 0 AND 100; SELECT * FROM t0 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1 WHERE b NOT IN (SELECT b FROM t1); DETACH DATABASE aux34; SELECT * FROM t1 AS a FULL OUTER JOIN t0 AS b ON a.rowid = b.rowid; ALTER TABLE t0 RENAME TO t0_r5353; ALTER TABLE t1 RENAME TO t1_r3388; PRAGMA short_column_names = YES; INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL); SELECT COUNT(*) FROM t1; CREATE TRIGGER IF NOT EXISTS trg_t0_3641 AFTER UPDATE ON t0 BEGIN SELECT RAISE(IGNORE); END; 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 t1; DETACH DATABASE aux96; 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 WITH RECURSIVE multi(a, b) AS (VALUES(1, 1.0) UNION ALL SELECT a+1, b*0.5 FROM multi WHERE a<38) SELECT * FROM multi; VACUUM main; CREATE INDEX IF NOT EXISTS idx_t1_5312 ON t1(d) WHERE d > 0; PRAGMA empty_result_callbacks = ON; REINDEX t0; CREATE UNIQUE INDEX IF NOT EXISTS idx_t0_7893 ON t0(lower(x)) WHERE x > 0; CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_2600 ON t1(b) WHERE b > 0; ALTER TABLE t0 RENAME COLUMN z TO z_r9903; ROLLBACK TO sp3272; RELEASE sp3272; SELECT * FROM t1 WHERE c IN (SELECT c FROM t1 LIMIT 0); VACUUM; ``` ## 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 ``` ```