## Summary **No review yet** ## Minimized query ```sql BEGIN DEFERRED; PRAGMA wal_checkpoint('PASSIVE'); PRAGMA empty_result_callbacks; SAVEPOINT sp9621; PRAGMA empty_result_callbacks; SAVEPOINT sp4085; .scanstats est ((BEGIN)) IMMEDIATE; CREATE TABLE main.T ( a DOUBLE, b REAL ); INSERT INTO T VALUES ('' || ('a'),substr(CAST(-(-(round('_'))) AS DATE), -(-(if(log2(1.7976931348623157e+308), 0, 0))))), ('b',-200.5), ('c',9e999); SELECT a,b, LEAD(b,1) OVER (ORDER BY b DESC) AS c, NTILE(2) OVER (ORDER BY b DESC) AS d FROM T; .echo off .import corrupt001.db main CREATE TABLE T ( a INTEGER, b TEXT, c REAL ); INSERT INTO T VALUES (1,'a',3.14), (1,'b',-7.75), (2,'c',-9e999); SELECT b,a,c, RANK() OVER (PARTITION BY a ORDER BY c DESC) AS d FROM T; .indexes main BEGIN EXCLUSIVE; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE "t1"(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE NOT NOT NOT (+i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c) ; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE +i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; /**/ PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); CREATE TABLE T ( A VARCHAR(20), B VARCHAR(30), C VARCHAR(30), PRIMARY KEY (A, B), UNIQUE (A, C) ); INSERT INTO T VALUES ('a', 'p', 'x'); INSERT INTO T VALUES ('a', 'q', 'y'); INSERT INTO T VALUES ('b', 'p', 'z'); INSERT INTO T VALUES ('c', 'r', 'w'); INSERT INTO T VALUES ('d', 's', 'v'); SELECT A, COUNT(DISTINCT B) AS D FROM T GROUP BY A HAVING COUNT(DISTINCT B) >= 1; DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; COMMIT /**/ TRANSACTION; ALTER TABLE t1 RENAME COLUMN ax TO ax_r1826; ALTER TABLE t2 RENAME COLUMN y TO y_r2244; SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 ORDER BY a LIMIT 1 OFFSET 1000); INSERT INTO t1 VALUES (NULL, NULL, 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, ax = excluded.ax, b = excluded.b; DROP VIEW IF EXISTS t1; ALTER TABLE t1 DROP COLUMN b; SELECT 0x0ACB29BM205381; SELECT sqlite_compileoption_used('我的天你是怎么了'); SELECT 1 >> -999999999999999999999999999; SELECT sqlite_compileoption_get($1); SELECT sqlite_version(); SELECT * FROM t1; UPDATE T SET a = ''; INSERT INTO T SELECT * FROM T; SELECT COUNT(x) FROM t2; SELECT * FROM t2; SELECT LAG(a, 2, a) OVER (PARTITION BY a ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1; ALTER TABLE t2 RENAME COLUMN y TO y_r2666; ANALYZE; PRAGMA max_page_count = 5000000; SELECT * FROM T WHERE a < ALL (SELECT a FROM T); SELECT * FROM T WHERE a IN (SELECT a FROM T LIMIT 0); SELECT * FROM T AS a INNER JOIN t2 AS b ON a.rowid = b.rowid; ALTER TABLE t1 RENAME COLUMN a TO a_r2942; SELECT STRING_AGG(ax, '|') FROM t1; END TRANSACTION; WITH cte AS (SELECT NULL AS x, NULL AS y) SELECT x, y, x IS NULL FROM cte; CREATE VIEW IF NOT EXISTS v_t2_5168 AS SELECT y FROM t2; DELETE FROM t2 WHERE x > (SELECT AVG(x) FROM t2); CREATE TEMP VIEW IF NOT EXISTS v_t1_4396 AS SELECT b FROM t1; SELECT RANK() OVER (PARTITION BY x ORDER BY x GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2; SELECT COUNT(*) FROM T; SELECT GROUP_CONCAT(c) OVER (PARTITION BY c ORDER BY c GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T; INSERT INTO t2 SELECT * FROM t2; SELECT COUNT(*) FROM t2; ALTER TABLE t2 ADD COLUMN extra_3708 ANY DEFAULT CURRENT_TIMESTAMP; UPDATE T SET c = 1 WHERE c IS NOT NULL RETURNING *; CREATE TABLE T ( a TEXT, b INTEGER, c REAL ); INSERT INTO T VALUES ('a',1,2.0), ('a',2,-3.0), ('b',1,4.5); SELECT a,b,c, SUM(c) OVER ( PARTITION BY a ORDER BY b ) AS d FROM T; CREATE TEMP VIEW IF NOT EXISTS v_t2_8550 AS SELECT y FROM t2; ALTER TABLE t2 DROP COLUMN y; SELECT * FROM t2 WHERE y IN (SELECT y FROM t2 WHERE y LIKE "%%"); WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<36) SELECT SUM(x) FROM cnt; ALTER TABLE t2 DROP COLUMN x; ANALYZE t1; SELECT COUNT(*) FILTER (WHERE b IS NOT NULL), SUM(rowid) FILTER (WHERE b > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(b) FILTER (WHERE b > 0 AND b < 100), COUNT(*) FILTER (WHERE typeof(b) = "text") FROM T; ANALYZE; 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; UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *; VACUUM; WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte; INSERT OR ABORT INTO t2 VALUES ('x', 0); DELETE FROM t1 WHERE rowid = 60; ALTER TABLE t2 RENAME COLUMN x TO x_r3341; SELECT LAG(x, x) OVER (PARTITION BY x ORDER BY x GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2; WITH cte(x) AS (SELECT b FROM t1) SELECT x FROM cte; INSERT OR ABORT INTO T VALUES (0, NULL, 0); VACUUM; RELEASE sp4085; UPDATE t1 SET a = NULL WHERE a IS NOT NULL RETURNING *; INSERT OR ABORT INTO t2 VALUES (0, 'x'); CREATE TRIGGER IF NOT EXISTS trg_t2_9589 BEFORE UPDATE ON t2 FOR EACH ROW BEGIN INSERT INTO t2(x) VALUES (NULL); END; WITH a AS (SELECT * FROM t1 WHERE b IS NOT NULL), b AS (SELECT * FROM a WHERE b > 0), c AS (SELECT * FROM b LIMIT 10) SELECT * FROM c; ALTER TABLE T RENAME TO T_r715; RELEASE sp9621; DELETE FROM t1 WHERE rowid = 45; SAVEPOINT sp9621; PRAGMA empty_result_callbacks; SAVEPOINT sp4085; .scanstats est ((BEGIN)) IMMEDIATE; CREATE TABLE main.T ( a TEXT, b REAL ); INSERT INTO T VALUES ('' || ('a'),substr(CAST(-(-(round('_'))) AS DATE), -(-(0)))), ('b',-200.5), ('c',9e999); SELECT a,b, LEAD(b,1) OVER (ORDER BY b DESC) AS c, NTILE(2) OVER (ORDER BY b DESC) AS d FROM T; .echo off .import corrupt001.db main CREATE TABLE T ( a INTEGER, b TEXT, c REAL ); INSERT INTO T VALUES (1,'a',3.14), (1,'b',-7.75), (2,'c',-9e999); SELECT b,a,c, RANK() OVER (PARTITION BY a ORDER BY c DESC) AS d FROM T; .indexes main BEGIN EXCLUSIVE; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE "t1"(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE NOT NOT NOT (+i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c) ; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE +i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; /**/ PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); CREATE TABLE T ( A VARCHAR(20), B VARCHAR(30), C VARCHAR(30), PRIMARY KEY (A, B), UNIQUE (A, C) ); INSERT INTO T VALUES ('a', 'p', 'x'); INSERT INTO T VALUES ('a', 'q', 'y'); INSERT INTO T VALUES ('b', 'p', 'z'); INSERT INTO T VALUES ('c', 'r', 'w'); INSERT INTO T VALUES ('d', 's', 'v'); SELECT A, COUNT(DISTINCT B) AS D FROM T GROUP BY A HAVING COUNT(DISTINCT B) >= 1; DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; COMMIT /**/ TRANSACTION; ALTER TABLE t1 RENAME COLUMN ax TO ax_r1826; ALTER TABLE t2 RENAME COLUMN y TO y_r2244; SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 ORDER BY a LIMIT 1 OFFSET 1000); INSERT INTO t1 VALUES (NULL, NULL, 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, ax = excluded.ax, b = excluded.b; DROP VIEW IF EXISTS t1; ALTER TABLE t1 DROP COLUMN b; SELECT 0x0ACB29BM205381; SELECT sqlite_compileoption_used('我的天你是怎么了'); SELECT 1 >> -999999999999999999999999999; SELECT sqlite_compileoption_get($1); SELECT sqlite_version(); SELECT * FROM t1; UPDATE T SET a = ''; INSERT INTO T SELECT * FROM T; SELECT COUNT(x) FROM t2; SELECT * FROM t2; SELECT LAG(a, 2, a) OVER (PARTITION BY a ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1; ALTER TABLE t2 RENAME COLUMN y TO y_r2666; ANALYZE; PRAGMA max_page_count = 5000000; SELECT * FROM T WHERE a < ALL (SELECT a FROM T); SELECT * FROM T WHERE a IN (SELECT a FROM T LIMIT 0); SELECT * FROM T AS a INNER JOIN t2 AS b ON a.rowid = b.rowid; ALTER TABLE t1 RENAME COLUMN a TO a_r2942; SELECT STRING_AGG(ax, '|') FROM t1; END TRANSACTION; WITH cte AS (SELECT NULL AS x, NULL AS y) SELECT x, y, x IS NULL FROM cte; CREATE VIEW IF NOT EXISTS v_t2_5168 AS SELECT y FROM t2; DELETE FROM t2 WHERE x > (SELECT AVG(x) FROM t2); CREATE TEMP VIEW IF NOT EXISTS v_t1_4396 AS SELECT b FROM t1; SELECT RANK() OVER (PARTITION BY x ORDER BY x GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2; SELECT COUNT(*) FROM T; SELECT GROUP_CONCAT(c) OVER (PARTITION BY c ORDER BY c GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T; INSERT INTO t2 SELECT * FROM t2; SELECT COUNT(*) FROM t2; ALTER TABLE t2 ADD COLUMN extra_3708 ANY DEFAULT CURRENT_TIMESTAMP; UPDATE T SET c = 1 WHERE c IS NOT NULL RETURNING *; CREATE TABLE T ( a TEXT, b INTEGER, c REAL ); INSERT INTO T VALUES ('a',1,2.0), ('a',2,-3.0), ('b',1,4.5); SELECT a,b,c, SUM(c) OVER ( PARTITION BY a ORDER BY b ) AS d FROM T; CREATE TEMP VIEW IF NOT EXISTS v_t2_8550 AS SELECT y FROM t2; ALTER TABLE t2 DROP COLUMN y; SELECT * FROM t2 WHERE y IN (SELECT y FROM t2 WHERE y LIKE "%%"); WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<36) SELECT SUM(x) FROM cnt; ALTER TABLE t2 DROP COLUMN x; ANALYZE t1; SELECT COUNT(*) FILTER (WHERE b IS NOT NULL), SUM(rowid) FILTER (WHERE b > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(b) FILTER (WHERE b > 0 AND b < 100), COUNT(*) FILTER (WHERE typeof(b) = "text") FROM T; ANALYZE; 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; UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *; VACUUM; WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte; INSERT OR ABORT INTO t2 VALUES ('x', 0); DELETE FROM t1 WHERE rowid = 60; ALTER TABLE t2 RENAME COLUMN x TO x_r3341; SELECT LAG(x, x) OVER (PARTITION BY x ORDER BY x GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2; WITH cte(x) AS (SELECT b FROM t1) SELECT x FROM cte; INSERT OR ABORT INTO T VALUES (0, NULL, 0); VACUUM; RELEASE sp4085; UPDATE t1 SET a = NULL WHERE a IS NOT NULL RETURNING *; INSERT OR ABORT INTO t2 VALUES (0, 'x'); CREATE TRIGGER IF NOT EXISTS trg_t2_9589 BEFORE UPDATE ON t2 FOR EACH ROW BEGIN INSERT INTO t2(x) VALUES (NULL); END; WITH a AS (SELECT * FROM t1 WHERE b IS NOT NULL), b AS (SELECT * FROM a WHERE b > 0), c AS (SELECT * FROM b LIMIT 10) SELECT * FROM c; ALTER TABLE T RENAME TO T_r715; RELEASE sp9621; DELETE FROM t1 WHERE rowid = 45; SAVEPOINT sp9621; PRAGMA empty_result_callbacks; SAVEPOINT sp4085; .scanstats est ((BEGIN)) IMMEDIATE; CREATE TABLE main.T ( a TEXT, b REAL ); INSERT INTO T VALUES ('' || ('a'),substr(CAST(-(-(round('_'))) AS DATE), -(-(0)))), ('b',-200.5), ('c',9e999); SELECT a,b, LEAD(b,1) OVER (ORDER BY b DESC) AS c, NTILE(2) OVER (ORDER BY b DESC) AS d FROM T; .echo off .import corrupt001.db main CREATE TABLE T ( a INTEGER, b TEXT, c REAL ); INSERT INTO T VALUES (1,'a',3.14), (1,'b',-7.75), (2,'c',-9e999); SELECT b,a,c, RANK() OVER (PARTITION BY a ORDER BY c DESC) AS d FROM T; .indexes main BEGIN EXCLUSIVE; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE "t1"(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE NOT NOT NOT (+i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c) ; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE +i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; /**/ PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); CREATE TABLE T ( A VARCHAR(20), B VARCHAR(30), C VARCHAR(30), PRIMARY KEY (A, B), UNIQUE (A, C) ); INSERT INTO T VALUES ('a', 'p', 'x'); INSERT INTO T VALUES ('a', 'q', 'y'); INSERT INTO T VALUES ('b', 'p', 'z'); INSERT INTO T VALUES ('c', 'r', 'w'); INSERT INTO T VALUES ('d', 's', 'v'); SELECT A, COUNT(DISTINCT B) AS D FROM T GROUP BY A HAVING COUNT(DISTINCT B) >= 1; DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; COMMIT /**/ TRANSACTION; ALTER TABLE t1 RENAME COLUMN ax TO ax_r1826; ALTER TABLE t2 RENAME COLUMN y TO y_r2244; SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 ORDER BY a LIMIT 1 OFFSET 1000); INSERT INTO t1 VALUES (NULL, NULL, 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, ax = excluded.ax, b = excluded.b; DROP VIEW IF EXISTS t1; ALTER TABLE t1 DROP COLUMN b; SELECT 0x0ACB29BM205381; SELECT sqlite_compileoption_used('我的天你是怎么了'); SELECT 1 >> -999999999999999999999999999; SELECT sqlite_compileoption_get($1); SELECT sqlite_version(); SELECT * FROM t1; UPDATE T SET a = ''; INSERT INTO T SELECT * FROM T; SELECT COUNT(x) FROM t2; SELECT * FROM t2; SELECT LAG(a, 2, a) OVER (PARTITION BY a ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1; ALTER TABLE t2 RENAME COLUMN y TO y_r2666; ANALYZE; PRAGMA max_page_count = 5000000; SELECT * FROM T WHERE a < ALL (SELECT a FROM T); SELECT * FROM T WHERE a IN (SELECT a FROM T LIMIT 0); SELECT * FROM T AS a INNER JOIN t2 AS b ON a.rowid = b.rowid; ALTER TABLE t1 RENAME COLUMN a TO a_r2942; SELECT STRING_AGG(ax, '|') FROM t1; END TRANSACTION; WITH cte AS (SELECT NULL AS x, NULL AS y) SELECT x, y, x IS NULL FROM cte; CREATE VIEW IF NOT EXISTS v_t2_5168 AS SELECT y FROM t2; DELETE FROM t2 WHERE x > (SELECT AVG(x) FROM t2); CREATE TEMP VIEW IF NOT EXISTS v_t1_4396 AS SELECT b FROM t1; SELECT RANK() OVER (PARTITION BY x ORDER BY x GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2; SELECT COUNT(*) FROM T; SELECT GROUP_CONCAT(c) OVER (PARTITION BY c ORDER BY c GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T; INSERT INTO t2 SELECT * FROM t2; SELECT COUNT(*) FROM t2; ALTER TABLE t2 ADD COLUMN extra_3708 ANY DEFAULT CURRENT_TIMESTAMP; UPDATE T SET c = 1 WHERE c IS NOT NULL RETURNING *; CREATE TABLE T ( a TEXT, b INTEGER, c REAL ); INSERT INTO T VALUES ('a',1,2.0), ('a',2,-3.0), ('b',1,4.5); SELECT a,b,c, SUM(c) OVER ( PARTITION BY a ORDER BY b ) AS d FROM T; CREATE TEMP VIEW IF NOT EXISTS v_t2_8550 AS SELECT y FROM t2; ALTER TABLE t2 DROP COLUMN y; SELECT * FROM t2 WHERE y IN (SELECT y FROM t2 WHERE y LIKE "%%"); WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<36) SELECT SUM(x) FROM cnt; ALTER TABLE t2 DROP COLUMN x; ANALYZE t1; SELECT COUNT(*) FILTER (WHERE b IS NOT NULL), SUM(rowid) FILTER (WHERE b > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(b) FILTER (WHERE b > 0 AND b < 100), COUNT(*) FILTER (WHERE typeof(b) = "text") FROM T; ANALYZE; 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; UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *; VACUUM; WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte; INSERT OR ABORT INTO t2 VALUES ('x', 0); DELETE FROM t1 WHERE rowid = 60; ALTER TABLE t2 RENAME COLUMN x TO x_r3341; SELECT LAG(x, x) OVER (PARTITION BY x ORDER BY x GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2; WITH cte(x) AS (SELECT b FROM t1) SELECT x FROM cte; INSERT OR ABORT INTO T VALUES (0, NULL, 0); VACUUM; RELEASE sp4085; UPDATE t1 SET a = NULL WHERE a IS NOT NULL RETURNING *; INSERT OR ABORT INTO t2 VALUES (0, 'x'); CREATE TRIGGER IF NOT EXISTS trg_t2_9589 BEFORE UPDATE ON t2 FOR EACH ROW BEGIN INSERT INTO t2(x) VALUES (NULL); END; WITH a AS (SELECT * FROM t1 WHERE b IS NOT NULL), b AS (SELECT * FROM a WHERE b > 0), c AS (SELECT * FROM b LIMIT 10) SELECT * FROM c; ALTER TABLE T RENAME TO T_r715; RELEASE sp9621; DELETE FROM t1 WHERE rowid = 45; SAVEPOINT sp9621; PRAGMA empty_result_callbacks; SAVEPOINT sp4085; .scanstats est ((BEGIN)) IMMEDIATE; CREATE TABLE main.T ( a TEXT, b REAL ); INSERT INTO T VALUES ('' || ('a'),substr(CAST(-(-(round('_'))) AS DATE), -(-(0)))), ('b',-200.5), ('c',9e999); SELECT a,b, LEAD(b,1) OVER (ORDER BY b DESC) AS c, NTILE(2) OVER (ORDER BY b DESC) AS d FROM T; .echo off .import corrupt001.db main CREATE TABLE T ( a INTEGER, b TEXT, c REAL ); INSERT INTO T VALUES (1,'a',3.14), (1,'b',-7.75), (2,'c',-9e999); SELECT b,a,c, RANK() OVER (PARTITION BY a ORDER BY c DESC) AS d FROM T; .indexes main BEGIN EXCLUSIVE; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE "t1"(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE NOT NOT NOT (+i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c) ; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE +i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; /**/ PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); CREATE TABLE T ( A VARCHAR(20), B VARCHAR(30), C VARCHAR(30), PRIMARY KEY (A, B), UNIQUE (A, C) ); INSERT INTO T VALUES ('a', 'p', 'x'); INSERT INTO T VALUES ('a', 'q', 'y'); INSERT INTO T VALUES ('b', 'p', 'z'); INSERT INTO T VALUES ('c', 'r', 'w'); INSERT INTO T VALUES ('d', 's', 'v'); SELECT A, COUNT(DISTINCT B) AS D FROM T GROUP BY A HAVING COUNT(DISTINCT B) >= 1; DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; COMMIT /**/ TRANSACTION; ALTER TABLE t1 RENAME COLUMN ax TO ax_r1826; ALTER TABLE t2 RENAME COLUMN y TO y_r2244; SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 ORDER BY a LIMIT 1 OFFSET 1000); INSERT INTO t1 VALUES (NULL, NULL, 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, ax = excluded.ax, b = excluded.b; DROP VIEW IF EXISTS t1; ALTER TABLE t1 DROP COLUMN b; SELECT 0x0ACB29BM205381; SELECT sqlite_compileoption_used('我的天你是怎么了'); SELECT 1 >> -999999999999999999999999999; SELECT sqlite_compileoption_get($1); SELECT sqlite_version(); SELECT * FROM t1; UPDATE T SET a = ''; INSERT INTO T SELECT * FROM T; SELECT COUNT(x) FROM t2; SELECT * FROM t2; SELECT LAG(a, 2, a) OVER (PARTITION BY a ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1; ALTER TABLE t2 RENAME COLUMN y TO y_r2666; ANALYZE; PRAGMA max_page_count = 5000000; SELECT * FROM T WHERE a < ALL (SELECT a FROM T); SELECT * FROM T WHERE a IN (SELECT a FROM T LIMIT 0); SELECT * FROM T AS a INNER JOIN t2 AS b ON a.rowid = b.rowid; ALTER TABLE t1 RENAME COLUMN a TO a_r2942; SELECT STRING_AGG(ax, '|') FROM t1; END TRANSACTION; WITH cte AS (SELECT NULL AS x, NULL AS y) SELECT x, y, x IS NULL FROM cte; CREATE VIEW IF NOT EXISTS v_t2_5168 AS SELECT y FROM t2; DELETE FROM t2 WHERE x > (SELECT AVG(x) FROM t2); CREATE TEMP VIEW IF NOT EXISTS v_t1_4396 AS SELECT b FROM t1; SELECT RANK() OVER (PARTITION BY x ORDER BY x GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2; SELECT COUNT(*) FROM T; SELECT GROUP_CONCAT(c) OVER (PARTITION BY c ORDER BY c GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T; INSERT INTO t2 SELECT * FROM t2; SELECT COUNT(*) FROM t2; ALTER TABLE t2 ADD COLUMN extra_3708 ANY DEFAULT CURRENT_TIMESTAMP; UPDATE T SET c = 1 WHERE c IS NOT NULL RETURNING *; CREATE TABLE T ( a TEXT, b INTEGER, c REAL ); INSERT INTO T VALUES ('a',1,2.0), ('a',2,-3.0), ('b',1,4.5); SELECT a,b,c, SUM(c) OVER ( PARTITION BY a ORDER BY b ) AS d FROM T; CREATE TEMP VIEW IF NOT EXISTS v_t2_8550 AS SELECT y FROM t2; ALTER TABLE t2 DROP COLUMN y; SELECT * FROM t2 WHERE y IN (SELECT y FROM t2 WHERE y LIKE "%%"); WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<36) SELECT SUM(x) FROM cnt; ALTER TABLE t2 DROP COLUMN x; ANALYZE t1; SELECT COUNT(*) FILTER (WHERE b IS NOT NULL), SUM(rowid) FILTER (WHERE b > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(b) FILTER (WHERE b > 0 AND b < 100), COUNT(*) FILTER (WHERE typeof(b) = "text") FROM T; ANALYZE; 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; UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *; VACUUM; WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte; INSERT OR ABORT INTO t2 VALUES ('x', 0); DELETE FROM t1 WHERE rowid = 60; ALTER TABLE t2 RENAME COLUMN x TO x_r3341; SELECT LAG(x, x) OVER (PARTITION BY x ORDER BY x GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2; WITH cte(x) AS (SELECT b FROM t1) SELECT x FROM cte; INSERT OR ABORT INTO T VALUES (0, NULL, 0); VACUUM; RELEASE sp4085; UPDATE t1 SET a = NULL WHERE a IS NOT NULL RETURNING *; INSERT OR ABORT INTO t2 VALUES (0, 'x'); CREATE TRIGGER IF NOT EXISTS trg_t2_9589 BEFORE UPDATE ON t2 FOR EACH ROW BEGIN INSERT INTO t2(x) VALUES (NULL); END; WITH a AS (SELECT * FROM t1 WHERE b IS NOT NULL), b AS (SELECT * FROM a WHERE b > 0), c AS (SELECT * FROM b LIMIT 10) SELECT * FROM c; ALTER TABLE T RENAME TO T_r715; RELEASE sp9621; DELETE FROM t1 WHERE rowid = 45; SAVEPOINT sp9621; PRAGMA empty_result_callbacks; SAVEPOINT sp4085; .scanstats est ((BEGIN)) IMMEDIATE; CREATE TABLE main.T ( a TEXT, b REAL ); INSERT INTO T VALUES ('' || ('a'),substr(CAST(-(-(round('_'))) AS DATE), -(-(0)))), ('b',-200.5), ('c',9e999); SELECT a,b, LEAD(b,1) OVER (ORDER BY b DESC) AS c, NTILE(2) OVER (ORDER BY b DESC) AS d FROM T; .echo off .import corrupt001.db main CREATE TABLE T ( a INTEGER, b TEXT, c REAL ); INSERT INTO T VALUES (1,'a',3.14), (1,'b',-7.75), (2,'c',-9e999); SELECT b,a,c, RANK() OVER (PARTITION BY a ORDER BY c DESC) AS d FROM T; .indexes main BEGIN EXCLUSIVE; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE "t1"(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE NOT NOT NOT (+i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c) ; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE +i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; /**/ PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); CREATE TABLE T ( A VARCHAR(20), B VARCHAR(30), C VARCHAR(30), PRIMARY KEY (A, B), UNIQUE (A, C) ); INSERT INTO T VALUES ('a', 'p', 'x'); INSERT INTO T VALUES ('a', 'q', 'y'); INSERT INTO T VALUES ('b', 'p', 'z'); INSERT INTO T VALUES ('c', 'r', 'w'); INSERT INTO T VALUES ('d', 's', 'v'); SELECT A, COUNT(DISTINCT B) AS D FROM T GROUP BY A HAVING COUNT(DISTINCT B) >= 1; DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; COMMIT /**/ TRANSACTION; ALTER TABLE t1 RENAME COLUMN ax TO ax_r1826; ALTER TABLE t2 RENAME COLUMN y TO y_r2244; SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 ORDER BY a LIMIT 1 OFFSET 1000); INSERT INTO t1 VALUES (NULL, NULL, 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, ax = excluded.ax, b = excluded.b; DROP VIEW IF EXISTS t1; ALTER TABLE t1 DROP COLUMN b; SELECT 0x0ACB29BM205381; SELECT sqlite_compileoption_used('我的天你是怎么了'); SELECT 1 >> -999999999999999999999999999; SELECT sqlite_compileoption_get($1); SELECT sqlite_version(); SELECT * FROM t1; UPDATE T SET a = ''; INSERT INTO T SELECT * FROM T; SELECT COUNT(x) FROM t2; SELECT * FROM t2; SELECT LAG(a, 2, a) OVER (PARTITION BY a ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1; ALTER TABLE t2 RENAME COLUMN y TO y_r2666; ANALYZE; PRAGMA max_page_count = 5000000; SELECT * FROM T WHERE a < ALL (SELECT a FROM T); SELECT * FROM T WHERE a IN (SELECT a FROM T LIMIT 0); SELECT * FROM T AS a INNER JOIN t2 AS b ON a.rowid = b.rowid; ALTER TABLE t1 RENAME COLUMN a TO a_r2942; SELECT STRING_AGG(ax, '|') FROM t1; END TRANSACTION; WITH cte AS (SELECT NULL AS x, NULL AS y) SELECT x, y, x IS NULL FROM cte; CREATE VIEW IF NOT EXISTS v_t2_5168 AS SELECT y FROM t2; DELETE FROM t2 WHERE x > (SELECT AVG(x) FROM t2); CREATE TEMP VIEW IF NOT EXISTS v_t1_4396 AS SELECT b FROM t1; SELECT RANK() OVER (PARTITION BY x ORDER BY x GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2; SELECT COUNT(*) FROM T; SELECT GROUP_CONCAT(c) OVER (PARTITION BY c ORDER BY c GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T; INSERT INTO t2 SELECT * FROM t2; SELECT COUNT(*) FROM t2; ALTER TABLE t2 ADD COLUMN extra_3708 ANY DEFAULT CURRENT_TIMESTAMP; UPDATE T SET c = 1 WHERE c IS NOT NULL RETURNING *; CREATE TABLE T ( a TEXT, b INTEGER, c REAL ); INSERT INTO T VALUES ('a',1,2.0), ('a',2,-3.0), ('b',1,4.5); SELECT a,b,c, SUM(c) OVER ( PARTITION BY a ORDER BY b ) AS d FROM T; CREATE TEMP VIEW IF NOT EXISTS v_t2_8550 AS SELECT y FROM t2; ALTER TABLE t2 DROP COLUMN y; SELECT * FROM t2 WHERE y IN (SELECT y FROM t2 WHERE y LIKE "%%"); WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<36) SELECT SUM(x) FROM cnt; ALTER TABLE t2 DROP COLUMN x; ANALYZE t1; SELECT COUNT(*) FILTER (WHERE b IS NOT NULL), SUM(rowid) FILTER (WHERE b > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(b) FILTER (WHERE b > 0 AND b < 100), COUNT(*) FILTER (WHERE typeof(b) = "text") FROM T; ANALYZE; 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; UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *; VACUUM; WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte; INSERT OR ABORT INTO t2 VALUES ('x', 0); DELETE FROM t1 WHERE rowid = 60; ALTER TABLE t2 RENAME COLUMN x TO x_r3341; SELECT LAG(x, x) OVER (PARTITION BY x ORDER BY x GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2; WITH cte(x) AS (SELECT b FROM t1) SELECT x FROM cte; INSERT OR ABORT INTO T VALUES (0, NULL, 0); VACUUM; RELEASE sp4085; UPDATE t1 SET a = NULL WHERE a IS NOT NULL RETURNING *; INSERT OR ABORT INTO t2 VALUES (0, 'x'); CREATE TRIGGER IF NOT EXISTS trg_t2_9589 BEFORE UPDATE ON t2 FOR EACH ROW BEGIN INSERT INTO t2(x) VALUES (NULL); END; WITH a AS (SELECT * FROM t1 WHERE b IS NOT NULL), b AS (SELECT * FROM a WHERE b > 0), c AS (SELECT * FROM b LIMIT 10) SELECT * FROM c; ALTER TABLE T RENAME TO T_r715; RELEASE sp9621; DELETE FROM t1 WHERE rowid = 45; SAVEPOINT sp9621; PRAGMA empty_result_callbacks; SAVEPOINT sp4085; .scanstats est ((BEGIN)) IMMEDIATE; CREATE TABLE main.T ( a TEXT, b REAL ); INSERT INTO T VALUES ('' || ('a'),substr(CAST(-(-(round('_'))) AS DATE), -(-(0)))), ('b',-200.5), ('c',9e999); SELECT a,b, LEAD(b,1) OVER (ORDER BY b DESC) AS c, NTILE(2) OVER (ORDER BY b DESC) AS d FROM T; .echo off .import corrupt001.db main CREATE TABLE T ( a INTEGER, b TEXT, c REAL ); INSERT INTO T VALUES (1,'a',3.14), (1,'b',-7.75), (2,'c',-9e999); SELECT b,a,c, RANK() OVER (PARTITION BY a ORDER BY c DESC) AS d FROM T; .indexes main BEGIN EXCLUSIVE; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE "t1"(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE NOT NOT NOT (+i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c) ; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE +i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; /**/ PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); CREATE TABLE T ( A VARCHAR(20), B VARCHAR(30), C VARCHAR(30), PRIMARY KEY (A, B), UNIQUE (A, C) ); INSERT INTO T VALUES ('a', 'p', 'x'); INSERT INTO T VALUES ('a', 'q', 'y'); INSERT INTO T VALUES ('b', 'p', 'z'); INSERT INTO T VALUES ('c', 'r', 'w'); INSERT INTO T VALUES ('d', 's', 'v'); SELECT A, COUNT(DISTINCT B) AS D FROM T GROUP BY A HAVING COUNT(DISTINCT B) >= 1; DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; COMMIT /**/ TRANSACTION; ALTER TABLE t1 RENAME COLUMN ax TO ax_r1826; ALTER TABLE t2 RENAME COLUMN y TO y_r2244; SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 ORDER BY a LIMIT 1 OFFSET 1000); INSERT INTO t1 VALUES (NULL, NULL, 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, ax = excluded.ax, b = excluded.b; DROP VIEW IF EXISTS t1; ALTER TABLE t1 DROP COLUMN b; SELECT 0x0ACB29BM205381; SELECT sqlite_compileoption_used('我的天你是怎么了'); SELECT 1 >> -999999999999999999999999999; SELECT sqlite_compileoption_get($1); SELECT sqlite_version(); SELECT * FROM t1; UPDATE T SET a = ''; INSERT INTO T SELECT * FROM T; SELECT COUNT(x) FROM t2; SELECT * FROM t2; SELECT LAG(a, 2, a) OVER (PARTITION BY a ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1; ALTER TABLE t2 RENAME COLUMN y TO y_r2666; ANALYZE; PRAGMA max_page_count = 5000000; SELECT * FROM T WHERE a < ALL (SELECT a FROM T); SELECT * FROM T WHERE a IN (SELECT a FROM T LIMIT 0); SELECT * FROM T AS a INNER JOIN t2 AS b ON a.rowid = b.rowid; ALTER TABLE t1 RENAME COLUMN a TO a_r2942; SELECT STRING_AGG(ax, '|') FROM t1; END TRANSACTION; WITH cte AS (SELECT NULL AS x, NULL AS y) SELECT x, y, x IS NULL FROM cte; CREATE VIEW IF NOT EXISTS v_t2_5168 AS SELECT y FROM t2; DELETE FROM t2 WHERE x > (SELECT AVG(x) FROM t2); CREATE TEMP VIEW IF NOT EXISTS v_t1_4396 AS SELECT b FROM t1; SELECT RANK() OVER (PARTITION BY x ORDER BY x GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2; SELECT COUNT(*) FROM T; SELECT GROUP_CONCAT(c) OVER (PARTITION BY c ORDER BY c GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T; INSERT INTO t2 SELECT * FROM t2; SELECT COUNT(*) FROM t2; ALTER TABLE t2 ADD COLUMN extra_3708 ANY DEFAULT CURRENT_TIMESTAMP; UPDATE T SET c = 1 WHERE c IS NOT NULL RETURNING *; CREATE TABLE T ( a TEXT, b INTEGER, c REAL ); INSERT INTO T VALUES ('a',1,2.0), ('a',2,-3.0), ('b',1,4.5); SELECT a,b,c, SUM(c) OVER ( PARTITION BY a ORDER BY b ) AS d FROM T; CREATE TEMP VIEW IF NOT EXISTS v_t2_8550 AS SELECT y FROM t2; ALTER TABLE t2 DROP COLUMN y; SELECT * FROM t2 WHERE y IN (SELECT y FROM t2 WHERE y LIKE "%%"); WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<36) SELECT SUM(x) FROM cnt; ALTER TABLE t2 DROP COLUMN x; ANALYZE t1; SELECT COUNT(*) FILTER (WHERE b IS NOT NULL), SUM(rowid) FILTER (WHERE b > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(b) FILTER (WHERE b > 0 AND b < 100), COUNT(*) FILTER (WHERE typeof(b) = "text") FROM T; ANALYZE; 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; UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *; VACUUM; WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte; INSERT OR ABORT INTO t2 VALUES ('x', 0); DELETE FROM t1 WHERE rowid = 60; ALTER TABLE t2 RENAME COLUMN x TO x_r3341; SELECT LAG(x, x) OVER (PARTITION BY x ORDER BY x GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2; WITH cte(x) AS (SELECT b FROM t1) SELECT x FROM cte; INSERT OR ABORT INTO T VALUES (0, NULL, 0); VACUUM; RELEASE sp4085; UPDATE t1 SET a = NULL WHERE a IS NOT NULL RETURNING *; INSERT OR ABORT INTO t2 VALUES (0, 'x'); CREATE TRIGGER IF NOT EXISTS trg_t2_9589 BEFORE UPDATE ON t2 FOR EACH ROW BEGIN INSERT INTO t2(x) VALUES (NULL); END; WITH a AS (SELECT * FROM t1 WHERE b IS NOT NULL), b AS (SELECT * FROM a WHERE b > 0), c AS (SELECT * FROM b LIMIT 10) SELECT * FROM c; ALTER TABLE T RENAME TO T_r715; RELEASE sp9621; DELETE FROM t1 WHERE rowid = 45; SAVEPOINT sp9621; PRAGMA empty_result_callbacks; SAVEPOINT sp4085; .scanstats est ((BEGIN)) IMMEDIATE; CREATE TABLE main.T ( a TEXT, b REAL ); INSERT INTO T VALUES ('' || ('a'),substr(CAST(-(-(round('_'))) AS DATE), -(-(0)))), ('b',-200.5), ('c',9e999); SELECT a,b, LEAD(b,1) OVER (ORDER BY b DESC) AS c, NTILE(2) OVER (ORDER BY b DESC) AS d FROM T; .echo off .import corrupt001.db main CREATE TABLE T ( a INTEGER, b TEXT, c REAL ); INSERT INTO T VALUES (1,'a',3.14), (1,'b',-7.75), (2,'c',-9e999); SELECT b,a,c, RANK() OVER (PARTITION BY a ORDER BY c DESC) AS d FROM T; .indexes main BEGIN EXCLUSIVE; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE "t1"(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE NOT NOT NOT (+i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c) ; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE +i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; /**/ PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; PRAGMA hard_heap_limit = 50000000; .import random-json.db main PRAGMA parser_trace = 1; PRAGMA secure_delete = FALSE; PRAGMA vdbe_listing = YES; PRAGMA quick_check; .eqp on CREATE TABLE t1(a TEXT, ax INTEGER, b INT, PRIMARY KEY(a,ax)) WITHOUT ROWID; WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL sELECT i+1 FROM c WHERE i<10) INSERT INTO t1(a,ax,b) SELECT printf('%02x',i+160), random(), i FROM c; CREATE INDEX t1a ON t1(a); CREATE TABLE t2(x,y); CREATE TABLE [t3](cnt); WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<4) INSERT INTO t3(cnt) WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT i FROM c; SELECT count(*) FROM _m; REINDEX t2; INSERT INTO t2 DEFAULT VALUES; WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte; UPDATE t3 SET cnt = '' RETURNING *; SELECT COUNT(*) FROM t2; INSERT OR ROLLBACK INTO t1 VALUES ('x', -7, -2); SELECT SUM(x) FROM t2; SELECT * FROM t1 WHERE ax > (SELECT MAX(ax) FROM t1); VACUUM; SELECT * FROM t2; DELETE FROM t1 WHERE 1 RETURNING *; DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1); CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z"); CREATE TABLE T ( A VARCHAR(20), B VARCHAR(30), C VARCHAR(30), PRIMARY KEY (A, B), UNIQUE (A, C) ); INSERT INTO T VALUES ('a', 'p', 'x'); INSERT INTO T VALUES ('a', 'q', 'y'); INSERT INTO T VALUES ('b', 'p', 'z'); INSERT INTO T VALUES ('c', 'r', 'w'); INSERT INTO T VALUES ('d', 's', 'v'); SELECT A, COUNT(DISTINCT B) AS D FROM T GROUP BY A HAVING COUNT(DISTINCT B) >= 1; DROP TABLE t0; SELECT GROUP_CONCAT(y, '|') FROM t2; SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid; SELECT * FROM t1; COMMIT /**/ TRANSACTION; ALTER TABLE t1 RENAME COLUMN ax TO ax_r1826; ALTER TABLE t2 RENAME COLUMN y TO y_r2244; SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 ORDER BY a LIMIT 1 OFFSET 1000); INSERT INTO t1 VALUES (NULL, NULL, 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, ax = excluded.ax, b = excluded.b; DROP VIEW IF EXISTS t1; ALTER TABLE t1 DROP COLUMN b; SELECT 0x0ACB29BM205381; SELECT sqlite_compileoption_used('我的天你是怎么了'); SELECT 1 >> -999999999999999999999999999; SELECT sqlite_compileoption_get($1); SELECT sqlite_version(); SELECT * FROM t1; UPDATE T SET a = ''; INSERT INTO T SELECT * FROM T; SELECT COUNT(x) FROM t2; SELECT * FROM t2; SELECT LAG(a, 2, a) OVER (PARTITION BY a ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1; ALTER TABLE t2 RENAME COLUMN y TO y_r2666; ANALYZE; PRAGMA max_page_count = 5000000; SELECT * FROM T WHERE a < ALL (SELECT a FROM T); SELECT * FROM T WHERE a IN (SELECT a FROM T LIMIT 0); SELECT * FROM T AS a INNER JOIN t2 AS b ON a.rowid = b.rowid; ALTER TABLE t1 RENAME COLUMN a TO a_r2942; SELECT STRING_AGG(ax, '|') FROM t1; END TRANSACTION; WITH cte AS (SELECT NULL AS x, NULL AS y) SELECT x, y, x IS NULL FROM cte; CREATE VIEW IF NOT EXISTS v_t2_5168 AS SELECT y FROM t2; DELETE FROM t2 WHERE x > (SELECT AVG(x) FROM t2); CREATE TEMP VIEW IF NOT EXISTS v_t1_4396 AS SELECT b FROM t1; SELECT RANK() OVER (PARTITION BY x ORDER BY x GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2; SELECT COUNT(*) FROM T; SELECT GROUP_CONCAT(c) OVER (PARTITION BY c ORDER BY c GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T; INSERT INTO t2 SELECT * FROM t2; SELECT COUNT(*) FROM t2; ALTER TABLE t2 ADD COLUMN extra_3708 ANY DEFAULT CURRENT_TIMESTAMP; UPDATE T SET c = 1 WHERE c IS NOT NULL RETURNING *; CREATE TABLE T ( a TEXT, b INTEGER, c REAL ); INSERT INTO T VALUES ('a',1,2.0), ('a',2,-3.0), ('b',1,4.5); SELECT a,b,c, SUM(c) OVER ( PARTITION BY a ORDER BY b ) AS d FROM T; CREATE TEMP VIEW IF NOT EXISTS v_t2_8550 AS SELECT y FROM t2; ALTER TABLE t2 DROP COLUMN y; SELECT * FROM t2 WHERE y IN (SELECT y FROM t2 WHERE y LIKE "%%"); WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<36) SELECT SUM(x) FROM cnt; ALTER TABLE t2 DROP COLUMN x; ANALYZE t1; SELECT COUNT(*) FILTER (WHERE b IS NOT NULL), SUM(rowid) FILTER (WHERE b > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(b) FILTER (WHERE b > 0 AND b < 100), COUNT(*) FILTER (WHERE typeof(b) = "text") FROM T; ANALYZE; 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; UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *; VACUUM; WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte; INSERT OR ABORT INTO t2 VALUES ('x', 0); DELETE FROM t1 WHERE rowid = 60; ALTER TABLE t2 RENAME COLUMN x TO x_r3341; SELECT LAG(x, x) OVER (PARTITION BY x ORDER BY x GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2; WITH cte(x) AS (SELECT b FROM t1) SELECT x FROM cte; INSERT OR ABORT INTO T VALUES (0, NULL, 0); VACUUM; RELEASE sp4085; UPDATE t1 SET a = NULL WHERE a IS NOT NULL RETURNING *; INSERT OR ABORT INTO t2 VALUES (0, 'x'); CREATE TRIGGER IF NOT EXISTS trg_t2_9589 BEFORE UPDATE ON t2 FOR EACH ROW BEGIN INSERT INTO t2(x) VALUES (NULL); END; WITH a AS (SELECT * FROM t1 WHERE b IS NOT NULL), b AS (SELECT * FROM a WHERE b > 0), c AS (SELECT * FROM b LIMIT 10) SELECT * FROM c; ALTER TABLE T RENAME TO T_r715; RELEASE sp9621; DELETE FROM t1 WHERE rowid = 45; DROP TRIGGER IF EXISTS t1; REINDEX t1; DELETE FROM t2 WHERE x > (SELECT AVG(x) FROM t2) RETURNING *; CREATE TRIGGER IF NOT EXISTS trg_T_8062 AFTER UPDATE OF c ON T BEGIN SELECT RAISE(FAIL, 'no'); END; ALTER TABLE T ADD COLUMN extra_8627 INT COLLATE NOCASE; ROLLBACK; ``` ## Actual output ```sql Usage: /home/test/sqlite3-src/build/sqlite3 [OPTIONS] FILENAME [SQL] FILENAME is the name of an SQLite database. A new database is created if the file does not previously exist. OPTIONS include: -append append the database to the end of the file -ascii set output mode to 'ascii' -bail stop after hitting an error -batch force batch I/O -box set output mode to 'box' -column set output mode to 'column' -cmd COMMAND run "COMMAND" before reading stdin -csv set output mode to 'csv' -deserialize open the database using sqlite3_deserialize() -echo print commands before execution -init FILENAME read/process named file -[no]header turn headers on or off -help show this message -html set output mode to HTML -interactive force interactive I/O -json set output mode to 'json' -line set output mode to 'line' -list set output mode to 'list' -lookaside SIZE N use N entries of SZ bytes for lookaside memory -markdown set output mode to 'markdown' -maxsize N maximum size for a --deserialize database -memtrace trace all memory allocations and deallocations -mmap N default mmap size set to N -newline SEP set output row separator. Default: '\n' -nofollow refuse to open symbolic links to database files -nonce STRING set the safe-mode escape nonce -nullvalue TEXT set text string for NULL values. Default '' -pagecache SIZE N use N slots of SZ bytes each for page cache memory -quote set output mode to 'quote' -readonly open the database read-only -safe enable safe-mode -separator SEP set output column separator. Default: '|' -stats print memory stats before each finalize -table set output mode to 'table' -tabs set output mode to 'tabs' -version show SQLite version -vfs NAME use NAME as the default VFS ``` ## Expectation ```sql ``` ## Flag ``` -help ```