## Summary **No review yet** ## Minimized query ```sql PRAGMA function_list; CREATE TABLE T ( a INTEGER, b TEXT, c REAL, d REAL ); INSERT INTO T VALUES ('NaN','a',rtrim(x'2bbb99d8ec6252'),-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999); SELECT b FROM T WHERE ABS(c) > 5 AND ABS(d) > 5; PRAGMA cache_spill = ON; .explain off PRAGMA vdbe_trace = OFF; .timer off .cd bugs .limit COLUMN nan BEGIN IMMEDIATE TRANSACTION; PRAGMA cache_spill = NO; .system echo "mwahaha i am root" .check PRAGMA query_only = ON; PRAGMA integrity_check("users"); PRAGMA automatic_index = YES; PRAGMA query_only = OFF; .lint CREATE TABLE x(id integer primary key, a TEXT NULL); INSERT INTO x (a) VALUES (('first' || '')); CREATE TABLE tempx(id integer primary key, a TEXT NULL); INSERT INTO tempx (a) VALUES ('t-first'); CREATE VIEW tv1 AS WITH _m AS MATERIALIZED (SELECT * FROM x) SELECT _m.id, tx.id FROM x LEFT OUTER JOIN tempx tx ON tx.id=x.id; CREATE VIEW tv1b AS SELECT x.id, tx.id FROM x JOIN tempx tx on tx.id=x.id; CREATE VIEW tv2 AS SELECT * FROM tv1 UNION SELECT * FROM tv1b; SELECT * FROM tv2; VACUUM; SELECT MAX(id) FILTER (WHERE NOT NOT (NOT id IS NOT NULL) OVER (PARTITION BY id) ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING OR CURRENT ROW) FROM tempx; SELECT * FROM x AS a RIGHT JOIN tempx AS b ON a.rowid = b.rowid; INSERT INTO tempx DEFAULT VALUES; REINDEX x; SELECT COUNT(*) FILTER (WHERE id IS NOT NULL), SUM(rowid) FILTER (WHERE +id > sqlite_version()), COUNT(*) FILTER (WHERE acosh(min(nan, abs(-(-(pow(CAST(min(json_remove(json_array_length(max('', NULL), '$.arr'), '$.key'), '2', ceil('abc')) AS DOUBLE PRECISION), -coalesce(1, 2, 3))))), 3, 4, 5))=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(id) FILTER (WHERE +id > 0 AND id < 100), COUNT(*) FILTER (WHERE typeof(id) = "text") FROM x; PRAGMA query_only = ON; PRAGMA integrity_check("users"); PRAGMA automatic_index = YES; PRAGMA query_only = OFF; .lint CREATE TABLE x(id integer primary key, a TEXT NULL); INSERT INTO x (a) VALUES ('first'); CREATE TABLE tempx(id integer primary key, a TEXT NULL); INSERT INTO tempx (a) VALUES ('t-first'); CREATE VIEW tv1 AS SELECT x.id, tx.id FROM x JOIN tempx tx ON tx.id=x.id; CREATE VIEW tv1b AS SELECT x.id, tx.id FROM x JOIN tempx tx on tx.id=x.id; CREATE VIEW tv2 AS SELECT * FROM tv1 UNION SELECT * FROM tv1b; SELECT * FROM tv2; VACUUM; SELECT MAX(id) FILTER (WHERE id IS NOT NULL) OVER (PARTITION BY id ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM tempx; SELECT * FROM x AS a RIGHT JOIN tempx AS b ON a.rowid = b.rowid; INSERT INTO tempx DEFAULT VALUES; REINDEX x; SELECT COUNT(*) FILTER (WHERE id IS NOT NULL), SUM(rowid) FILTER (WHERE +id > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(id) FILTER (WHERE id > 0 AND id < 100), COUNT(*) FILTER (WHERE typeof(id) = "text") FROM x; PRAGMA query_only = ON; PRAGMA integrity_check("users"); PRAGMA automatic_index = YES; PRAGMA query_only = OFF; .lint CREATE TABLE x(id integer primary key, a TEXT NULL); INSERT INTO x (a) VALUES ('first'); CREATE TABLE tempx(id integer primary key, a TEXT NULL); INSERT INTO tempx (a) VALUES ('t-first'); CREATE VIEW tv1 AS SELECT x.id, tx.id FROM x JOIN tempx tx ON tx.id=x.id; CREATE VIEW tv1b AS SELECT x.id, tx.id FROM x JOIN tempx tx on tx.id=x.id; CREATE VIEW tv2 AS SELECT * FROM tv1 UNION SELECT * FROM tv1b; SELECT * FROM tv2; VACUUM; SELECT MAX(id) FILTER (WHERE id IS NOT NULL) OVER (PARTITION BY id ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM tempx; SELECT * FROM x AS a RIGHT JOIN tempx AS b ON a.rowid = b.rowid; INSERT INTO tempx DEFAULT VALUES; REINDEX x; SELECT COUNT(*) FILTER (WHERE id IS NOT NULL), SUM(rowid) FILTER (WHERE id > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(id) FILTER (WHERE id > 0 AND id < 100), COUNT(*) FILTER (WHERE typeof(id) = "text") FROM x; PRAGMA query_only = ON; PRAGMA integrity_check("users"); PRAGMA automatic_index = YES; PRAGMA query_only = OFF; .lint CREATE TABLE x(id integer primary key, a TEXT NULL); INSERT INTO x (a) VALUES ('first'); CREATE TABLE tempx(id integer primary key, a TEXT NULL); INSERT INTO tempx (a) VALUES ('t-first'); CREATE VIEW tv1 AS SELECT x.id, tx.id FROM x JOIN tempx tx ON tx.id=x.id; CREATE VIEW tv1b AS SELECT x.id, tx.id FROM x JOIN tempx tx on tx.id=x.id; CREATE VIEW tv2 AS SELECT * FROM tv1 UNION SELECT * FROM tv1b; SELECT * FROM tv2; VACUUM; SELECT MAX(id) FILTER (WHERE id IS NOT NULL) OVER (PARTITION BY id ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM tempx; SELECT * FROM x AS a RIGHT JOIN tempx AS b ON a.rowid = b.rowid; INSERT INTO tempx DEFAULT VALUES; REINDEX x; SELECT COUNT(*) FILTER (WHERE id IS NOT NULL), SUM(rowid) FILTER (WHERE id > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(id) FILTER (WHERE id > 0 AND id < 100), COUNT(*) FILTER (WHERE typeof(id) = "text") FROM x; PRAGMA query_only = ON; PRAGMA integrity_check("users"); PRAGMA automatic_index = YES; PRAGMA query_only = OFF; .lint CREATE TABLE x(id integer primary key, a TEXT NULL); INSERT INTO x (a) VALUES ('first'); CREATE TABLE tempx(id integer primary key, a TEXT NULL); /* log({v}) */ INSERT INTO tempx (a) VALUES ('t-first'); CREATE VIEW tv1 AS SELECT x.id, tx.id FROM x JOIN tempx tx ON tx.id=x.id; CREATE VIEW tv1b AS SELECT x.id, tx.id FROM x JOIN tempx tx on tx.id=x.id; CREATE VIEW tv2 AS SELECT * FROM tv1 UNION SELECT * FROM tv1b; SELECT * FROM tv2; VACUUM; SELECT MAX(id) FILTER (WHERE id IS NOT NULL) OVER (PARTITION BY id ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM tempx; SELECT * FROM x AS a RIGHT JOIN tempx AS b ON a.rowid = b.rowid; INSERT INTO tempx DEFAULT VALUES; REINDEX x; SELECT COUNT(*) FILTER (WHERE id IS NOT NULL), SUM(rowid) FILTER (WHERE id > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(id) FILTER (WHERE id > 0 AND id < 100), COUNT(*) FILTER (WHERE typeof(id) = "text") FROM x; PRAGMA query_only = ON; PRAGMA integrity_check("users"); PRAGMA automatic_index = YES; PRAGMA query_only = OFF; .lint CREATE TABLE x(id integer primary key, a TEXT NULL); INSERT INTO x (a) VALUES ('first'); CREATE TABLE tempx(id integer primary key, a TEXT NULL); INSERT INTO tempx (a) VALUES ('t-first'); CREATE VIEW tv1 AS SELECT x.id, tx.id FROM x JOIN tempx tx ON tx.id=x.id; CREATE VIEW tv1b AS SELECT x.id, tx.id FROM x JOIN tempx tx on tx.id=x.id; CREATE VIEW tv2 AS SELECT * FROM tv1 UNION SELECT * FROM tv1b; SELECT * FROM tv2; VACUUM; SELECT MAX(id) FILTER (WHERE id IS NOT NULL) OVER (PARTITION BY id ORDER BY id /* PRAGMA parser_trace = ON; */ ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM tempx; SELECT * FROM x AS a RIGHT JOIN tempx AS b ON a.rowid = b.rowid; INSERT INTO tempx DEFAULT VALUES; REINDEX x; SELECT COUNT(*) FILTER (WHERE id IS NOT NULL), SUM(rowid) FILTER (WHERE id > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(id) FILTER (WHERE id > 0 AND id < 100), COUNT(*) FILTER (WHERE typeof(id) = "text") FROM x; PRAGMA query_only = ON; PRAGMA integrity_check("users"); PRAGMA automatic_index = YES; PRAGMA query_only = OFF; .lint CREATE TABLE x(id integer primary key, a TEXT NULL); INSERT INTO x (a) VALUES ('first'); CREATE TABLE tempx(id integer primary key, a TEXT NULL); INSERT INTO tempx (a) VALUES ('t-first'); CREATE VIEW tv1 AS SELECT x.id, tx.id FROM x JOIN tempx tx ON tx.id=x.id; CREATE VIEW tv1b AS SELECT x.id, tx.id FROM x JOIN tempx tx on tx.id=x.id; CREATE VIEW tv2 AS SELECT * FROM tv1 UNION SELECT * FROM tv1b; SELECT * FROM tv2; VACUUM; SELECT MAX(id) FILTER (WHERE id IS NOT NULL) OVER (PARTITION BY id ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM tempx; SELECT * FROM x AS a RIGHT JOIN tempx AS b ON a.rowid = b.rowid; INSERT INTO tempx DEFAULT VALUES; REINDEX x; SELECT COUNT(*) FILTER (WHERE id IS NOT NULL), SUM(rowid) FILTER (WHERE id > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(id) FILTER (WHERE id > 0 AND id < 100), COUNT(*) FILTER (WHERE typeof(id) = "text") FROM x; PRAGMA query_only = ON; PRAGMA integrity_check("users"); PRAGMA automatic_index = YES; PRAGMA query_only = OFF; .lint CREATE TABLE x(id integer primary key, a TEXT NULL); INSERT INTO x (a) VALUES ('first'); CREATE TABLE tempx(id integer primary key, a TEXT NULL); INSERT INTO tempx (a) VALUES ('t-first'); CREATE VIEW tv1 AS SELECT x.id, tx.id FROM x JOIN tempx tx ON tx.id=x.id; CREATE VIEW tv1b AS SELECT x.id, tx.id FROM x JOIN tempx tx on tx.id=x.id; CREATE VIEW tv2 AS SELECT * FROM tv1 UNION SELECT * FROM tv1b; SELECT * FROM tv2; VACUUM; SELECT MAX(id) FILTER (WHERE id IS NOT NULL) OVER (PARTITION BY id ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM tempx; SELECT * FROM x AS a RIGHT JOIN tempx AS b ON a.rowid = b.rowid; INSERT INTO tempx DEFAULT VALUES; 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; REINDEX x; SELECT COUNT(*) FILTER (WHERE id IS NOT NULL), SUM(rowid) FILTER (WHERE id > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(id) FILTER (WHERE id > 0 AND id < 100), COUNT(*) FILTER (WHERE typeof(id) = "text") FROM x; ANALYZE tempx; SELECT COUNT(*) FROM x; INSERT INTO x SELECT * FROM x; SELECT * FROM x; INSERT INTO x SELECT * FROM x; CREATE INDEX IF NOT EXISTS idx_tempx_8725 ON tempx(id) WHERE id IS NOT NULL; SELECT * FROM x AS a LEFT JOIN tempx AS b ON a.rowid = b.rowid; PRAGMA cache_spill = NO; .system echo "mwahaha i am root" .check PRAGMA query_only = ON; PRAGMA integrity_check("users"); PRAGMA automatic_index = YES; PRAGMA query_only = OFF; .lint CREATE TABLE x(id integer primary key, a TEXT NULL); INSERT INTO x (a) VALUES ('first'); CREATE TABLE tempx(id integer primary key, a TEXT NULL); INSERT INTO tempx (a) VALUES ('t-first'); CREATE VIEW tv1 AS SELECT x.id, tx.id FROM x JOIN tempx tx ON tx.id=x.id; CREATE VIEW tv1b AS SELECT x.id, tx.id FROM x JOIN tempx tx on tx.id=x.id; CREATE VIEW tv2 AS SELECT * FROM tv1 UNION SELECT * FROM tv1b; SELECT * FROM tv2; VACUUM; SELECT MAX(id) FILTER (WHERE id IS NOT NULL) OVER (PARTITION BY id ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM tempx; SELECT * FROM x AS a RIGHT JOIN tempx AS b ON a.rowid = b.rowid; INSERT INTO tempx DEFAULT VALUES; REINDEX x; SELECT COUNT(*) FILTER (WHERE id IS NOT NULL), SUM(rowid) FILTER (WHERE id > sqlite_version()), COUNT(*) FILTER (WHERE acosh(min(nan, abs(0), 3, 4, 5))=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(id) FILTER (WHERE id > 0 AND id < 100), COUNT(*) FILTER (WHERE typeof(id) = "text") FROM x; PRAGMA query_only = ON; PRAGMA integrity_check("users"); PRAGMA automatic_index = YES; PRAGMA query_only = OFF; .lint CREATE TABLE x(id integer primary key, a TEXT NULL); INSERT INTO x (a) VALUES ('first'); CREATE TABLE tempx(id integer primary key, a TEXT NULL); INSERT INTO tempx (a) VALUES ('t-first'); CREATE VIEW tv1 AS SELECT x.id, tx.id FROM x JOIN tempx tx ON tx.id=x.id; CREATE VIEW tv1b AS SELECT x.id, tx.id FROM x JOIN tempx tx on tx.id=x.id; CREATE VIEW tv2 AS SELECT * FROM tv1 UNION SELECT * FROM tv1b; SELECT * FROM tv2; VACUUM; SELECT MAX(id) FILTER (WHERE id IS NOT NULL) OVER (PARTITION BY id ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM tempx; SELECT * FROM x AS a RIGHT JOIN tempx AS b ON a.rowid = b.rowid; INSERT INTO tempx DEFAULT VALUES; REINDEX x; SELECT COUNT(*) FILTER (WHERE id IS NOT NULL), SUM(rowid) FILTER (WHERE id > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(id) FILTER (WHERE id > 0 AND id < 100), COUNT(*) FILTER (WHERE typeof(id) = "text") FROM x; PRAGMA query_only = ON; PRAGMA integrity_check("users"); PRAGMA automatic_index = YES; PRAGMA query_only = OFF; .lint CREATE TABLE x(id integer primary key, a TEXT NULL); INSERT INTO x (a) VALUES ('first'); CREATE TABLE tempx(id integer primary key, a TEXT NULL); INSERT INTO tempx (a) VALUES ('t-first'); CREATE VIEW tv1 AS SELECT x.id, tx.id FROM x JOIN tempx tx ON tx.id=x.id; CREATE VIEW tv1b AS SELECT x.id, tx.id FROM x JOIN tempx tx on tx.id=x.id; CREATE VIEW tv2 AS SELECT * FROM tv1 UNION SELECT * FROM tv1b; SELECT * FROM tv2; VACUUM; SELECT MAX(id) FILTER (WHERE id IS NOT NULL) OVER (PARTITION BY id ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM tempx; SELECT * FROM x AS a RIGHT JOIN tempx AS b ON a.rowid = b.rowid; INSERT INTO tempx DEFAULT VALUES; REINDEX x; SELECT COUNT(*) FILTER (WHERE id IS NOT NULL), SUM(rowid) FILTER (WHERE id > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(id) FILTER (WHERE id > 0 AND id < 100), COUNT(*) FILTER (WHERE typeof(id) = "text") FROM x; PRAGMA query_only = ON; PRAGMA integrity_check("users"); PRAGMA automatic_index = YES; PRAGMA query_only = OFF; .lint CREATE TABLE x(id integer primary key, a TEXT NULL); INSERT INTO x (a) VALUES ('first'); CREATE TABLE tempx(id integer primary key, a TEXT NULL); INSERT INTO tempx (a) VALUES ('t-first'); CREATE VIEW tv1 AS SELECT x.id, tx.id FROM x JOIN tempx tx ON tx.id=x.id; CREATE TABLE T ( a INTEGER, b TEXT, c REAL ); INSERT INTO T VALUES (1,'a',1.25), (2,'b',-3.5), (3,'c',0.0); SELECT * FROM T WHERE c < 2.0 ORDER BY c; CREATE VIEW tv1b AS SELECT x.id, tx.id FROM x JOIN tempx tx on tx.id=x.id; CREATE VIEW tv2 AS SELECT * FROM tv1 UNION SELECT * FROM tv1b; SELECT * FROM tv2; VACUUM; SELECT MAX(id) FILTER (WHERE id IS NOT NULL) OVER (PARTITION BY id ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM tempx; SELECT * FROM x AS a RIGHT JOIN tempx AS b ON a.rowid = b.rowid; INSERT INTO tempx DEFAULT VALUES; REINDEX x; SELECT COUNT(*) FILTER (WHERE id IS NOT NULL), SUM(rowid) FILTER (WHERE id > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(id) FILTER (WHERE id > 0 AND id < 100), COUNT(*) FILTER (WHERE typeof(id) = "text") FROM x; PRAGMA query_only = ON; PRAGMA integrity_check("users"); PRAGMA automatic_index = YES; PRAGMA query_only = OFF; .lint CREATE TABLE x(id integer primary key, a TEXT NULL); INSERT INTO x (a) VALUES ('first'); CREATE TABLE tempx(id integer primary key, a TEXT NULL); INSERT INTO tempx (a) VALUES ('t-first'); CREATE VIEW tv1 AS SELECT x.id, tx.id FROM x JOIN tempx tx ON tx.id=x.id; CREATE VIEW tv1b AS SELECT x.id, tx.id FROM x JOIN tempx tx on tx.id=x.id; CREATE VIEW tv2 AS SELECT * FROM tv1 UNION SELECT * FROM tv1b; SELECT * FROM tv2; VACUUM; SELECT MAX(id) FILTER (WHERE id IS NOT NULL) OVER (PARTITION BY id ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM tempx; SELECT * FROM x AS a RIGHT JOIN tempx AS b ON a.rowid = b.rowid; INSERT INTO tempx DEFAULT VALUES; REINDEX x; SELECT COUNT(*) FILTER (WHERE id IS NOT NULL), SUM(rowid) FILTER (WHERE id > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(id) FILTER (WHERE id > 0 AND id < 100), COUNT(*) FILTER (WHERE typeof(id) = "text") FROM x; PRAGMA query_only = ON; PRAGMA integrity_check("users"); PRAGMA automatic_index = YES; PRAGMA query_only = OFF; .lint CREATE TABLE x(id integer primary key, a TEXT NULL); INSERT INTO x (a) VALUES ('first'); CREATE TABLE tempx(id integer primary key, a TEXT NULL); INSERT INTO tempx (a) VALUES ('t-first'); CREATE VIEW tv1 AS SELECT x.id, tx.id FROM x JOIN tempx tx ON tx.id=x.id; CREATE VIEW tv1b AS SELECT x.id, tx.id FROM x JOIN tempx tx on tx.id=x.id; CREATE VIEW tv2 AS SELECT * FROM tv1 UNION SELECT * FROM tv1b; SELECT * FROM tv2; VACUUM; SELECT MAX(id) FILTER (WHERE id IS NOT NULL) OVER (PARTITION BY id ORDER BY id /* PRAGMA parser_trace = ON; */ ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM tempx; SELECT * FROM x AS a RIGHT JOIN tempx AS b ON a.rowid = b.rowid; INSERT INTO tempx DEFAULT VALUES; REINDEX x; SELECT COUNT(*) FILTER (WHERE id IS NOT NULL), SUM(rowid) FILTER (WHERE id > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(id) FILTER (WHERE id > 0 AND id < 100), COUNT(*) FILTER (WHERE typeof(id) = "text") FROM x; PRAGMA query_only = ON; PRAGMA integrity_check("users"); PRAGMA automatic_index = YES; PRAGMA query_only = OFF; .lint CREATE TABLE x(id integer primary key, a TEXT NULL); INSERT INTO x (a) VALUES ('first'); CREATE TABLE tempx(id integer primary key, a TEXT NULL); INSERT INTO tempx (a) VALUES ('t-first'); CREATE VIEW tv1 AS SELECT x.id, tx.id FROM x JOIN tempx tx ON tx.id=x.id; CREATE VIEW tv1b AS SELECT x.id, tx.id FROM x JOIN tempx tx on tx.id=x.id; CREATE VIEW tv2 AS SELECT * FROM tv1 UNION SELECT * FROM tv1b; SELECT * FROM tv2; VACUUM; SELECT MAX(id) FILTER (WHERE id IS NOT NULL) OVER (PARTITION BY id ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM tempx; SELECT * FROM x AS a RIGHT JOIN tempx AS b ON a.rowid = b.rowid; INSERT INTO tempx DEFAULT VALUES; REINDEX x; SELECT COUNT(*) FILTER (WHERE id IS NOT NULL), SUM(rowid) FILTER (WHERE id > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(id) FILTER (WHERE id > 0 AND id < 100), COUNT(*) FILTER (WHERE typeof(id) = "text") FROM x; PRAGMA query_only = ON; PRAGMA integrity_check("users"); PRAGMA automatic_index = YES; PRAGMA query_only = OFF; .lint CREATE TABLE x(id integer primary key, a TEXT NULL); INSERT INTO x (a) VALUES ('first'); CREATE TABLE tempx(id integer primary key, a TEXT NULL); INSERT INTO tempx (a) VALUES ('t-first'); CREATE VIEW tv1 AS SELECT x.id, tx.id FROM x JOIN tempx tx ON tx.id=x.id; CREATE VIEW tv1b AS SELECT x.id, tx.id FROM x JOIN tempx tx on tx.id=x.id; CREATE VIEW tv2 AS SELECT * FROM tv1 UNION SELECT * FROM tv1b; SELECT * FROM tv2; VACUUM; SELECT MAX(id) FILTER (WHERE id IS NOT NULL) OVER (PARTITION BY id ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM tempx; SELECT * FROM x AS a RIGHT JOIN tempx AS b ON a.rowid = b.rowid; INSERT INTO tempx DEFAULT VALUES; REINDEX x; SELECT COUNT(*) FILTER (WHERE id IS NOT NULL), SUM(rowid) FILTER (WHERE id > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(id) FILTER (WHERE id > 0 AND id < 100), COUNT(*) FILTER (WHERE typeof(id) = "text") FROM x; ANALYZE tempx; SELECT COUNT(*) FROM x; INSERT INTO x SELECT * FROM x; SELECT * FROM x; INSERT INTO x SELECT * FROM x; CREATE INDEX IF NOT EXISTS idx_tempx_8725 ON tempx(id) WHERE id IS NOT NULL; SELECT * FROM x AS a LEFT JOIN tempx AS b ON a.rowid = b.rowid; PRAGMA cache_spill = NO; .system echo "mwahaha i am root" .check PRAGMA query_only = ON; PRAGMA integrity_check("users"); PRAGMA automatic_index = YES; PRAGMA query_only = OFF; .lint CREATE TABLE x(id integer primary key, a TEXT NULL); INSERT INTO x (a) VALUES ('first'); CREATE TABLE tempx(id integer primary key, a TEXT NULL); INSERT INTO tempx (a) VALUES ('t-first'); CREATE VIEW tv1 AS SELECT x.id, tx.id FROM x JOIN tempx tx ON tx.id=x.id; CREATE VIEW tv1b AS SELECT x.id, tx.id FROM x JOIN tempx tx on tx.id=x.id; CREATE VIEW tv2 AS SELECT * FROM tv1 UNION SELECT * FROM tv1b; SELECT * FROM tv2; VACUUM; SELECT MAX(id) FILTER (WHERE id IS NOT NULL) OVER (PARTITION BY id ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM tempx; SELECT * FROM x AS a RIGHT JOIN tempx AS b ON a.rowid = b.rowid; INSERT INTO tempx DEFAULT VALUES; REINDEX x; SELECT COUNT(*) FILTER (WHERE id IS NOT NULL), SUM(rowid) FILTER (WHERE id > sqlite_version()), COUNT(*) FILTER (WHERE acosh(min(nan, abs(0), 3, 4, 5))=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(id) FILTER (WHERE id > 0 AND id < 100), COUNT(*) FILTER (WHERE typeof(id) = "text") FROM x; PRAGMA query_only = ON; PRAGMA integrity_check("users"); PRAGMA automatic_index = YES; PRAGMA query_only = OFF; .lint CREATE TABLE x(id integer primary key, a TEXT NULL); INSERT INTO x (a) VALUES ('first'); CREATE TABLE tempx(id integer primary key, a TEXT NULL); INSERT INTO tempx (a) VALUES ('t-first'); CREATE VIEW tv1 AS SELECT x.id, tx.id FROM x JOIN tempx tx ON tx.id=x.id; CREATE VIEW tv1b AS SELECT x.id, tx.id FROM x JOIN tempx tx on tx.id=x.id; CREATE VIEW tv2 AS SELECT * FROM tv1 UNION SELECT * FROM tv1b; SELECT * FROM tv2; VACUUM; SELECT MAX(id) FILTER (WHERE id IS NOT NULL) OVER (PARTITION BY id ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM tempx; SELECT * FROM x AS a RIGHT JOIN tempx AS b ON a.rowid = b.rowid; INSERT INTO tempx DEFAULT VALUES; REINDEX x; SELECT COUNT(*) FILTER (WHERE id IS NOT NULL), SUM(rowid) FILTER (WHERE id > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(id) FILTER (WHERE id > 0 AND id < 100), COUNT(*) FILTER (WHERE typeof(id) = "text") FROM x; PRAGMA query_only = ON; PRAGMA integrity_check("users"); PRAGMA automatic_index = YES; PRAGMA query_only = OFF; .lint CREATE TABLE x(id integer primary key, a TEXT NULL); INSERT INTO x (a) VALUES ('first'); CREATE TABLE tempx(id integer primary key, a TEXT NULL); INSERT INTO tempx (a) VALUES ('t-first'); CREATE VIEW tv1 AS SELECT x.id, tx.id FROM x JOIN tempx tx ON tx.id=x.id; CREATE VIEW tv1b AS SELECT x.id, tx.id FROM x JOIN tempx tx on tx.id=x.id; CREATE VIEW tv2 AS SELECT * FROM tv1 UNION SELECT * FROM tv1b; SELECT * FROM tv2; VACUUM; SELECT MAX(id) FILTER (WHERE id IS NOT NULL) OVER (PARTITION BY id ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM tempx; SELECT * FROM x AS a RIGHT JOIN tempx AS b ON a.rowid = b.rowid; INSERT INTO tempx DEFAULT VALUES; REINDEX x; SELECT COUNT(*) FILTER (WHERE id IS NOT NULL), SUM(rowid) FILTER (WHERE id > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(id) FILTER (WHERE id > 0 AND id < 100), COUNT(*) FILTER (WHERE typeof(id) = "text") FROM x; PRAGMA query_only = ON; PRAGMA integrity_check("users"); PRAGMA automatic_index = YES; PRAGMA query_only = OFF; .lint CREATE TABLE x(id integer primary key, a TEXT NULL); INSERT INTO x (a) VALUES ('first'); CREATE TABLE tempx(id integer primary key, a TEXT NULL); INSERT INTO tempx (a) VALUES ('t-first'); CREATE VIEW tv1 AS SELECT x.id, tx.id FROM x JOIN tempx tx ON tx.id=x.id; CREATE VIEW tv1b AS SELECT x.id, tx.id FROM x JOIN tempx tx on tx.id=x.id; CREATE VIEW tv2 AS SELECT * FROM tv1 UNION SELECT * FROM tv1b; SELECT * FROM tv2; VACUUM; SELECT MAX(id) FILTER (WHERE id IS NOT NULL) OVER (PARTITION BY id ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM tempx; SELECT * FROM x AS a RIGHT JOIN tempx AS b ON a.rowid = b.rowid; INSERT INTO tempx DEFAULT VALUES; REINDEX x; SELECT COUNT(*) FILTER (WHERE id IS NOT NULL), SUM(rowid) FILTER (WHERE id > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(id) FILTER (WHERE id > 0 AND id < 100), COUNT(*) FILTER (WHERE typeof(id) = "text") FROM x; PRAGMA query_only = ON; PRAGMA integrity_check("users"); PRAGMA automatic_index = YES; PRAGMA query_only = OFF; .lint CREATE TABLE x(id integer primary key, a TEXT NULL); INSERT INTO x (a) VALUES ('first'); CREATE TABLE tempx(id integer primary key, a TEXT NULL); INSERT INTO tempx (a) VALUES ('t-first'); CREATE VIEW tv1 AS SELECT x.id, tx.id FROM x JOIN tempx tx ON tx.id=x.id; CREATE VIEW tv1b AS SELECT x.id, tx.id FROM x JOIN tempx tx on tx.id=x.id; CREATE VIEW tv2 AS SELECT * FROM tv1 UNION SELECT * FROM tv1b; SELECT * FROM tv2; VACUUM; SELECT MAX(id) FILTER (WHERE id IS NOT NULL) OVER (PARTITION BY id ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM tempx; SELECT * FROM x AS a RIGHT JOIN tempx AS b ON a.rowid = b.rowid; INSERT INTO tempx DEFAULT VALUES; REINDEX x; SELECT COUNT(*) FILTER (WHERE id IS NOT NULL), SUM(rowid) FILTER (WHERE id > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(id) FILTER (WHERE id > 0 AND id < 100), COUNT(*) FILTER (WHERE typeof(id) = "text") FROM x; PRAGMA query_only = ON; PRAGMA integrity_check("users"); PRAGMA automatic_index = YES; PRAGMA query_only = OFF; .lint CREATE TABLE x(id integer primary key, a TEXT NULL); INSERT INTO x (a) VALUES ('first'); CREATE TABLE tempx(id integer primary key, a TEXT NULL); INSERT INTO tempx (a) VALUES ('t-first'); CREATE VIEW tv1 AS SELECT x.id, tx.id FROM x JOIN tempx tx ON tx.id=x.id; CREATE VIEW tv1b AS SELECT x.id, tx.id FROM x JOIN tempx tx on tx.id=x.id; CREATE VIEW tv2 AS SELECT * FROM tv1 UNION SELECT * FROM tv1b; SELECT * FROM tv2; VACUUM; SELECT MAX(id) FILTER (WHERE id IS NOT NULL) OVER (PARTITION BY id ORDER BY id /* PRAGMA parser_trace = ON; */ ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM tempx; SELECT * FROM x AS a RIGHT JOIN tempx AS b ON a.rowid = b.rowid; INSERT INTO tempx DEFAULT VALUES; REINDEX x; SELECT COUNT(*) FILTER (WHERE id IS NOT NULL), SUM(rowid) FILTER (WHERE id > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(id) FILTER (WHERE id > 0 AND id < 100), COUNT(*) FILTER (WHERE typeof(id) = "text") FROM x; PRAGMA query_only = ON; PRAGMA integrity_check("users"); PRAGMA automatic_index = YES; PRAGMA query_only = OFF; .lint CREATE TABLE x(id integer primary key, a TEXT NULL); INSERT INTO x (a) VALUES ('first'); CREATE TABLE tempx(id integer primary key, a TEXT NULL); INSERT INTO tempx (a) VALUES ('t-first'); CREATE VIEW tv1 AS SELECT x.id, tx.id FROM x JOIN tempx tx ON tx.id=x.id; CREATE VIEW tv1b AS SELECT x.id, tx.id FROM x JOIN tempx tx on tx.id=x.id; CREATE VIEW tv2 AS SELECT * FROM tv1 UNION SELECT * FROM tv1b; SELECT * FROM tv2; VACUUM; SELECT MAX(id) FILTER (WHERE id IS NOT NULL) OVER (PARTITION BY id ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM tempx; SELECT * FROM x AS a RIGHT JOIN tempx AS b ON a.rowid = b.rowid; INSERT INTO tempx DEFAULT VALUES; REINDEX x; SELECT COUNT(*) FILTER (WHERE id IS NOT NULL), SUM(rowid) FILTER (WHERE id > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(id) FILTER (WHERE id > 0 AND id < 100), COUNT(*) FILTER (WHERE typeof(id) = "text") FROM x; PRAGMA query_only = ON; PRAGMA integrity_check("users"); PRAGMA automatic_index = YES; PRAGMA query_only = OFF; .lint CREATE TABLE x(id integer primary key, a TEXT NULL); INSERT INTO x (a) VALUES ('first'); CREATE TABLE tempx(id integer primary key, a TEXT NULL); INSERT INTO tempx (a) VALUES ('t-first'); CREATE VIEW tv1 AS SELECT x.id, tx.id FROM x JOIN tempx tx ON tx.id=x.id; CREATE VIEW tv1b AS SELECT x.id, tx.id FROM x JOIN tempx tx on tx.id=x.id; CREATE VIEW tv2 AS SELECT * FROM tv1 UNION SELECT * FROM tv1b; SELECT * FROM tv2; VACUUM; SELECT MAX(id) FILTER (WHERE id IS NOT NULL) OVER (PARTITION BY id ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM tempx; SELECT * FROM x AS a RIGHT JOIN tempx AS b ON a.rowid = b.rowid; INSERT INTO tempx DEFAULT VALUES; REINDEX x; SELECT COUNT(*) FILTER (WHERE id IS NOT NULL), SUM(rowid) FILTER (WHERE id > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(id) FILTER (WHERE id > 0 AND id < 100), COUNT(*) FILTER (WHERE typeof(id) = "text") FROM x; ANALYZE tempx; SELECT COUNT(*) FROM x; INSERT INTO x SELECT * FROM x; SELECT * FROM x; INSERT INTO x SELECT * FROM x; CREATE INDEX IF NOT EXISTS idx_tempx_8725 ON tempx(id) WHERE id IS NOT NULL; SELECT * FROM x AS a LEFT JOIN tempx AS b ON a.rowid = b.rowid; INSERT INTO x SELECT * FROM x; SELECT PERCENT_RANK() OVER (PARTITION BY a ORDER BY a RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM x; SELECT MIN(a) FROM x; SELECT * FROM tempx WHERE a NOT IN (SELECT a FROM tempx WHERE a IS NOT NULL); SELECT COUNT(*) FROM tempx; END TRANSACTION; SELECT COUNT(*) FROM x; INSERT INTO tempx DEFAULT VALUES; INSERT INTO tempx DEFAULT VALUES; PRAGMA database_list; SELECT COUNT(*) FROM x; UPDATE x SET id = id + 1 WHERE 1 RETURNING *; REINDEX; WITH cte AS (SELECT * FROM x) SELECT * FROM cte; ALTER TABLE tempx DROP COLUMN id; 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 tempx; SELECT * FROM tempx AS a RIGHT JOIN x AS b ON a.rowid = b.rowid; INSERT INTO tempx VALUES (NULL, NULL); DROP TRIGGER IF EXISTS x; SELECT GROUP_CONCAT(a, a) OVER (PARTITION BY a ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM tempx; DELETE FROM tempx WHERE rowid = 98; SELECT SUM(a) FROM tempx; SELECT * FROM tempx WHERE a IN (SELECT a FROM tempx WHERE a IS NOT NULL); SELECT * FROM tempx WHERE EXISTS (SELECT 1 FROM tempx t2 WHERE t2.id = tempx.id); INSERT INTO tempx VALUES (1, 'x') ON CONFLICT(id) DO UPDATE SET id = excluded.id, a = excluded.a; INSERT INTO x VALUES (NULL, NULL); INSERT INTO x VALUES (1, NULL) ON CONFLICT(id) DO UPDATE SET id = excluded.id, a = excluded.a; SELECT * FROM tempx AS a FULL JOIN x AS b ON a.rowid = b.rowid; 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 x; INSERT OR REPLACE INTO tempx VALUES (NULL, ''); INSERT INTO tempx VALUES (NULL, NULL); DELETE FROM x WHERE 0; PRAGMA foreign_keys = 0; ALTER TABLE x DROP COLUMN id; DROP TRIGGER IF EXISTS x; SELECT * FROM x AS a LEFT JOIN x AS b ON a.rowid = b.rowid; INSERT INTO tempx SELECT * FROM tempx; INSERT INTO x DEFAULT VALUES; SELECT AVG(id) FROM x; UPDATE tempx SET id = id + 1 WHERE id IS NOT NULL; SELECT * FROM tempx AS a JOIN tempx AS b ON a.rowid = b.rowid; INSERT INTO T VALUES (NULL, NULL, NULL); SELECT * FROM tempx AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid; SELECT * FROM tempx; CREATE TRIGGER IF NOT EXISTS trg_T_8081 AFTER UPDATE ON T BEGIN SELECT RAISE(ROLLBACK, 'rb'); END; ALTER TABLE x ADD COLUMN extra_249 CHARACTER(20) DEFAULT CURRENT_TIMESTAMP; INSERT INTO tempx SELECT * FROM tempx; ALTER TABLE tempx ADD COLUMN extra_8347 DECIMAL(10,5) COLLATE RTRIM; PRAGMA cache_spill; UPDATE x SET id = -14 WHERE 1 RETURNING *; SELECT * FROM x AS a LEFT JOIN T AS b ON a.rowid = b.rowid; INSERT INTO x SELECT * FROM x; INSERT INTO T SELECT * FROM T; SELECT * FROM tempx WHERE a = ALL (SELECT a FROM tempx); ANALYZE; INSERT INTO x VALUES (NULL, NULL); SELECT AVG(b) OVER (PARTITION BY b ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T; CREATE INDEX IF NOT EXISTS idx_x_8187 ON x(id); DELETE FROM x WHERE 1; ``` ## Actual output ```sql pow,1,s,utf8,2,2099200 group_concat,1,w,utf8,1,2097152 group_concat,1,w,utf8,2,2097152 json_type,1,s,utf8,1,2048 json_type,1,s,utf8,2,2048 julianday,1,s,utf8,-1,2099200 ntile,1,w,utf8,1,2097152 nullif,1,s,utf8,2,2099200 sqlite_compileoption_get,1,s,utf8,1,2097152 json_valid,1,s,utf8,1,2048 json_quote,1,s,utf8,1,2048 json_patch,1,s,utf8,2,2048 ->,1,s,utf8,2,2048 json_array,1,s,utf8,-1,2048 current_timestamp,1,s,utf8,0,2097152 power,1,s,utf8,2,2099200 sqlite_compileoption_used,1,s,utf8,1,2097152 json_remove,1,s,utf8,-1,2048 json_object,1,s,utf8,-1,2048 json_insert,1,s,utf8,-1,2048 ->>,1,s,utf8,2,2048 sin,1,s,utf8,1,2099200 sum,1,w,utf8,1,2097152 quote,1,s,utf8,1,2099200 printf,1,s,utf8,-1,2099200 likelihood,1,s,utf8,2,2099200 json_replace,1,s,utf8,-1,2048 json_extract,1,s,utf8,-1,2048 last_value,1,w,utf8,1,2097152 rank,1,w,utf8,0,2097152 sign,1,s,utf8,1,2099200 sqrt,1,s,utf8,1,2099200 sinh,1,s,utf8,1,2099200 tan,1,s,utf8,1,2099200 round,1,s,utf8,1,2099200 round,1,s,utf8,2,2099200 rtrim,1,s,utf8,1,2099200 rtrim,1,s,utf8,2,2099200 nth_value,1,w,utf8,2,2097152 tanh,1,s,utf8,1,2099200 random,1,s,utf8,0,2097152 trim,1,s,utf8,1,2099200 trim,1,s,utf8,2,2099200 time,1,s,utf8,-1,2099200 radians,1,s,utf8,1,2099200 trunc,1,s,utf8,1,2099200 total,1,w,utf8,1,2097152 substr,1,s,utf8,2,2099200 substr,1,s,utf8,3,2099200 replace,1,s,utf8,3,2099200 upper,1,s,utf8,1,2099200 subtype,1,s,utf8,1,2099200 typeof,1,s,utf8,1,2099200 load_extension,1,s,utf8,1,524288 load_extension,1,s,utf8,2,524288 json_group_array,1,w,utf8,1,1050624 avg,1,w,utf8,1,2097152 abs,1,s,utf8,1,2099200 json_group_object,1,w,utf8,2,1050624 json_array_length,1,s,utf8,1,2048 json_array_length,1,s,utf8,2,2048 strftime,1,s,utf8,-1,2099200 atan,1,s,utf8,1,2099200 asin,1,s,utf8,1,2099200 acos,1,s,utf8,1,2099200 unknown,1,s,utf8,-1,2099200 substring,1,s,utf8,2,2099200 substring,1,s,utf8,3,2099200 randomblob,1,s,utf8,1,2097152 unicode,1,s,utf8,1,2099200 percent_rank,1,w,utf8,0,2097152 row_number,1,w,utf8,0,2097152 atanh,1,s,utf8,1,2099200 asinh,1,s,utf8,1,2099200 acosh,1,s,utf8,1,2099200 cos,1,s,utf8,1,2099200 atan2,1,s,utf8,2,2099200 last_insert_rowid,1,s,utf8,0,2097152 sqlite_log,1,s,utf8,2,2099200 unlikely,1,s,utf8,1,2099200 cosh,1,s,utf8,1,2099200 ceil,1,s,utf8,1,2099200 char,1,s,utf8,-1,2099200 unixepoch,1,s,utf8,-1,2099200 exp,1,s,utf8,1,2099200 count,1,w,utf8,0,2097152 count,1,w,utf8,1,2097152 date,1,s,utf8,-1,2099200 sqlite_offset,1,s,utf8,1,2097152 ceiling,1,s,utf8,1,2099200 total_changes,1,s,utf8,0,2097152 changes,1,s,utf8,0,2097152 sqlite_version,1,s,utf8,0,2097152 degrees,1,s,utf8,1,2099200 floor,1,s,utf8,1,2099200 coalesce,1,s,utf8,-1,2099200 glob,1,s,utf8,2,2099200 zeroblob,1,s,utf8,1,2099200 hex,1,s,utf8,1,2099200 iif,1,s,utf8,3,2099200 sqlite_source_id,1,s,utf8,0,2097152 format,1,s,utf8,-1,2099200 datetime,1,s,utf8,-1,2099200 cume_dist,1,w,utf8,0,2097152 ln,1,s,utf8,1,2099200 instr,1,s,utf8,2,2099200 json,1,s,utf8,1,2048 dense_rank,1,w,utf8,0,2097152 log,1,s,utf8,1,2099200 log,1,s,utf8,2,2099200 ifnull,1,s,utf8,2,2099200 current_date,1,s,utf8,0,2097152 current_time,1,s,utf8,0,2097152 lag,1,w,utf8,1,2097152 lag,1,w,utf8,3,2097152 lag,1,w,utf8,2,2097152 mod,1,s,utf8,2,2099200 log2,1,s,utf8,1,2099200 like,1,s,utf8,2,2099200 like,1,s,utf8,3,2099200 max,1,s,utf8,-1,2099200 max,1,w,utf8,1,2097152 min,1,s,utf8,-1,2099200 min,1,w,utf8,1,2097152 lead,1,w,utf8,1,2097152 lead,1,w,utf8,3,2097152 lead,1,w,utf8,2,2097152 log10,1,s,utf8,1,2099200 lower,1,s,utf8,1,2099200 ltrim,1,s,utf8,1,2099200 ltrim,1,s,utf8,2,2099200 first_value,1,w,utf8,1,2097152 pi,1,s,utf8,0,2099200 length,1,s,utf8,1,2099200 likely,1,s,utf8,1,2099200 json_set,1,s,utf8,-1,2048 edit,0,s,utf8,2,0 edit,0,s,utf8,1,0 usleep,0,s,utf8,1,0 shell_idquote,0,s,utf8,1,0 shell_escape_crnl,0,s,utf8,1,0 shell_putsnl,0,s,utf8,1,0 ieee754_from_blob,0,s,utf8,1,2097152 shell_add_schema,0,s,utf8,3,0 ieee754_to_blob,0,s,utf8,1,2097152 ieee754,0,s,utf8,2,2097152 ieee754,0,s,utf8,1,2097152 shell_int32,0,s,utf8,2,0 regexp,0,s,utf8,2,2099200 ieee754_exponent,0,s,utf8,1,2097152 decimal_sub,0,s,utf8,2,2099200 decimal_cmp,0,s,utf8,2,2099200 writefile,0,s,utf8,-1,524288 lsmode,0,s,utf8,1,0 readfile,0,s,utf8,1,524288 match,0,s,utf8,2,0 fts3_tokenizer,0,s,utf8,2,524288 fts3_tokenizer,0,s,utf8,1,524288 ieee754_mantissa,0,s,utf8,1,2097152 decimal_add,0,s,utf8,2,2099200 decimal,0,s,utf8,1,2099200 snippet,0,s,utf8,-1,0 offsets,0,s,utf8,1,0 shell_module_schema,0,s,utf8,1,0 matchinfo,0,s,utf8,2,0 matchinfo,0,s,utf8,1,0 optimize,0,s,utf8,1,0 decimal_sum,0,w,utf8,1,2099200 sha3,0,s,utf8,2,2099200 sha3,0,s,utf8,1,2099200 rtreedepth,0,s,utf8,1,0 regexpi,0,s,utf8,2,2099200 decimal_mul,0,s,utf8,2,2099200 sha3_query,0,s,utf8,2,524288 sha3_query,0,s,utf8,1,524288 rtreenode,0,s,utf8,2,0 rtreecheck,0,s,utf8,-1,0 b c column 0 mwahaha i am root ``` ## Expectation ```sql pow,1,s,utf8,2,2099200 median,1,w,utf8,1,0 group_concat,1,w,utf8,1,2097152 group_concat,1,w,utf8,2,2097152 json_type,1,s,utf8,1,2099200 json_type,1,s,utf8,2,2099200 jsonb_set,1,s,utf8,-1,3147776 julianday,1,s,utf8,-1,2099200 ntile,1,w,utf8,1,2097152 nullif,1,s,utf8,2,2099200 sqlite_compileoption_get,1,s,utf8,1,2097152 json_valid,1,s,utf8,1,2099200 json_valid,1,s,utf8,2,2099200 json_quote,1,s,utf8,1,3147776 json_patch,1,s,utf8,2,2099200 ->,1,s,utf8,2,2099200 json_array,1,s,utf8,-1,3147776 current_timestamp,1,s,utf8,0,2097152 power,1,s,utf8,2,2099200 sqlite_compileoption_used,1,s,utf8,1,2097152 json_remove,1,s,utf8,-1,2099200 json_pretty,1,s,utf8,1,2099200 json_pretty,1,s,utf8,2,2099200 jsonb_patch,1,s,utf8,2,2099200 json_object,1,s,utf8,-1,3147776 json_insert,1,s,utf8,-1,3147776 ->>,1,s,utf8,2,2099200 jsonb_array,1,s,utf8,-1,3147776 sin,1,s,utf8,1,2099200 sum,1,w,utf8,1,2097152 quote,1,s,utf8,1,2099200 printf,1,s,utf8,-1,2099200 likelihood,1,s,utf8,2,2099200 json_replace,1,s,utf8,-1,3147776 jsonb_remove,1,s,utf8,-1,2099200 jsonb_object,1,s,utf8,-1,3147776 jsonb_insert,1,s,utf8,-1,3147776 json_extract,1,s,utf8,-1,2099200 last_value,1,w,utf8,1,2097152 rank,1,w,utf8,0,2097152 sign,1,s,utf8,1,2099200 sqrt,1,s,utf8,1,2099200 sinh,1,s,utf8,1,2099200 tan,1,s,utf8,1,2099200 round,1,s,utf8,1,2099200 round,1,s,utf8,2,2099200 rtrim,1,s,utf8,1,2099200 rtrim,1,s,utf8,2,2099200 jsonb_replace,1,s,utf8,-1,3147776 jsonb_extract,1,s,utf8,-1,2099200 nth_value,1,w,utf8,2,2097152 tanh,1,s,utf8,1,2099200 random,1,s,utf8,0,2097152 trim,1,s,utf8,1,2099200 trim,1,s,utf8,2,2099200 time,1,s,utf8,-1,2099200 radians,1,s,utf8,1,2099200 trunc,1,s,utf8,1,2099200 total,1,w,utf8,1,2097152 substr,1,s,utf8,2,2099200 substr,1,s,utf8,3,2099200 replace,1,s,utf8,3,2099200 percentile,1,w,utf8,2,0 unhex,1,s,utf8,1,2099200 unhex,1,s,utf8,2,2099200 upper,1,s,utf8,1,2099200 subtype,1,s,utf8,1,3147776 typeof,1,s,utf8,1,2099200 load_extension,1,s,utf8,1,524288 load_extension,1,s,utf8,2,524288 json_group_array,1,w,utf8,1,3147776 avg,1,w,utf8,1,2097152 unistr,1,s,utf8,1,2099200 abs,1,s,utf8,1,2099200 octet_length,1,s,utf8,1,2099200 json_group_object,1,w,utf8,2,3147776 jsonb_group_array,1,w,utf8,1,3147776 json_array_length,1,s,utf8,1,2099200 json_array_length,1,s,utf8,2,2099200 strftime,1,s,utf8,-1,2099200 atan,1,s,utf8,1,2099200 asin,1,s,utf8,1,2099200 acos,1,s,utf8,1,2099200 unknown,1,s,utf8,-1,2099200 substring,1,s,utf8,2,2099200 substring,1,s,utf8,3,2099200 randomblob,1,s,utf8,1,2097152 unicode,1,s,utf8,1,2099200 jsonb_group_object,1,w,utf8,2,3147776 timediff,1,s,utf8,2,2099200 percent_rank,1,w,utf8,0,2097152 row_number,1,w,utf8,0,2097152 atanh,1,s,utf8,1,2099200 asinh,1,s,utf8,1,2099200 acosh,1,s,utf8,1,2099200 cos,1,s,utf8,1,2099200 atan2,1,s,utf8,2,2099200 string_agg,1,w,utf8,2,2097152 last_insert_rowid,1,s,utf8,0,2097152 sqlite_log,1,s,utf8,2,2099200 unlikely,1,s,utf8,1,2099200 json_error_position,1,s,utf8,1,2099200 cosh,1,s,utf8,1,2099200 ceil,1,s,utf8,1,2099200 char,1,s,utf8,-1,2099200 unixepoch,1,s,utf8,-1,2099200 exp,1,s,utf8,1,2099200 percentile_disc,1,w,utf8,2,0 percentile_cont,1,w,utf8,2,0 count,1,w,utf8,0,2097152 count,1,w,utf8,1,2097152 date,1,s,utf8,-1,2099200 concat,1,s,utf8,-3,2099200 sqlite_offset,1,s,utf8,1,2099200 ceiling,1,s,utf8,1,2099200 total_changes,1,s,utf8,0,2097152 changes,1,s,utf8,0,2097152 unistr_quote,1,s,utf8,1,2099200 sqlite_version,1,s,utf8,0,2097152 if,1,s,utf8,-4,2099200 coalesce,1,s,utf8,-4,2099200 degrees,1,s,utf8,1,2099200 floor,1,s,utf8,1,2099200 glob,1,s,utf8,2,2099200 zeroblob,1,s,utf8,1,2099200 hex,1,s,utf8,1,2099200 iif,1,s,utf8,-4,2099200 sqlite_source_id,1,s,utf8,0,2097152 concat_ws,1,s,utf8,-4,2099200 format,1,s,utf8,-1,2099200 datetime,1,s,utf8,-1,2099200 cume_dist,1,w,utf8,0,2097152 ln,1,s,utf8,1,2099200 instr,1,s,utf8,2,2099200 json,1,s,utf8,1,2099200 dense_rank,1,w,utf8,0,2097152 log,1,s,utf8,1,2099200 log,1,s,utf8,2,2099200 ifnull,1,s,utf8,2,2099200 jsonb,1,s,utf8,1,2099200 current_date,1,s,utf8,0,2097152 current_time,1,s,utf8,0,2097152 lag,1,w,utf8,1,2097152 lag,1,w,utf8,3,2097152 lag,1,w,utf8,2,2097152 mod,1,s,utf8,2,2099200 log2,1,s,utf8,1,2099200 like,1,s,utf8,2,2099200 like,1,s,utf8,3,2099200 max,1,s,utf8,-3,2099200 max,1,w,utf8,1,2097152 min,1,s,utf8,-3,2099200 min,1,w,utf8,1,2097152 lead,1,w,utf8,1,2097152 lead,1,w,utf8,3,2097152 lead,1,w,utf8,2,2097152 log10,1,s,utf8,1,2099200 lower,1,s,utf8,1,2099200 ltrim,1,s,utf8,1,2099200 ltrim,1,s,utf8,2,2099200 first_value,1,w,utf8,1,2097152 pi,1,s,utf8,0,2099200 length,1,s,utf8,1,2099200 likely,1,s,utf8,1,2099200 json_set,1,s,utf8,-1,3147776 usleep,0,s,utf8,1,0 shell_putsnl,0,s,utf8,1,0 dtostr,0,s,utf8,2,0 dtostr,0,s,utf8,1,0 sqlar_uncompress,0,s,utf8,2,2097152 sqlar_compress,0,s,utf8,1,2097152 zipfile,0,a,utf8,-1,0 lsmode,0,s,utf8,1,0 writefile,0,s,utf8,-1,524288 readfile,0,s,utf8,1,524288 ieee754_from_blob,0,s,utf8,1,2097152 offsets,0,s,utf8,1,0 decimal_cmp,0,s,utf8,2,2099200 fts3_tokenizer,0,s,utf8,2,524288 fts3_tokenizer,0,s,utf8,1,524288 decimal,0,s,utf8,1,2099200 sha1b,0,s,utf8,1,2099200 zipfile_cds,0,s,utf8,-1,0 decimal_mul,0,s,utf8,2,2099200 matchinfo,0,s,utf8,2,0 matchinfo,0,s,utf8,1,0 ieee754_inc,0,s,utf8,2,2097152 optimize,0,s,utf8,1,0 rtreedepth,0,s,utf8,1,0 ieee754_mantissa,0,s,utf8,1,2097152 rtreenode,0,s,utf8,2,0 shell_add_schema,0,s,utf8,3,0 strtod,0,s,utf8,1,0 rtreecheck,0,s,utf8,-1,0 shell_module_schema,0,s,utf8,1,0 match,0,s,utf8,2,0 sha1,0,s,utf8,1,2099200 sha1_query,0,s,utf8,1,524288 sha3,0,s,utf8,2,2099200 sha3,0,s,utf8,1,2099200 sha3_agg,0,a,utf8,2,2099200 sha3_agg,0,a,utf8,1,2099200 ieee754_exponent,0,s,utf8,1,2097152 ieee754,0,s,utf8,2,2097152 ieee754,0,s,utf8,1,2097152 decimal_sub,0,s,utf8,2,2099200 regexpi,0,s,utf8,2,2099200 sha3_query,0,s,utf8,2,524288 sha3_query,0,s,utf8,1,524288 stmtrand,0,s,utf8,0,0 stmtrand,0,s,utf8,1,0 decimal_exp,0,s,utf8,1,2099200 ieee754_to_blob,0,s,utf8,1,2097152 base85,0,s,utf8,1,2623488 decimal_add,0,s,utf8,2,2099200 edit,0,s,utf8,2,0 edit,0,s,utf8,1,0 decimal_pow2,0,s,utf8,1,2099200 base64,0,s,utf8,1,2623488 snippet,0,s,utf8,-1,0 decimal_sum,0,w,utf8,1,2099200 regexp,0,s,utf8,2,2099200 b c column 0 mwahaha i am root ``` ## Flag ``` -csv ```