1006 lines
41 KiB
Markdown
1006 lines
41 KiB
Markdown
## 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
|
|
```
|
|
|