## Summary **No review yet** ## Minimized query ```sql CREATE TEMPORARY TABLE t0(x, y, z); SELECT -99999999999999999999999999999999999999999999999999; SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***'; DROP TABLE t0; PRAGMA checkpoint_fullsync = YES; PRAGMA recursive_triggers = ON; PRAGMA defer_foreign_keys = OFF; .stats CREATE TABLE main.t1(a, b TEXT); CREATE UNIQUE INDEX IF NOT EXISTS x1 ON t1(b==log((-(-(-ifnull(('{' || ''), 'fallback'))) * (2.718281828459045 * 1)), 0)); CREATE INDEX IF NOT EXISTS x2 ON t1(a || 0) WHERE NOT b; INSERT INTO t1(a,b) VALUES('a',1),('a',0); SELECT a, b, '|' FROM t1; DROP INDEX IF EXISTS t1; WITH m AS MATERIALIZED (SELECT a FROM t1) SELECT * FROM m; UPDATE t1 SET a = CURRENT_TIMESTAMP WHERE a BETWEEN 0 AND 100 RETURNING *; SELECT LAG(a, 0) OVER (PARTITION BY a ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1; SELECT MAX(a) FROM t1; SELECT * FROM t1; VACUUM main; SELECT * FROM t1 WHERE b IN (SELECT b FROM t1 LIMIT 0); ALTER TABLE t1 RENAME TO t1_r2082; 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 VACUUM main; ALTER TABLE t1 DROP COLUMN a; ALTER TABLE t1 ADD COLUMN extra_4108 BIGINT; DELETE FROM t1 WHERE rowid = 7; .stats CREATE TABLE main.t1(a, b TEXT); CREATE UNIQUE INDEX IF NOT EXISTS x1 ON t1(b==log((-(-(-ifnull('{', 'fallback'))) * 1), 0)); CREATE INDEX IF NOT EXISTS x2 ON t1(a || 0) WHERE b; INSERT INTO t1(a,b) VALUES('a',1),('a',0); SELECT a, b, '|' FROM t1; DROP INDEX IF EXISTS t1; WITH m AS MATERIALIZED (SELECT a FROM t1) SELECT * FROM m; UPDATE t1 SET a = CURRENT_TIMESTAMP WHERE a BETWEEN 0 AND 100 RETURNING *; SELECT LAG(a, 0) OVER (PARTITION BY a ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1; SELECT MAX(a) FROM t1; SELECT * FROM t1; VACUUM main; SELECT * FROM t1 WHERE b IN (SELECT b FROM t1 LIMIT 0); ALTER TABLE t1 RENAME TO t1_r2082; 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 VACUUM main; ALTER TABLE t1 DROP COLUMN a; ALTER TABLE t1 ADD COLUMN extra_4108 BIGINT; DELETE FROM t1 WHERE rowid = 7; .stats CREATE TABLE main.t1(a, b TEXT); CREATE UNIQUE INDEX IF NOT EXISTS x1 ON t1(b==log((-(-(-ifnull('{', 'fallback'))) * 1), 0)); CREATE INDEX IF NOT EXISTS x2 ON t1(a || 0) WHERE b; INSERT INTO t1(a,b) VALUES('a',1),('a',0); SELECT a, b, '|' FROM t1; DROP INDEX IF EXISTS t1; WITH m AS MATERIALIZED (SELECT a FROM t1) SELECT * FROM m; UPDATE t1 SET a = CURRENT_TIMESTAMP WHERE a BETWEEN 0 AND 100 RETURNING *; SELECT LAG(a, 0) OVER (PARTITION BY a ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1; SELECT MAX(a) FROM t1; SELECT * FROM t1; VACUUM main; SELECT * FROM t1 WHERE b IN (SELECT b FROM t1 LIMIT 0); ALTER TABLE t1 RENAME TO t1_r2082; 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 VACUUM main; ALTER TABLE t1 DROP COLUMN a; ALTER TABLE t1 ADD COLUMN extra_4108 BIGINT; DELETE FROM t1 WHERE rowid = 7; .stats CREATE TABLE main.t1(a, b TEXT); CREATE UNIQUE INDEX IF NOT EXISTS x1 ON t1(b==log((-(-(-ifnull('{', 'fallback'))) * 1), 0)); CREATE INDEX IF NOT EXISTS x2 ON t1(a || 0) WHERE b; INSERT INTO t1(a,b) VALUES('a',1),('a',0); SELECT a, b, '|' FROM t1; DROP INDEX IF EXISTS t1; WITH m AS MATERIALIZED (SELECT a FROM t1) SELECT * FROM m; UPDATE t1 SET a = CURRENT_TIMESTAMP WHERE a BETWEEN 0 AND 100 RETURNING *; SELECT LAG(a, 0) OVER (PARTITION BY a ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1; SELECT MAX(a) FROM t1; SELECT * FROM t1; VACUUM main; SELECT * FROM t1 WHERE b IN (SELECT b FROM t1 LIMIT 0); ALTER TABLE t1 RENAME TO t1_r2082; 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 VACUUM main; ALTER TABLE t1 DROP COLUMN a; ALTER TABLE t1 ADD COLUMN extra_4108 BIGINT; DELETE FROM t1 WHERE rowid = 7; .stats CREATE TABLE main.t1(a, b TEXT); CREATE UNIQUE INDEX IF NOT EXISTS x1 ON t1(b==log((-(-(-ifnull('{', 'fallback'))) * 1), 0)); CREATE INDEX IF NOT EXISTS x2 ON t1(a || 0) WHERE b; INSERT INTO t1(a,b) VALUES('a',1),('a',0); SELECT a, b, '|' FROM t1; DROP INDEX IF EXISTS t1; WITH m AS MATERIALIZED (SELECT a FROM t1) SELECT * FROM m; UPDATE t1 SET a = CURRENT_TIMESTAMP WHERE a BETWEEN 0 AND 100 RETURNING *; SELECT LAG(a, 0) OVER (PARTITION BY a ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1; SELECT MAX(a) FROM t1; SELECT * FROM t1; VACUUM main; SELECT * FROM t1 WHERE b IN (SELECT b FROM t1 LIMIT 0); ALTER TABLE t1 RENAME TO t1_r2082; 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 VACUUM main; ALTER TABLE t1 DROP COLUMN a; ALTER TABLE t1 ADD COLUMN extra_4108 BIGINT; DELETE FROM t1 WHERE rowid = 7; .stats CREATE TABLE main.t1(a, b TEXT); CREATE UNIQUE INDEX IF NOT EXISTS x1 ON t1(b==log((-(-(-ifnull('{', 'fallback'))) * 1), 0)); CREATE INDEX IF NOT EXISTS x2 ON t1(a || 0) WHERE b; INSERT INTO t1(a,b) VALUES('a',1),('a',0); SELECT a, b, '|' FROM t1; DROP INDEX IF EXISTS t1; WITH m AS MATERIALIZED (SELECT a FROM t1) SELECT * FROM m; UPDATE t1 SET a = CURRENT_TIMESTAMP WHERE a BETWEEN 0 AND 100 RETURNING *; SELECT LAG(a, 0) OVER (PARTITION BY a ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1; SELECT MAX(a) FROM t1; SELECT * FROM t1; VACUUM main; SELECT * FROM t1 WHERE b IN (SELECT b FROM t1 LIMIT 0); ALTER TABLE t1 RENAME TO t1_r2082; 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 VACUUM main; ALTER TABLE t1 DROP COLUMN a; ALTER TABLE t1 ADD COLUMN extra_4108 BIGINT; DELETE FROM t1 WHERE rowid = 7; .stats CREATE TABLE main.t1(a, b TEXT); CREATE UNIQUE INDEX IF NOT EXISTS x1 ON t1(b==log((-(-(-ifnull('{', 'fallback'))) * 1), 0)); CREATE INDEX IF NOT EXISTS x2 ON t1(a || 0) WHERE b; INSERT INTO t1(a,b) VALUES('a',1),('a',0); SELECT a, b, '|' FROM t1; DROP INDEX IF EXISTS t1; WITH m AS MATERIALIZED (SELECT a FROM t1) SELECT * FROM m; UPDATE t1 SET a = CURRENT_TIMESTAMP WHERE a BETWEEN 0 AND 100 RETURNING *; SELECT LAG(a, 0) OVER (PARTITION BY a ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1; SELECT MAX(a) FROM t1; SELECT * FROM t1; VACUUM main; SELECT * FROM t1 WHERE b IN (SELECT b FROM t1 LIMIT 0); ALTER TABLE t1 RENAME TO t1_r2082; 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 VACUUM main; ALTER TABLE t1 DROP COLUMN a; ALTER TABLE t1 ADD COLUMN extra_4108 BIGINT; DELETE FROM t1 WHERE rowid = 7; .stats CREATE TABLE main.t1(a, b TEXT); CREATE UNIQUE INDEX IF NOT EXISTS x1 ON t1(b==log((-(-(-ifnull('{', 'fallback'))) * 1), 0)); CREATE INDEX IF NOT EXISTS x2 ON t1(a || 0) WHERE b; INSERT INTO t1(a,b) VALUES('a',1),('a',0); SELECT a, b, '|' FROM t1; DROP INDEX IF EXISTS t1; WITH m AS MATERIALIZED (SELECT a FROM t1) SELECT * FROM m; UPDATE t1 SET a = CURRENT_TIMESTAMP WHERE a BETWEEN 0 AND 100 RETURNING *; SELECT LAG(a, 0) OVER (PARTITION BY a ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1; SELECT MAX(a) FROM t1; SELECT * FROM t1; VACUUM main; SELECT * FROM t1 WHERE b IN (SELECT b FROM t1 LIMIT 0); ALTER TABLE t1 RENAME TO t1_r2082; 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 VACUUM main; ALTER TABLE t1 DROP COLUMN a; ALTER TABLE t1 ADD COLUMN extra_4108 BIGINT; DELETE FROM t1 WHERE rowid = 7; .stats CREATE TABLE main.t1(a, b TEXT); CREATE UNIQUE INDEX IF NOT EXISTS x1 ON t1(b==log((-(-(-ifnull('{', 'fallback'))) * 1), 0)); CREATE INDEX IF NOT EXISTS x2 ON t1(a || 0) WHERE b; INSERT INTO t1(a,b) VALUES('a',1),('a',0); SELECT a, b, '|' FROM t1; DROP INDEX IF EXISTS t1; WITH m AS MATERIALIZED (SELECT a FROM t1) SELECT * FROM m; UPDATE t1 SET a = CURRENT_TIMESTAMP WHERE a BETWEEN 0 AND 100 RETURNING *; SELECT LAG(a, 0) OVER (PARTITION BY a ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1; SELECT MAX(a) FROM t1; SELECT * FROM t1; VACUUM main; SELECT * FROM t1 WHERE b IN (SELECT b FROM t1 LIMIT 0); ALTER TABLE t1 RENAME TO t1_r2082; 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 VACUUM main; ALTER TABLE t1 DROP COLUMN a; ALTER TABLE t1 ADD COLUMN extra_4108 BIGINT; DELETE FROM t1 WHERE rowid = 7; INSERT INTO t1 SELECT * FROM t1; ALTER TABLE t1 ADD COLUMN extra_4216 NONE DEFAULT 0; VACUUM; UPDATE t1 SET c = '' WHERE 1; DELETE FROM t1 WHERE 0; CREATE TABLE T ( a INTEGER, b REAL, c REAL ); INSERT INTO T VALUES (1,1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0); SELECT * FROM T WHERE b < 2.0 ORDER BY b; ALTER TABLE T DROP COLUMN b; CREATE TEMPORARY VIEW IF NOT EXISTS v_T_2095 AS SELECT b FROM T; ALTER TABLE t1 DROP COLUMN a; CREATE TEMPORARY VIEW IF NOT EXISTS v_T_458 AS SELECT c FROM T; DROP VIEW IF /**/ EXISTS t1; ALTER TABLE t1 DROP COLUMN a; CREATE TEMP VIEW IF NOT EXISTS v_t1_5034 AS SELECT b FROM t1; VACUUM; ALTER TABLE t1 RENAME COLUMN d TO d_r911; ALTER TABLE T RENAME COLUMN a TO a_r4086; WITH RECURSIVE tree(id, parent, depth) AS (VALUES(1, NULL, 0) UNION ALL SELECT id+1, id, depth+1 FROM tree WHERE depth<49) SELECT * FROM tree; INSERT INTO t1 VALUES (1, NULL, 1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c; ALTER TABLE T ADD COLUMN extra_5333 UNSIGNED BIG INT DEFAULT CURRENT_TIMESTAMP; SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1; ``` ## Actual output ```sql -1.0e+50 Memory Used: 166384 (max 333760) bytes Number of Outstanding Allocations: 150 (max 183) Number of Pcache Overflow Bytes: 16672 (max 24880) bytes Largest Allocation: 87200 bytes Largest Pcache Allocation: 4360 bytes Lookaside Slots Used: 32 (max 88) Successful lookaside attempts: 261 Lookaside failures due to size: 1 Lookaside failures due to OOM: 0 Pager Heap Usage: 22808 bytes Page cache hits: 10 Page cache misses: 0 Page cache writes: 0 Page cache spills: 0 Schema Heap Usage: 760 bytes Statement Heap/Lookaside Usage: 0 bytes Bytes received by read(): 10665 Bytes sent to write(): 9 Read() system calls: 14 Write() system calls: 1 Bytes read from storage: 0 Bytes written to storage: 0 Cancelled write bytes: 0 a|1|| a|0|| a a a a a a|1 a|0 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 -1.0e+50 Memory Used: 167208 (max 334656) bytes Number of Outstanding Allocations: 160 (max 193) Number of Pcache Overflow Bytes: 16672 (max 24872) bytes Largest Allocation: 87360 bytes Largest Pcache Allocation: 4368 bytes Lookaside Slots Used: 48 (max 97) Successful lookaside attempts: 257 Lookaside failures due to size: 1 Lookaside failures due to OOM: 0 Pager Heap Usage: 22840 bytes Page cache hits: 10 Page cache misses: 0 Page cache writes: 0 Page cache spills: 0 Temporary data spilled to disk: 0 Schema Heap Usage: 640 bytes Statement Heap/Lookaside Usage: 0 bytes Bytes received by read(): 11229 Bytes sent to write(): 9 Read() system calls: 15 Write() system calls: 1 Bytes read from storage: 0 Bytes written to storage: 0 Cancelled write bytes: 0 a|1|| a|0|| a a a a a a|1 a|0 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 ``` -noheader ```