## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**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
```

