This commit is contained in:
2026-06-24 13:47:14 +02:00
commit fd930e15cb
2377 changed files with 1213931 additions and 0 deletions
+14
View File
@@ -0,0 +1,14 @@
(1) no such table: t1 in "INSERT INTO t1(a,b,c) VALUES(1,'abcdef',5.5),(3,'cantaloupe',NULL);"
(1) no such table: t1 in "SELECT w, x, y, '|' FROM t1 ORDER BY a;"
(1) no such table: t1 in "ALTER TABLE t1 ADD COLUMN extra_5082 DATETIME COLLATE RTRIM;"
(1) unable to identify the object to be reindexed in "REINDEX t1;"
(1) no such column: c1 in "CREATE TABLE t0(c0 PRIMARY KEY, c2 AS (c0+c1-c3) REFERENCES t0, c3, extra_8860 TINYINT COLLATE RTRIM)"
(1) statement aborts at 110: error in table t0 after drop column: no such column: c1; [ALTER TABLE t0 DROP COLUMN c1;]
(1) statement aborts at 1: cannot commit - no transaction is active; [COMMIT;]
(1) no such table: t1 in "SELECT * FROM t1 WHERE EXISTS (SELECT 1 FROM t1 WHERE 1 = 1);"
(1) statement aborts at 1: cannot commit - no transaction is active; [END;]
(1) statement aborts at 1: cannot commit - no transaction is active; [COMMIT TRANSACTION;]
(1) no such table: t1 in "INSERT INTO t1 VALUES (1, 'x', 1, 1, 'x', 'x') ON CONFLICT(w) DO UPDATE SET w = excluded.w, x = excluded.x, y = excluded.y;"
(1) no such table: t1 in "SELECT * FROM t1 t1 JOIN t1 t2 ON t1.b = (SELECT b FROM t1 LIMIT 1);"
(1555) statement aborts at 31: UNIQUE constraint failed: T.A; [INSERT INTO T SELECT * FROM T;]
(1) no such table: t1 in "INSERT INTO t1 SELECT * FROM t1;"
+2
View File
@@ -0,0 +1,2 @@
a|c,d
b|
@@ -0,0 +1,239 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
SAVEPOINT sp4002;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES ((x'4e704b3874a073' + 0.0), ('' || ('') || ('Wernher') || ''), 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
CREATE TABLE T (
a INTEGER,
b TEXT,
c INTEGER
);
INSERT INTO T VALUES (1,'a',NULL), (2,'b',1), (3,'c',2);
WITH RECURSIVE d(a,b,c,e) AS (
SELECT *,1 FROM T WHERE c IS NULL
UNION ALL
SELECT T.a,T.b,T.c,d.e+1
FROM T JOIN d ON T.c=d.a
)
SELECT * FROM d;
PRAGMA query_only;
ATTACH DATABASE ((':memory:' || '') || '') AS aux80;
.scanstats on
PRAGMA page_count;
SAVEPOINT sp1489;
PRAGMA parser_trace = FALSE;
PRAGMA wal_checkpoint('TRUNCATE');
PRAGMA cell_size_check = ON;
.eqp auto
CREATE TABLE t1(x INTEGER PRIMARY KEY, y, z);
CREATE TABLE t2(a, b);
CREATE VIEW agg2 AS SELECT a, sum(b) AS m FROM t2 GROUP BY a;
SELECT t1.z, agg2.m FROM t1 JOIN agg2 ON t1.y=agg2.m WHERE t1.x IN (date(nan, 'start of month'),hex(12345678),3);
CREATE TABLE t920(x);
INSERT INTO t920 VALUES(3),(4),(5);
SELECT * FROM t920,(SELECT 0 FROM t920),(VALUES(9)) WHERE 5 IN (x);
INSERT INTO t1 VALUES (NULL, NULL, NULL);
UPDATE t1 SET y = json_object('k', y) WHERE rowid = 1;
CREATE TABLE T (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15) noT NULL,
C DOUBLE PRECISION
);
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
INSERT INTO T VALUES ('b', 'q', -0.000000001);
INSERT INTO T VALUES ('c', 'r', 0.0);
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
INSERT INTO T VALUES ('f', 't', 750.25);
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) /* NTILE(4) */ AS F FROM T GROUP BY B;
RELEASE sp1489;
INSERT INTO t2 SELECT * FROM t2;
SELECT MAX(b) FROM t2;
SELECT * FROM t1 AS a INNER JOIN t2 AS b ON a.rowid = b.rowid;
SELECT * FROM t2 AS a LEFT JOIN t2 AS b ON a.rowid = b.rowid;
SELECT C, (SELECT MAX(C) FROM T) AS max_val FROM T;
SELECT * FROM t2 WHERE a IN (SELECT a FROM t2 t2 WHERE t2.a = t2.a);
WITH cte AS (SELECT * FROM t2 WHERE a = (SELECT MAX(a) FROM t2)) SELECT * FROM cte;
ALTER TABLE T RENAME TO T_r974;
CREATE TEMP VIEW IF NOT EXISTS v_T_9533 AS SELECT B FROM T;
DETACH DATABASE aux80;
INSERT INTO t920 VALUES (NULL);
ANALYZE t2;
UPDATE t1 SET x = x + 1 WHERE x BETWEEN 0 AND 100;
ANALYZE;
CREATE TRIGGER IF NOT EXISTS trg_T_7612 AFTER DELETE ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
UPDATE T SET C = json_object('k', C);
SELECT LAG(B, 2, B) OVER (ORDER BY B ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
SELECT MIN(y) FROM t1;
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (1,1.5), (2,-7.25), (3,0.0);
SELECT a,b FROM T WHERE a >= 2 ORDER BY b;
ALTER TABLE t920 RENAME TO t920_r731;
SELECT SUM(b) FROM t2;
SELECT NTILE(1) OVER (ORDER BY B ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
VACUUM;
INSERT OR FAIL INTO t920 VALUES (-4);
SELECT TOTAL(b) FROM t2;
CREATE TEMP VIEW IF NOT EXISTS v_t1_6556 AS SELECT y FROM t1;
PRAGMA journal_mode = 'TRUNCATE';
CREATE VIEW IF NOT EXISTS v_t920_142 AS SELECT x FROM t920;
ROLLBACK TRANSACTION TO SAVEPOINT sp4002;
RELEASE SAVEPOINT sp4002;
WITH cte AS (SELECT DISTINCT a FROM T) SELECT * FROM cte;
PRAGMA legacy_file_format;
SAVEPOINT sp4002;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
CREATE TABLE T (
a INTEGER,
b TEXT,
c INTEGER
);
INSERT INTO T VALUES (1,'a',NULL), (2,'b',1), (3,'c',2);
WITH RECURSIVE d(a,b,c,e) AS (
SELECT *,1 FROM T WHERE c IS NULL
UNION ALL
SELECT T.a,T.b,T.c,d.e+1
FROM T JOIN d ON T.c=d.a
)
SELECT * FROM d;
PRAGMA query_only;
ATTACH DATABASE ((':memory:' || '') || '') AS aux80;
.scanstats on
PRAGMA page_count;
SAVEPOINT sp1489;
PRAGMA parser_trace = FALSE;
PRAGMA wal_checkpoint('TRUNCATE');
PRAGMA cell_size_check = ON;
.eqp auto
CREATE TABLE t1(x INTEGER PRIMARY KEY, y, z);
CREATE TABLE t2(a, b);
CREATE VIEW agg2 AS SELECT a, sum(b) AS m FROM t2 GROUP BY a;
SELECT t1.z, agg2.m FROM t1 JOIN agg2 ON t1.y=agg2.m WHERE t1.x IN (date(nan, 'start of month'),hex(12345678),3);
CREATE TABLE t920(x);
INSERT INTO t920 VALUES(3),(4),(5);
SELECT * FROM t920,(SELECT 0 FROM t920),(VALUES(9)) WHERE 5 IN (x);
INSERT INTO t1 VALUES (NULL, NULL, NULL);
UPDATE t1 SET y = json_object('k', y) WHERE rowid = 1;
CREATE TABLE T (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15) noT NULL,
C DOUBLE PRECISION
);
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
INSERT INTO T VALUES ('b', 'q', -0.000000001);
INSERT INTO T VALUES ('c', 'r', 0.0);
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
INSERT INTO T VALUES ('f', 't', 750.25);
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) /* NTILE(4) */ AS F FROM T GROUP BY B;
RELEASE sp1489;
INSERT INTO t2 SELECT * FROM t2;
SELECT MAX(b) FROM t2;
SELECT * FROM t1 AS a INNER JOIN t2 AS b ON a.rowid = b.rowid;
SELECT * FROM t2 AS a LEFT JOIN t2 AS b ON a.rowid = b.rowid;
SELECT C, (SELECT MAX(C) FROM T) AS max_val FROM T;
SELECT * FROM t2 WHERE a IN (SELECT a FROM t2 t2 WHERE t2.a = t2.a);
WITH cte AS (SELECT * FROM t2 WHERE a = (SELECT MAX(a) FROM t2)) SELECT * FROM cte;
ALTER TABLE T RENAME TO T_r974;
CREATE TEMP VIEW IF NOT EXISTS v_T_9533 AS SELECT B FROM T;
DETACH DATABASE aux80;
INSERT INTO t920 VALUES (NULL);
ANALYZE t2;
UPDATE t1 SET x = x + 1 WHERE x BETWEEN 0 AND 100;
ANALYZE;
CREATE TRIGGER IF NOT EXISTS trg_T_7612 AFTER DELETE ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
UPDATE T SET C = json_object('k', C);
SELECT LAG(B, 2, B) OVER (ORDER BY B ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
SELECT MIN(y) FROM t1;
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (1,1.5), (2,-7.25), (3,0.0);
SELECT a,b FROM T WHERE a >= 2 ORDER BY b;
ALTER TABLE t920 RENAME TO t920_r731;
SELECT SUM(b) FROM t2;
SELECT NTILE(1) OVER (ORDER BY B ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
VACUUM;
INSERT OR FAIL INTO t920 VALUES (-4);
SELECT TOTAL(b) FROM t2;
CREATE TEMP VIEW IF NOT EXISTS v_t1_6556 AS SELECT y FROM t1;
PRAGMA journal_mode = 'TRUNCATE';
CREATE VIEW IF NOT EXISTS v_t920_142 AS SELECT x FROM t920;
ROLLBACK TRANSACTION TO SAVEPOINT sp4002;
RELEASE SAVEPOINT sp4002;
WITH cte AS (SELECT DISTINCT a FROM T) SELECT * FROM cte;
PRAGMA legacy_file_format;
CREATE VIEW IF NOT EXISTS v_t1_4937 AS SELECT y FROM t1;
INSERT INTO t920 VALUES (NULL);
SELECT COUNT(*) FILTER (WHERE x IS NOT NULL), SUM(rowid) FILTER (WHERE x > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(x) FILTER (WHERE x > 0 AND x < 100), COUNT(*) FILTER (WHERE typeof(x) = "text") FROM t920;
ALTER TABLE t1 RENAME COLUMN y TO y_r472;
CREATE TRIGGER IF NOT EXISTS trg_t2_9428 BEFORE DELETE ON t2 FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END;
INSERT INTO t920 VALUES (NULL);
SELECT COUNT(*) FROM t2;
UPDATE T SET a = NULL WHERE a BETWEEN 0 AND 100;
CREATE TRIGGER IF NOT EXISTS trg_t2_3746 AFTER INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END;
CREATE TRIGGER IF NOT EXISTS trg_T_9004 BEFORE DELETE ON T BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DROP VIEW IF EXISTS t920;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t2_332 ON t2(b) WHERE b IS NOT NULL;
```
## Actual output
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
Braun|30|3
Wernher|10|0
von|20|2
Braun|30
Wernher|10
von|20
```
## Expectation
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
Braun|30|3
Wernher|10|0
von|20|2
Braun|30
Wernher|10
von|20
```
## Flag
```
```
@@ -0,0 +1,56 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (if(-CAST(1 AS CLOB), 1, 1), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
INSERT INTO t1 DEFAULT VALUES;
SELECT COUNT(a) FROM 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 t1;
SELECT GROUP_CONCAT(a, '.') FILTER (WHERE a IS NOT NULL) OVER (ORDER BY a RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM t1;
SELECT COUNT(*) FILTER (WHERE a IS NOT NULL), SUM(rowid) FILTER (WHERE a > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(a) FILTER (WHERE a > 0 AND a < 100), COUNT(*) FILTER (WHERE typeof(a) = "text") FROM t1;
```
## Actual output
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
| b | c | _ROWID_ |
|-------|----|---------|
| Braun | 30 | 3 |
| von | 20 | 2 |
| b | c |
|-------|----|
| Braun | 30 |
| von | 20 |
```
## Expectation
```sql
```
## Flag
```
-markdown
```
@@ -0,0 +1,162 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
ATTACH DATABASE ':memory:' AS aux36;
.eqp on
.clone new_db
SAVEPOINT sp6007;
CREATE TABLE t1(a BIGINT PRIMARY KEY, b TEXT, c INT, d INT);
-- PRAGMA short_column_names;
INSERT INTO t1 VALUES (x'7b90b0351e531a0993e701583bc65b31', '' || ('Wernher'), 'ÅÄÖËŸÏaáàưôốồỗổộơớờỡởợđ', if('NaN', strftime('%Y-%m-%d', format('%s', NULL)), json_remove(1.0, '$.key', '$[0]'), 100, 1, 100));
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
SAVEPOINT sp9475;
SELECT -if(0, 2, 1, 2)147483648x0ACB29BM205381;
SELECT sqlite_compileoption_used('我的天你是怎么了');
SELECT 1 >> -999999999999999999999999999;
SELECT sqlite_compileoption_get($1);
SELECT sqlite_version();
CREATE TABLE main.main."T" (
a INTEGER,
b REAL,
c REAL
);
INSERT INTO T VALUES (1,1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
WITH _m AS MATERIALIZED (SELECT * FROM T) SELEC_m * FROM T WHERE NOT NOT (NOT NOT (b < 2.0)) ORDER BY b;
INSERT INTO T DEFAULT VALUES;
DELETE FROM T WHERE rowid = 35 RETURNING *;
ROLLBACK TO sp9475;
RELEASE sp9475;
SELECT TOTAL(b) FROM T;
ALTER TABLE T ADD COLUMN extra_1915 DATE COLLATE NOCASE;
SELECT * FROM (SELECT * FROM T) AS sub;
SELECT COUNT(*) FROM T;
SELECT * FROM T AS a JOIN T AS b ON a.rowid = b.rowid;
WITH cte AS (SELECT CASE WHEN a > 0 THEN "pos" ELSE "neg" END AS sign FROM T) SELECT * FROM cte;
CREATE VIRTUAL TABLE T
USING /* char(-1) */ fts5(a,b);
INSERT INTO T VALUES ('a','b c'), ('d','e f');
CREATE TABLE T1 (
A VARCHAR(20),
X VARCHAR(10),
PRIMARY KEY (A, X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10),
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 EXCEPT SELECT A FROM T2;
SELECT a,b FROM T WHERE T MATCH 'b';
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
SELECT * FROM T;
ALTER TABLE t1 ADD COLUMN extra_5180 BOOLEAN DEFAULT '';
CREATE /**/ TABLE T (
a TEXT,
b TEXT,
c REAL
);
INSERT INTO T VALUES ('a','b',5.0), ('a','c',5.0), ('b','d',-8.25);
SELECT a,b,c,
RANK() OVER (PARTITION BY a ORDER BY c DESC) AS d FROM T;
UPDATE T SET a = 'x' WHERE a BETWEEN 0 AND 100;
SELECT * FROM (SELECT * FROM (SELECT * FROM T) AS inner1) AS inner2;
CREATE TABLE T (
A VARCHAR(20),
B VARCHAR(10),
C INTEGER,
PRIMARY KEY (A, B)
);
INSERT INTO T VALUES ('a', 'p', -2147483648);
INSERT INTO T VALUES ('b', 'q', 100);
INSERT INTO T VALUES ('b', 'r', 200);
INSERT INTO T VALUES ('c', 's', 300);
INSERT INTO T VALUES ('d', 't', 2147483647);
INSERT INTO T VALUES ('b', 't', 50);
SELECT A, COUNT(*) AS D, SUM(C) AS E FROM T GROUP BY A HAVING COUNT(*) > 1;
DELETE FROM t1 WHERE d IS NULL;
ALTER TABLE t1 ADD COLUMN extra_7051 TINYINT DEFAULT '';
CREATE TABLE T (
a TEXT,
b TEXT,
c REAL
);
INSERT INTO T VALUES ('a','b',1.0), ('a','c',-1.0), ('b','d',0.0);
SELECT
COALESCE(a,'e') AS d,
COALESCE(b,'f') AS e,
SUM(c) AS f
FROM T
GROUP BY a,b;
RELEASE sp6007;
ALTER TABLE T RENAME COLUMN A TO A_r533;
CREATE INDEX IF NOT EXISTS idx_t1_6721 ON t1(lower(c));
UPDATE t1 SET b = CURRENT_TIMESTAMP WHERE rowid = 1;
SELECT * FROM T;
SELECT C FROM T EXCEPT SELECT C FROM (SELECT * FROM T) AS sub;
INSERT INTO T VALUES (NULL, 'x', 'x') ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
SELECT * FROM T;
CREATE INDEX IF NOT EXISTS idx_t1_3859 ON t1((b + 1));
INSERT OR ABORT INTO T VALUES ('x', '', '');
INSERT INTO T VALUES (NULL, NULL, NULL);
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<16) SELECT COUNT(*) FROM cnt;
SELECT COUNT(*) FILTER (WHERE A IS NOT NULL), SUM(rowid) FILTER (WHERE A > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(A) FILTER (WHERE A > 0 AND A < 100), COUNT(*) FILTER (WHERE typeof(A) = "text") FROM T;
SELECT LAG(c, 2, c) OVER (ORDER BY c ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T;
ANALYZE t1;
DROP INDEX IF EXISTS T;
ALTER TABLE T ADD COLUMN extra_7325 INT8 COLLATE NOCASE;
ALTER TABLE T2 RENAME COLUMN A TO A_r6005;
REINDEX T2;
DETACH DATABASE aux36;
WITH cte AS (SELECT A, ROW_NUMBER() OVER (ORDER BY A) AS rn FROM T2) SELECT * FROM cte WHERE rn <= 5;
CREATE VIEW IF NOT EXISTS v_T2_7058 AS SELECT Y FROM T2;
SELECT LAG(b) OVER (PARTITION BY b ORDER BY b ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
DROP INDEX IF EXISTS T2;
INSERT INTO T VALUES (NULL, NULL, 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
CREATE TRIGGER IF NOT EXISTS trg_T1_1558 BEFORE UPDATE OF X ON T1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
SELECT COUNT(*) FROM T2;
DELETE FROM T2 WHERE A > (SELECT AVG(A) FROM T2) RETURNING *;
UPDATE T SET c = json_object('k', c);
```
## Actual output
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
QUERY PLAN
`--SCAN t2
Braun|30|2
von|20|1
QUERY PLAN
`--SCAN t1 USING COVERING INDEX t1bc
Braun|30
von|20
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,242 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
SAVEPOINT sp2029;
-- PRAGMA foreign_key_check;
CREATE TABLE t1(a TEXT PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST(substr(NULL, 5114149768938225792, 1) AS TEXT), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
ROLLBACK TRANSACTION TO SAVEPOINT sp2029;
RELEASE SAVEPOINT sp2029;
SELECT COUNT(*) FILTER (WHERE a IS NOT NULL), SUM(rowid) FILTER (WHERE a > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(a) FILTER (WHERE a > 0 AND a < 100), COUNT(*) FILTER (WHERE typeof(a) = "text") FROM t1;
SAVEPOINT sp2029;
-- PRAGMA foreign_key_check;
CREATE TABLE t1(a TEXT PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
ROLLBACK TRANSACTION TO SAVEPOINT sp2029;
RELEASE SAVEPOINT sp2029;
SELECT COUNT(*) FILTER (WHERE a IS NOT NULL), SUM(rowid) FILTER (WHERE a > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(a) FILTER (WHERE a > 0 AND a < 100), COUNT(*) FILTER (WHERE typeof(a) = "text") FROM t1;
SAVEPOINT sp2029;
-- PRAGMA foreign_key_check;
CREATE TABLE t1(a TEXT PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
ROLLBACK TRANSACTION TO SAVEPOINT sp2029;
RELEASE SAVEPOINT sp2029;
SELECT COUNT(*) FILTER (WHERE a IS NOT NULL), SUM(rowid) FILTER (WHERE a > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(a) FILTER (WHERE a > 0 AND a < 100), COUNT(*) FILTER (WHERE typeof(a) = "text") FROM t1;
SAVEPOINT sp2029;
-- PRAGMA foreign_key_check;
CREATE TABLE t1(a TEXT PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
ROLLBACK TRANSACTION TO SAVEPOINT sp2029;
RELEASE SAVEPOINT sp2029;
SELECT COUNT(*) FILTER (WHERE a IS NOT NULL), SUM(rowid) FILTER (WHERE a > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(a) FILTER (WHERE a > 0 AND a < 100), COUNT(*) FILTER (WHERE typeof(a) = "text") FROM t1;
SAVEPOINT sp2029;
-- PRAGMA foreign_key_check;
CREATE TABLE t1(a TEXT PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
ROLLBACK TRANSACTION TO SAVEPOINT sp2029;
RELEASE SAVEPOINT sp2029;
SELECT COUNT(*) FILTER (WHERE a IS NOT NULL), SUM(rowid) FILTER (WHERE a > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(a) FILTER (WHERE a > 0 AND a < 100), COUNT(*) FILTER (WHERE typeof(a) = "text") FROM t1;
SAVEPOINT sp2029;
-- PRAGMA foreign_key_check;
CREATE TABLE t1(a TEXT PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
ROLLBACK TRANSACTION TO SAVEPOINT sp2029;
RELEASE SAVEPOINT sp2029;
SELECT COUNT(*) FILTER (WHERE a IS NOT NULL), SUM(rowid) FILTER (WHERE a > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(a) FILTER (WHERE a > 0 AND a < 100), COUNT(*) FILTER (WHERE typeof(a) = "text") FROM t1;
SAVEPOINT sp2029;
-- PRAGMA foreign_key_check;
CREATE TABLE t1(a TEXT PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
ROLLBACK TRANSACTION TO SAVEPOINT sp2029;
RELEASE SAVEPOINT sp2029;
SELECT COUNT(*) FILTER (WHERE a IS NOT NULL), SUM(rowid) FILTER (WHERE a > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(a) FILTER (WHERE a > 0 AND a < 100), COUNT(*) FILTER (WHERE typeof(a) = "text") FROM t1;
SAVEPOINT sp2029;
-- PRAGMA foreign_key_check;
CREATE TABLE t1(a TEXT PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
ROLLBACK TRANSACTION TO SAVEPOINT sp2029;
RELEASE SAVEPOINT sp2029;
SELECT COUNT(*) FILTER (WHERE a IS NOT NULL), SUM(rowid) FILTER (WHERE a > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(a) FILTER (WHERE a > 0 AND a < 100), COUNT(*) FILTER (WHERE typeof(a) = "text") FROM t1;
SAVEPOINT sp2029;
-- PRAGMA foreign_key_check;
CREATE TABLE t1(a TEXT PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
ROLLBACK TRANSACTION TO SAVEPOINT sp2029;
RELEASE SAVEPOINT sp2029;
SELECT COUNT(*) FILTER (WHERE a IS NOT NULL), SUM(rowid) FILTER (WHERE a > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(a) FILTER (WHERE a > 0 AND a < 100), COUNT(*) FILTER (WHERE typeof(a) = "text") FROM t1;
INSERT INTO t1 DEFAULT VALUES;
INSERT INTO t1 VALUES (1, 1, 1, NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
SELECT LAG(c, 0) OVER (ORDER BY c ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1;
ANALYZE t1;
```
## Actual output
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
Braun|30|3
Wernher|10|1
von|20|2
Braun|30
Wernher|10
von|20
```
## Expectation
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
Braun|30|3
Wernher|10|1
von|20|2
Braun|30
Wernher|10
von|20
```
## Flag
```
```
@@ -0,0 +1,110 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
PRAGMA secure_delete = TRUE;
PRAGMA synchronous = 'EXTRA';
ATTACH DATABASE ':memory:' AS aux3;
SAVEPOINT sp3642;
PRAGMA vdbe_debug = NO;
SELECT atanh(randomblob(0))x0ACB29BM205381;
SELECT sqlite_compileoption_used('我的天你是怎么了');
SELECT 1 >> -999999999999999999999999999;
SELECT sqlite_compileoption_get($1);
SELECT sqlite_version();
PRAGMA recursive_triggers = -2173336511320358554;
PRAGMA cache_size;
.cd bugs
PRAGMA encoding=UTF16le;
CREATE TABLE tkt3376(a COLLATE nocase PRIMARY KEY);
INSERT INTO tkt3376 VALUES('abc');
INSERT INTO tkt3376 VALUES('ABX');
SELECT DISTINCT a FROM tkt3376;
WITH cte(x) AS (SELECT a FROM tkt3376) SELECT x FROM cte;
RELEASE sp3642;
PRAGMA temp_store_directory = "/tmp";
PRAGMA data_store_directory = "/tmp";
DELETE FROM tkt3376 WHERE 1;
INSERT INTO tkt3376 VALUES (NULL);
UPDATE tkt3376 SET a = CURRENT_TIMESTAMP WHERE 1 RETURNING *;
DETACH DATABASE aux3;
WITH cte AS (SELECT a, COUNT(*) FROM tkt3376 GROUP BY a) SELECT * FROM cte;
WITH cte AS (SELECT 1 AS x) SELECT x + 0.5 FROM cte;
REINDEX tkt3376;
SELECT * FROM tkt3376 AS a FULL JOIN tkt3376 AS b ON a.rowid = b.rowid;
SELECT * FROM tkt3376;
SELECT MIN(a) FROM tkt3376;
CREATE TABLE T (
a DATE,
b REAL,
c REAL
);
INSERT INTO T VALUES (1,2.0,10.5), (1,-3.5,20.25), (2,9e999,-1.0);
WITH d AS (SELECT a,SUM(b*c) AS e FROM T GROUP BY a) SELECT * FROM d;
INSERT INTO T VALUES (NULL, NULL, NULL);
SELECT * FROM T WHERE (a) IN (SELECT a FROM T);
CREATE INDEX IF NOT EXISTS idx_T_8734 ON T(a);
DROP TABLE IF EXISTS tkt3376;
VACUUM;
```
## 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
```
@@ -0,0 +1,97 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
.headers off
ATTACH DATABASE ':memory:' AS aux55;
-- if(0, {v}, 0, {v}, 0, {v}, {v})
BEGIN EXCLUSIVE;
SAVEPOINT sp5645;
PRAGMA page_count;
PRAGMA count_changes;
PRAGMA count_changes = FALSE;
PRAGMA trusted_schema = ON;
CREATE TABLE [t1](a VARCHAR(9223372036854775808) PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (ifnull('a', 'b'), 'Wernher', (10 + 0.0), 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
.tables non_existent_table
CREATE TABLE [T] (
a INTEGER,
b TEXT,
c REAL
);
INSERT INTO T VALUES (round(1.0, 2),'a',1.25), (2,'b',-3.5), (3,'c',9e999);
WITH d AS (SELECT * FROM T) SELECT * FROM d WHERE +c > 0;
INSERT INTO T VALUES (NULL, NULL, NULL);
SELECT NTH_VALUE(b, b) OVER (PARTITION BY b ORDER BY b ROWS BETWEEN 2 PRECEDING OR 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T;
VACUUM main;
PRAGMA locking_mode = 'NORMAL';
PRAGMA auto_vacuum = 0;
SELECT * FROM t1 AS a RIGHT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, 'x', -7, 0);
SELECT * FROM t1 WHERE (c) IN (SELECT c FROM t1);
UPDATE t1 SET b = 79 WHERE b BETWEEN 0 AND 100;
SELECT MIN(d) FROM t1;
ROLLBACK TRANSACTION TO SAVEPOINT sp5645;
RELEASE SAVEPOINT sp5645;
SELECT GROUP_CONCAT(a) FROM t1;
COMMIT TRANSACTION;
INSERT INTO t1 DEFAULT VALUES;
VACUUM main;
SELECT * FROM t1 NATURAL JOIN t1;
DROP TABLE IF EXISTS t1;
ALTER TABLE t1 RENAME TO t1_r5125;
DETACH DATABASE aux55;
```
## Actual output
```sql
1
0
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
Braun|30|3
Wernher|10|1
von|20|2
Braun|30
Wernher|10
von|20
```
## Expectation
```sql
1
0
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
Braun|30|3
Wernher|10|1
von|20|2
Braun|30
Wernher|10
von|20
```
## Flag
```
```
@@ -0,0 +1,91 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
ATTACH DATABASE ':memory:' AS aux65;
SAVEPOINT sp7910;
PRAGMA table_xinfo(users);
PRAGMA writable_schema = RESET;
.progress CAST(1.7976931348623157e+308 AS BIGINT)
PRAGMA cache_size;
PRAGMA schema_version = 6.283185307179586;
PRAGMA temp_store = '1';
.width
CREATE TABLE t1(a BIGINT PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
ALTER TABLE t1 RENAME TO t1_r4605;
ALTER TABLE t1 DROP COLUMN a;
CREATE TRIGGER IF NOT EXISTS trg_t1_259 AFTER INSERT ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
INSERT INTO t1 SELECT * FROM t1;
UPDATE t1 SET b = '' WHERE NOT b BETWEEN 0 AND 100;
INSERT INTO t1 VALUES ('x', NULL, 1, 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
CREATE TEMP VIEW IF NOT EXISTS v_t1_3309 AS SELECT d FROM t1;
SELECT NTH_VALUE(d, 0) OVER (ORDER BY d) FROM t1;
ROLLBACK TO sp7910;
RELEASE sp7910;
INSERT INTO t1 DEFAULT VALUES;
INSERT INTO t1 VALUES (1, 'x', 'x', 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
DETACH DATABASE aux65;
INSERT OR ABORT INTO t1 VALUES (0, 0, 0, '');
INSERT INTO t1 VALUES ('x', 'x', NULL, 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_7139 AS SELECT a FROM t1;
CREATE TEMP VIEW IF NOT EXISTS v_t1_1291 AS SELECT c FROM t1;
VACUUM main;
ALTER TABLE t1 DROP COLUMN a;
SELECT COUNT(c) FILTER (WHERE NULL) OVER (PARTITION BY c ORDER BY c GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t1;
ANALYZE t1;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<7) SELECT * FROM cnt;
ALTER TABLE t1 RENAME TO t1_r6169;
REINDEX;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_6573 ON t1((b + 1)) WHERE b > 0;
```
## Actual output
```sql
-2000
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
Braun|30|3
Wernher|10|1
von|20|2
Braun|30
Wernher|10
von|20
```
## Expectation
```sql
-2000
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
Braun|30|3
Wernher|10|1
von|20|2
Braun|30
Wernher|10
von|20
```
## Flag
```
```
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,89 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
ATTACH DATABASE ':memory:' AS aux95;
ATTACH DATABASE ':memory:' AS aux6;
CREATE TABLE main.t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST(1 AS NONE), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
DETACH DATABASE aux6;
ALTER TABLE t1 ADD COLUMN extra_3885 FLOAT COLLATE RTRIM;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
PRAGMA full_column_names = NO;
ATTACH DATABASE ':memory:' AS aux6;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
DETACH DATABASE aux6;
ALTER TABLE t1 ADD COLUMN extra_3885 FLOAT COLLATE RTRIM;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
PRAGMA full_column_names = NO;
WITH cte(x) AS (VALUES(NULL),(1),(NULL)) SELECT * FROM cte WHERE x IS NOT NULL;
SELECT NTH_VALUE(a, 1) OVER (PARTITION BY a ORDER BY a) FROM t1;
SELECT AVG(b) OVER (PARTITION BY b ORDER BY b GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_7205 ON t1((a + 1));
INSERT INTO t1 DEFAULT VALUES;
DETACH DATABASE aux95;
```
## Actual output
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
Braun|30|3
Wernher|10|1
von|20|2
Braun|30
Wernher|10
von|20
```
## Expectation
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
Braun|30|3
Wernher|10|1
von|20|2
Braun|30
Wernher|10
von|20
```
## Flag
```
```
@@ -0,0 +1,166 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
BEGIN DEFERRED TRANSACTION;
SAVEPOINT sp4295;
SAVEPOINT sp6056;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (like('%lower%', x'303c152bb6ebe4d8cc67'), 'Wernher', x'98', cos(octet_length(json_set(CAST(x'dc7dea' AS BIGINT), '$.new_key', jsonb_set(123, '$.key', 123)))));
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
SELECT AVG(b) FROM t1;
SELECT COUNT(c) FROM t1;
INSERT INTO t1 DEFAULT VALUES;
SELECT STRING_AGG(d) FROM t1;
CREATE VIEW IF NOT EXISTS v_t1_7391 AS SELECT a FROM t1;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (like('%lower%', 1), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
SELECT AVG(b) FROM t1;
SELECT COUNT(c) FROM t1;
INSERT INTO t1 DEFAULT VALUES;
SELECT STRING_AGG(d) FROM t1;
CREATE VIEW IF NOT EXISTS v_t1_7391 AS SELECT a FROM t1;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (like('%lower%', 1), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
SELECT AVG(b) FROM t1;
SELECT COUNT(c) FROM t1;
INSERT INTO t1 DEFAULT VALUES;
SELECT STRING_AGG(d) FROM t1;
CREATE VIEW IF NOT EXISTS v_t1_7391 AS SELECT a FROM t1;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (like('%lower%', 1), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
SELECT AVG(b) FROM t1;
SELECT COUNT(c) FROM t1;
INSERT INTO t1 DEFAULT VALUES;
SELECT STRING_AGG(d) FROM t1;
CREATE VIEW IF NOT EXISTS v_t1_7391 AS SELECT a FROM t1;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (like('%lower%', 1), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
SELECT AVG(b) FROM t1;
SELECT COUNT(c) FROM t1;
INSERT INTO t1 DEFAULT VALUES;
SELECT STRING_AGG(d) FROM t1;
CREATE VIEW IF NOT EXISTS v_t1_7391 AS SELECT a FROM t1;
INSERT INTO t1 DEFAULT VALUES;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
VACUUM main;
CREATE VIEW IF NOT EXISTS v_t1_6828 AS SELECT a FROM t1;
SELECT * FROM t1 AS a RIGHT JOIN t1 AS b ON a.rowid = b.rowid;
PRAGMA journal_mode = 'OFF';
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_2248 AS SELECT a FROM t1;
ROLLBACK TRANSACTION TO SAVEPOINT sp6056;
RELEASE SAVEPOINT sp6056;
ROLLBACK TRANSACTION TO SAVEPOINT sp4295;
RELEASE SAVEPOINT sp4295;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<9) SELECT x FROM cnt WHERE x > 4;
WITH RECURSIVE r AS (SELECT c FROM t1 WHERE c IS NOT NULL UNION ALL SELECT c FROM r WHERE c > 0 LIMIT 10) SELECT * FROM r;
CREATE TEMP VIEW IF NOT EXISTS v_t1_2021 AS SELECT d FROM t1;
ALTER TABLE t1 RENAME COLUMN c TO c_r8622;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<7) SELECT * FROM cnt;
INSERT INTO t1 VALUES ('x', NULL, NULL, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
END TRANSACTION;
WITH cte AS (SELECT d FROM t1 UNION SELECT d FROM t1) SELECT * FROM cte;
UPDATE t1 SET d = json_object('k', d) WHERE 1 RETURNING *;
INSERT INTO t1 DEFAULT VALUES;
PRAGMA writable_schema = 1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_4249 ON t1(lower(d)) WHERE d IS NOT NULL;
CREATE TRIGGER IF NOT EXISTS trg_t1_1965 AFTER UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT COUNT(*) FROM t1;
```
## Actual output
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
Braun|30|3
von|20|2
Braun|30
von|20
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,445 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
ATTACH DATABASE ':memory:' AS aux95;
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (abs(123.456),1.5), (2,-7.25), (3,0.0);
SELECT a,b FROM T WHERE a >= 2 ORDER BY b;
PRAGMA journal_mode = 'OFF';
PRAGMA fullsync = OFF;
-- -nullvalue "NU11"
BEGIN;
.version
PRAGMA cache_spill = YES;
.stats vmstep
.changes off
.bail on
PRAGMA wal_checkpoint('NOOP');
PRAGMA cache_spill = YES;
PRAGMA foreign_key_check;
.exit -'𠜎'
CREATE TABLE IF NOT EXISTS photo(pk integer primary key, x);
CREATE TABLE IF NOT EXISTS tag(pk integer primary key, fk int, name);
SELECT P.pk from PHOTO P WHERE NOT EXISTS ( SELECT T2.pk from TAG T2 WHERE T2.fk = P.pk EXCEPT SELECT T3.pk from TAG T3 WHERE T3.fk = P.pk AND T3.name LIKE '%foo%');
INSERT INTO photo VALUES(likely(CAST(max(log2(cosh(--(-(5239146445031386448)))), 1, 2, 3) AS BLOB)),1);
INSERT INTO photo VALUES(concat_ws('|', 'a', 'b', 'c'),NULL);
INSERT INTO photo VALUES(sign('abc'),3);
INSERT INTO tag VALUES(11,1,'one');
INSERT INTO tag VALUES(12,1,'two');
INSERT INTO tag VALUES(21,1,'one-b');
SELECT P.pk from PHOTO P WHERE NOT EXISTS (SELECT T2.pk from TAG T2 WHERE T2.fk = P.pk EXCEPT SELECT T3.pk from TAG T3 WHERE T3.fk = P.pk AND T3.name LIKE '%foo%');
WITH a AS (SELECT * FROM tag), b AS (SELECT * FROM a), c AS (SELECT * FROM b), d AS (SELECT * FROM c) SELECT * FROM d;
UPDATE photo SET pk = pk + 1 WHERE 1;
SELECT COUNT(*) FROM photo;
creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z");
DROP TABLE t0;
DROP INDEX IF EXISTS photo;
CREATE TABLE T (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15),
C BIGINT NOT NULL,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', 3000);
INSERT INTO T VALUES ('b', 'q', 9223372036854775807);
INSERT INTO T VALUES ('c', 'r', 1700);
INSERT INTO T VALUES ('e', 'q', -9223372036854775808);
INSERT INTO T VALUES ('f', 'r', 0);
SELECT B, COUNT(*) AS D, SUM(C) AS E, AVG(C) AS F FROM T GROUP BY B HAVING SUM(C) > 0;
ALTER TABLE T RENAME TO T_r4441;
WITH cte AS (SELECT pk, /* PRAGMA fullsync = NO; */ SUM(pk) AS total FROM photo GROUP BY pk) SELECT * FROM cte ORDER BY total DESC;
VACUUM;
ALTER TABLE T RENAME TO T_r7105;
DelETe FROM photo WHERE 0;
SELECT COUNT(*) FILTER (WHERE name IS NOT NULL), SUM(rowid) FILTER (WHERE name > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(name) FILTER (WHERE name > 0 AND name < 100), COUNT(*) FILTER (WHERE typeof(name) = "text") FROM tag;
INSERT OR FAIL INTO tag VALUES ('', -1, -2);
ALTER TABLE photo ADD COLUMN extra_3529 NUMERIC DEFAULT 0;
INSERT OR IGNORE INTO tag VALUES (7, 10, NULL);
REINDEX tag;
REINDEX tag;
CREATE TRIGGER IF NOT EXISTS trg_tag_409 AFTER INSERT ON tag FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
WITH a AS (SELECT * FROM T WHERE C IS NOT NULL), b AS (SELECT * FROM a WHERE C > 0), c AS (SELECT * FROM b LIMIT 10) SELECT * FROM c;
VACUUM main;
.version
PRAGMA cache_spill = YES;
.stats vmstep
.changes off
.bail on
PRAGMA wal_checkpoint('NOOP');
PRAGMA cache_spill = YES;
PRAGMA foreign_key_check;
.exit -'𠜎'
CREATE TABLE IF NOT EXISTS photo(pk integer primary key, x);
CREATE TABLE IF NOT EXISTS tag(pk integer primary key, fk int, name);
SELECT P.pk from PHOTO P WHERE NOT EXISTS ( SELECT T2.pk from TAG T2 WHERE T2.fk = P.pk EXCEPT SELECT T3.pk from TAG T3 WHERE T3.fk = P.pk AND T3.name LIKE '%foo%');
INSERT INTO photo VALUES(likely(CAST(max(log2(2.2250738585072014e-308), 1, 2, 3) AS BLOB)),1);
INSERT INTO photo VALUES(2,2);
INSERT INTO photo VALUES(3,3);
INSERT INTO tag VALUES(11,1,'one');
INSERT INTO tag VALUES(12,1,'two');
INSERT INTO tag VALUES(21,1,'one-b');
SELECT P.pk from PHOTO P WHERE NOT EXISTS (SELECT T2.pk from TAG T2 WHERE T2.fk = P.pk EXCEPT SELECT T3.pk from TAG T3 WHERE T3.fk = P.pk AND T3.name LIKE '%foo%');
WITH a AS (SELECT * FROM tag), b AS (SELECT * FROM a), c AS (SELECT * FROM b), d AS (SELECT * FROM c) SELECT * FROM d;
UPDATE photo SET pk = pk + 1 WHERE 1;
SELECT COUNT(*) FROM photo;
creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z");
DROP TABLE t0;
DROP INDEX IF EXISTS photo;
CREATE TABLE T (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15),
C BIGINT NOT NULL,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', 3000);
INSERT INTO T VALUES ('b', 'q', 9223372036854775807);
INSERT INTO T VALUES ('c', 'r', 1700);
INSERT INTO T VALUES ('e', 'q', -9223372036854775808);
INSERT INTO T VALUES ('f', 'r', 0);
SELECT B, COUNT(*) AS D, SUM(C) AS E, AVG(C) AS F FROM T GROUP BY B HAVING SUM(C) > 0;
ALTER TABLE T RENAME TO T_r4441;
WITH cte AS (SELECT pk, /* PRAGMA fullsync = NO; */ SUM(pk) AS total FROM photo GROUP BY pk) SELECT * FROM cte ORDER BY total DESC;
VACUUM;
ALTER TABLE T RENAME TO T_r7105;
DELETE FROM photo WHERE 0;
SELECT COUNT(*) FILTER (WHERE name IS NOT NULL), SUM(rowid) FILTER (WHERE name > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(name) FILTER (WHERE name > 0 AND name < 100), COUNT(*) FILTER (WHERE typeof(name) = "text") FROM tag;
INSERT OR FAIL INTO tag VALUES ('', -1, -2);
ALTER TABLE photo ADD COLUMN extra_3529 NUMERIC DEFAULT 0;
INSERT OR IGNORE INTO tag VALUES (7, 10, NULL);
REINDEX tag;
REINDEX tag;
CREATE TRIGGER IF NOT EXISTS trg_tag_409 AFTER INSERT ON tag FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
WITH a AS (SELECT * FROM T WHERE C IS NOT NULL), b AS (SELECT * FROM a WHERE C > 0), c AS (SELECT * FROM b LIMIT 10) SELECT * FROM c;
VACUUM main;
.version
PRAGMA cache_spill = YES;
.stats vmstep
.changes off
.bail on
PRAGMA wal_checkpoint('NOOP');
PRAGMA cache_spill = YES;
PRAGMA foreign_key_check;
.exit -'𠜎'
CREATE TABLE IF NOT EXISTS photo(pk integer primary key, x);
CREATE TABLE IF NOT EXISTS tag(pk integer primary key, fk int, name);
SELECT P.pk from PHOTO P WHERE NOT EXISTS ( SELECT T2.pk from TAG T2 WHERE T2.fk = P.pk EXCEPT SELECT T3.pk from TAG T3 WHERE T3.fk = P.pk AND T3.name LIKE '%foo%');
INSERT INTO photo VALUES(likely(CAST(max(log2(2.2250738585072014e-308), 1, 2, 3) AS BLOB)),1);
INSERT INTO photo VALUES(2,2);
INSERT INTO photo VALUES(3,3);
INSERT INTO tag VALUES(11,1,'one');
INSERT INTO tag VALUES(12,1,'two');
INSERT INTO tag VALUES(21,1,'one-b');
SELECT P.pk from PHOTO P WHERE NOT EXISTS (SELECT T2.pk from TAG T2 WHERE T2.fk = P.pk EXCEPT SELECT T3.pk from TAG T3 WHERE T3.fk = P.pk AND T3.name LIKE '%foo%');
WITH a AS (SELECT * FROM tag), b AS (SELECT * FROM a), c AS (SELECT * FROM b), d AS (SELECT * FROM c) SELECT * FROM d;
UPDATE photo SET pk = pk + 1 WHERE 1;
SELECT COUNT(*) FROM photo;
creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z");
DROP TABLE t0;
DROP INDEX IF EXISTS photo;
CREATE TABLE T (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15),
C BIGINT NOT NULL,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', 3000);
INSERT INTO T VALUES ('b', 'q', 9223372036854775807);
INSERT INTO T VALUES ('c', 'r', 1700);
INSERT INTO T VALUES ('e', 'q', -9223372036854775808);
INSERT INTO T VALUES ('f', 'r', 0);
SELECT B, COUNT(*) AS D, SUM(C) AS E, AVG(C) AS F FROM T GROUP BY B HAVING SUM(C) > 0;
ALTER TABLE T RENAME TO T_r4441;
WITH cte AS (SELECT pk, /* PRAGMA fullsync = NO; */ SUM(pk) AS total FROM photo GROUP BY pk) SELECT * FROM cte ORDER BY total DESC;
VACUUM;
ALTER TABLE T RENAME TO T_r7105;
DELETE FROM photo WHERE 0;
SELECT COUNT(*) FILTER (WHERE name IS NOT NULL), SUM(rowid) FILTER (WHERE name > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(name) FILTER (WHERE name > 0 AND name < 100), COUNT(*) FILTER (WHERE typeof(name) = "text") FROM tag;
INSERT OR FAIL INTO tag VALUES ('', -1, -2);
ALTER TABLE photo ADD COLUMN extra_3529 NUMERIC DEFAULT 0;
INSERT OR IGNORE INTO tag VALUES (7, 10, NULL);
REINDEX tag;
REINDEX tag;
CREATE TRIGGER IF NOT EXISTS trg_tag_409 AFTER INSERT ON tag FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
WITH a AS (SELECT * FROM T WHERE C IS NOT NULL), b AS (SELECT * FROM a WHERE C > 0), c AS (SELECT * FROM b LIMIT 10) SELECT * FROM c;
VACUUM main;
.version
PRAGMA cache_spill = YES;
.stats vmstep
.changes off
.bail on
PRAGMA wal_checkpoint('NOOP');
PRAGMA cache_spill = YES;
PRAGMA foreign_key_check;
.exit -'𠜎'
CREATE TABLE IF NOT EXISTS photo(pk integer primary key, x);
CREATE TABLE IF NOT EXISTS tag(pk integer primary key, fk int, name);
SELECT P.pk from PHOTO P WHERE NOT EXISTS ( SELECT T2.pk from TAG T2 WHERE T2.fk = P.pk EXCEPT SELECT T3.pk from TAG T3 WHERE T3.fk = P.pk AND T3.name LIKE '%foo%');
INSERT INTO photo VALUES(likely(CAST(max(log2(2.2250738585072014e-308), 1, 2, 3) AS BLOB)),1);
INSERT INTO photo VALUES(2,2);
INSERT INTO photo VALUES(3,3);
INSERT INTO tag VALUES(11,1,'one');
INSERT INTO tag VALUES(12,1,'two');
INSERT INTO tag VALUES(21,1,'one-b');
SELECT P.pk from PHOTO P WHERE NOT EXISTS (SELECT T2.pk from TAG T2 WHERE T2.fk = P.pk EXCEPT SELECT T3.pk from TAG T3 WHERE T3.fk = P.pk AND T3.name LIKE '%foo%');
WITH a AS (SELECT * FROM tag), b AS (SELECT * FROM a), c AS (SELECT * FROM b), d AS (SELECT * FROM c) SELECT * FROM d;
UPDATE photo SET pk = pk + 1 WHERE 1;
SELECT COUNT(*) FROM photo;
creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z");
DROP TABLE t0;
DROP INDEX IF EXISTS photo;
CREATE TABLE T (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15),
C BIGINT NOT NULL,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', 3000);
INSERT INTO T VALUES ('b', 'q', 9223372036854775807);
INSERT INTO T VALUES ('c', 'r', 1700);
INSERT INTO T VALUES ('e', 'q', -9223372036854775808);
INSERT INTO T VALUES ('f', 'r', 0);
SELECT B, COUNT(*) AS D, SUM(C) AS E, AVG(C) AS F FROM T GROUP BY B HAVING SUM(C) > 0;
ALTER TABLE T RENAME TO T_r4441;
WITH cte AS (SELECT pk, /* PRAGMA fullsync = NO; */ SUM(pk) AS total FROM photo GROUP BY pk) SELECT * FROM cte ORDER BY total DESC;
VACUUM;
ALTER TABLE T RENAME TO T_r7105;
DELETE FROM photo WHERE 0;
SELECT COUNT(*) FILTER (WHERE name IS NOT NULL), SUM(rowid) FILTER (WHERE name > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(name) FILTER (WHERE name > 0 AND name < 100), COUNT(*) FILTER (WHERE typeof(name) = "text") FROM tag;
INSERT OR FAIL INTO tag VALUES ('', -1, -2);
ALTER TABLE photo ADD COLUMN extra_3529 NUMERIC DEFAULT 0;
INSERT OR IGNORE INTO tag VALUES (7, 10, NULL);
REINDEX tag;
REINDEX tag;
CREATE TRIGGER IF NOT EXISTS trg_tag_409 AFTER INSERT ON tag FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
WITH a AS (SELECT * FROM T WHERE C IS NOT NULL), b AS (SELECT * FROM a WHERE C > 0), c AS (SELECT * FROM b LIMIT 10) SELECT * FROM c;
VACUUM main;
.version
PRAGMA cache_spill = YES;
.stats vmstep
.changes off
.bail on
PRAGMA wal_checkpoint('NOOP');
PRAGMA cache_spill = YES;
PRAGMA foreign_key_check;
.exit -'𠜎'
CREATE TABLE IF NOT EXISTS photo(pk integer primary key, x);
CREATE TABLE IF NOT EXISTS tag(pk integer primary key, fk int, name);
SELECT P.pk from PHOTO P WHERE NOT EXISTS ( SELECT T2.pk from TAG T2 WHERE T2.fk = P.pk EXCEPT SELECT T3.pk from TAG T3 WHERE T3.fk = P.pk AND T3.name LIKE '%foo%');
INSERT INTO photo VALUES(likely(CAST(max(log2(2.2250738585072014e-308), 1, 2, 3) AS BLOB)),1);
INSERT INTO photo VALUES(2,2);
INSERT INTO photo VALUES(3,3);
INSERT INTO tag VALUES(11,1,'one');
INSERT INTO tag VALUES(12,1,'two');
INSERT INTO tag VALUES(21,1,'one-b');
SELECT P.pk from PHOTO P WHERE NOT EXISTS (SELECT T2.pk from TAG T2 WHERE T2.fk = P.pk EXCEPT SELECT T3.pk from TAG T3 WHERE T3.fk = P.pk AND T3.name LIKE /**/ '%foo%');
WITH a AS (SELECT * FROM tag), b AS (SELECT * FROM a), c AS (SELECT * FROM b), d AS (SELECT * FROM c) SELECT * FROM d;
UPDATE photo SET pk = pk + 1 WHERE 1;
SELECT COUNT(*) FROM photo;
creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z");
DROP TABLE t0;
DROP INDEX IF EXISTS photo;
CREATE TABLE T (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15),
C BIGINT NOT NULL,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', 3000);
INSERT INTO T VALUES ('b', 'q', 9223372036854775807);
INSERT INTO T VALUES ('c', 'r', 1700);
INSERT INTO T VALUES ('e', 'q', -9223372036854775808);
INSERT INTO T VALUES ('f', 'r', 0);
SELECT B, COUNT(*) AS D, SUM(C) AS E, AVG(C) AS F FROM T GROUP BY B HAVING SUM(C) > 0;
ALTER TABLE T RENAME TO T_r4441;
WITH cte AS (SELECT pk, /* PRAGMA fullsync = NO; */ SUM(pk) AS total FROM photo GROUP BY pk) SELECT * FROM cte ORDER BY total DESC;
VACUUM;
ALTER TABLE T RENAME TO T_r7105;
DELETE FROM photo WHERE 0;
SELECT COUNT(*) FILTER (WHERE name IS NOT NULL), SUM(rowid) FILTER (WHERE name > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(name) FILTER (WHERE name > 0 AND name < 100), COUNT(*) FILTER (WHERE typeof(name) = "text") FROM tag;
INSERT OR FAIL INTO tag VALUES ('', -1, -2);
ALTER TABLE photo ADD COLUMN extra_3529 NUMERIC DEFAULT 0;
INSERT OR IGNORE INTO tag VALUES (7, 10, NULL);
REINDEX tag;
REINDEX tag;
CREATE TRIGGER IF NOT EXISTS trg_tag_409 AFTER INSERT ON tag FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
WITH a AS (SELECT * FROM T WHERE C IS NOT NULL), b AS (SELECT * FROM a WHERE C > 0), c AS (SELECT * FROM b LIMIT 10) SELECT * FROM c;
VACUUM main;
.version
PRAGMA cache_spill = YES;
.stats vmstep
.changes off
.bail on
PRAGMA wal_checkpoint('NOOP');
PRAGMA cache_spill = YES;
PRAGMA foreign_key_check;
.exit -'𠜎'
CREATE TABLE IF NOT EXISTS photo(pk integer primary key, x);
CREATE TABLE IF NOT EXISTS tag(pk integer primary key, fk int, name);
SELECT P.pk from PHOTO P WHERE NOT EXISTS ( SELECT T2.pk from TAG T2 WHERE T2.fk = P.pk EXCEPT SELECT T3.pk from TAG T3 WHERE T3.fk = P.pk AND T3.name LIKE '%foo%');
INSERT INTO photo VALUES(likely(CAST(max(log2(2.2250738585072014e-308), 1, 2, 3) AS BLOB)),1);
INSERT INTO photo VALUES(2,2);
INSERT INTO photo VALUES(3,3);
INSERT INTO tag VALUES(11,1,'one');
INSERT INTO tag VALUES(12,1,'two');
INSERT INTO tag VALUES(21,1,'one-b');
SELECT P.pk from PHOTO P WHERE NOT EXISTS (SELECT T2.pk from TAG T2 WHERE T2.fk = P.pk EXCEPT SELECT T3.pk from TAG T3 WHERE T3.fk = P.pk AND T3.name LIKE '%foo%');
WITH a AS (SELECT * FROM tag), b AS (SELECT * FROM a), c AS (SELECT * FROM b), d AS (SELECT * FROM c) SELECT * FROM d;
UPDATE photo SET pk = pk + 1 WHERE 1;
SELECT COUNT(*) FROM photo;
creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z");
DROP TABLE t0;
DROP INDEX IF EXISTS photo;
CREATE TABLE T (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15),
C BIGINT NOT NULL,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', 3000);
INSERT INTO T VALUES ('b', 'q', 9223372036854775807);
INSERT INTO T VALUES ('c', 'r', 1700);
INSERT INTO T VALUES ('e', 'q', -9223372036854775808);
INSERT INTO T VALUES ('f', 'r', 0);
SELECT B, COUNT(*) AS D, SUM(C) AS E, AVG(C) AS F FROM T GROUP BY B HAVING SUM(C) > 0;
ALTER TABLE T RENAME TO T_r4441;
WITH cte AS (SELECT pk, /* PRAGMA fullsync = NO; */ SUM(pk) AS total FROM photo GROUP BY pk) SELECT * FROM cte ORDER BY total DESC;
VACUUM;
ALTER TABLE T RENAME TO T_r7105;
DELETE FROM photo WHERE 0;
SELECT COUNT(*) FILTER (WHERE name IS NOT NULL), SUM(rowid) FILTER (WHERE name > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(name) FILTER (WHERE name > 0 AND name < 100), COUNT(*) FILTER (WHERE typeof(name) = "text") FROM tag;
INSERT OR FAIL INTO tag VALUES ('', -1, -2);
ALTER TABLE photo ADD COLUMN extra_3529 NUMERIC DEFAULT 0;
INSERT OR IGNORE INTO tag VALUES (7, 10, NULL);
REINDEX tag;
REINDEX tag;
CREATE TRIGGER IF NOT EXISTS trg_tag_409 AFTER INSERT ON tag FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
WITH a AS (SELECT * FROM T WHERE C IS NOT NULL), b AS (SELECT * FROM a WHERE C > 0), c AS (SELECT /* .print https://yewtu.be/watch?v=dQw4w9WgXcQ */ * FROM b LIMIT 10) SELECT * FROM c;
VACUUM main;
.version
PRAGMA cache_spill = YES;
.stats vmstep
.changes off
.bail on
PRAGMA wal_checkpoint('NOOP');
PRAGMA cache_spill = YES;
PRAGMA foreign_key_check;
.exit -'𠜎'
CREATE TABLE IF NOT EXISTS photo(pk integer primary key, x);
CREATE TABLE IF NOT EXISTS tag(pk integer primary key, fk int, name);
SELECT P.pk from PHOTO P WHERE NOT EXISTS ( SELECT T2.pk from TAG T2 WHERE T2.fk = P.pk EXCEPT SELECT T3.pk from TAG T3 WHERE T3.fk = P.pk AND T3.name LIKE '%foo%');
INSERT INTO photo VALUES(likely(CAST(max(log2(2.2250738585072014e-308), 1, 2, 3) AS BLOB)),1);
INSERT INTO photo VALUES(2,2);
INSERT INTO photo VALUES(3,3);
INSERT INTO tag VALUES(11,1,'one');
INSERT INTO tag VALUES(12,1,'two');
INSERT INTO tag VALUES(21,1,'one-b');
SELECT P.pk from PHOTO P WHERE NOT EXISTS (SELECT T2.pk from TAG T2 WHERE T2.fk = P.pk EXCEPT SELECT T3.pk from TAG T3 WHERE T3.fk = P.pk AND T3.name LIKE '%foo%');
WITH a AS (SELECT * FROM tag), b AS (SELECT * FROM a), c AS (SELECT * FROM b), d AS (SELECT * FROM c) SELECT * FROM d;
UPDATE photo SET pk = pk + 1 WHERE 1;
SELECT COUNT(*) FROM photo;
creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z");
DROP TABLE t0;
DROP INDEX IF EXISTS photo;
CREATE TABLE T (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15),
C BIGINT NOT NULL,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', 3000);
INSERT INTO T VALUES ('b', 'q', 9223372036854775807);
INSERT INTO T VALUES ('c', 'r', 1700);
INSERT INTO T VALUES ('e', 'q', -9223372036854775808);
INSERT INTO T VALUES ('f', 'r', 0);
SELECT B, COUNT(*) AS D, SUM(C) AS E, AVG(C) AS F FROM T GROUP BY B HAVING SUM(C) > 0;
ALTER TABLE T RENAME TO T_r4441;
WITH cte AS (SELECT pk, /* PRAGMA fullsync = NO; */ SUM(pk) AS total FROM photo GROUP BY pk) SELECT * FROM cte ORDER BY total DESC;
VACUUM;
ALTER TABLE T RENAME TO T_r7105;
DELETE FROM photo WHERE 0;
SELECT COUNT(*) FILTER (WHERE name IS NOT NULL), SUM(rowid) FILTER (WHERE name > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(name) FILTER (WHERE name > 0 AND name < 100), COUNT(*) FILTER (WHERE typeof(name) = "text") FROM tag;
INSERT OR FAIL INTO tag VALUES ('', -1, -2);
ALTER TABLE photo ADD COLUMN extra_3529 NUMERIC DEFAULT 0;
INSERT OR IGNORE INTO tag VALUES (7, 10, NULL);
REINDEX tag;
REINDEX tag;
CREATE TRIGGER IF NOT EXISTS trg_tag_409 AFTER INSERT ON tag FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
WITH a AS (SELECT * FROM T WHERE C IS NOT NULL), b AS (SELECT * FROM a WHERE C > 0), c AS (SELECT * FROM b LIMIT 10) SELECT * FROM c;
VACUUM main;
ALTER TABLE photo RENAME COLUMN x TO x_r585;
ANALYZE tag;
INSERT INTO tag DEFAULT VALUES;
SELECT COUNT(*) FROM T;
UPDATE photo SET x = json_object('k', x) WHERE x IS NOT NULL;
INSERT OR ROLLBACK INTO photo VALUES (0, 'x');
END TRANSACTION;
SELECT * FROM T AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
SELECT * FROM T AS a LEFT OUTER JOIN tag AS b ON a.rowid = b.rowid;
SELECT COUNT(*) FROM T;
CREATE TRIGGER IF NOT EXISTS trg_photo_6782 BEFORE INSERT ON photo BEGIN SELECT RAISE(FAIL, 'no'); END;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_3307 ON T((B + 1)) WHERE B > 0;
REINDEX photo;
INSERT INTO tag VALUES (1, NULL, 1) ON CONFLICT(pk) DO UPDATE SET pk = excluded.pk, fk = excluded.fk, name = excluded.name;
SELECT * FROM T WHERE C = (SELECT COUNT(*) FROM T);
INSERT OR ROLLBACK INTO photo VALUES ('', 'x');
SELECT * FROM photo;
SELECT x, (SELECT MAX(x) FROM photo) AS max_val FROM photo;
creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z");
DROP TABLE t0;
INSERT INTO T SELECT * FROM T;
CREATE TRIGGER IF NOT EXISTS trg_T_7921 BEFORE INSERT ON T FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
DETACH DATABASE aux95;
ALTER TABLE photo RENAME COLUMN x TO x_r1833;
PRAGMA read_uncommitted = ON;
SELECT * FROM tag AS a LEFT OUTER JOIN T AS b ON a.rowid = b.rowid;
ANALYZE tag;
ANALYZE;
```
## Actual output
```sql
2|-7.25
3|0.0
123.456|1.5
off
SQLite 3.39.0 2022-05-10 23:28:12 764b71267e0b31ff7eaf2a0def7526a1a02dce4d5b456dea060d97ed342ealt1
gcc-14.2.0
0|-1|-1
VM-steps: 5
VM-steps: 3
VM-steps: 3
```
## Expectation
```sql
2|-7.25
3|0.0
123.456|1.5
memory
SQLite 3.51.1 2025-11-28 17:28:25 281fc0e9afc38674b9b0991943b9e9d1e64c6cbdb133d35f6f5c87ff6af38a88
zlib version 1.3.1
gcc-11.4.0 (64-bit)
0|-1|-1
VM-steps: 6
VM-steps: 4
VM-steps: 4
```
## Flag
```
```
@@ -0,0 +1,38 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
ATTACH DATABASE (':memory:' || '') AS aux37;
CREATE TABLE [T] (
a INTEGER,
b REAL,
c REAL
);
INSERT INTO T VALUES (unhex(1, ' '),2.0,10.5), (1,-3.5,20.25), (2,9e999,-1.0);
WITH d AS (SELECT a,SUM(b*c) AS e FROM T GROUP BY a) SELECT * FROM d;
SELECT LEAD(a, 2, 'default') OVER (ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
DETACH DATABASE aux37;
```
## Actual output
```sql
Parse error near line 7: no such function: unhex
INSERT INTO T VALUES (unhex(1, ' '),2.0,10.5), (1,-3.5,20.25), (2,9e999,-1.0);
^--- error here
```
## Expectation
```sql
```
## Flag
```
```
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,80 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
PRAGMA secure_delete = OFF;
PRAGMA trusted_schema;
PRAGMA ignore_check_constraints = YES;
.restore emplyeee.db
CREATE TABLE T1 (
A VARCHAR(-8973762943540037726),
X VARCHAR(10),
PRIMARY KEY (A, X),
UNIQUE (X)
);
CREATE TABLE main.T2 (
A VARCHAR(20),
Y VARCHAR(10) UNIQUE,
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 UNION ALL SELECT A FROM T2 ORDER BY A;
WITH RECURSIVE r AS (SELECT Y /**/ FROM T2 WHERE Y IS NOT NULL UNION ALL SELECT Y FROM r WHERE Y > 0 LIMIT 10) SELECT * FROM r;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<1) SELECT * FROM cnt;
INSERT INTO /**/ T2 DEFAULT VALUES;
CREATE INDEX IF NOT EXISTS idx_T1_6344 ON T1((X + 1)) WHERE X > 0;
DROP INDEX IF EXISTS T1;
```
## Actual output
```sql
0
1
a
b
b
k
k
k
k
k
k
k
k
k
k
1
```
## Expectation
```sql
0
0
a
b
b
k
k
k
k
k
k
k
k
k
k
1
```
## Flag
```
```
@@ -0,0 +1,38 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
CREATE TABLE T (
a TEXT,
b TEXT,
c REAL
);
INSERT INTO T VALUES ('a','b',x'682f554feb092cde0c4f302c570051'), ('a','c',5.0), ('b','d',-8.25);
SELECT a,b,c,
RANK() OVER (PARTITION BY a ORDER BY c DESC) AS d FROM T;
```
## Actual output
```sql
a|b|h/UOë ,Þ O0,W|1
a|c|5.0|2
b|d|-8.25|1
```
## Expectation
```sql
a|b|h/UOë ,Þ^LO0,W|1
a|c|5.0|2
b|d|-8.25|1
```
## Flag
```
```
@@ -0,0 +1,81 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
PRAGMA checkpoint_fullsync = FALSE;
PRAGMA reverse_unordered_selects;
.timer sin(NULL)
PRAGMA read_uncommitted = NO;
BEGIN DEFERRED TRANSACTION;
PRAGMA vdbe_trace = OFF;
.explain auto
CREATE TABLE T1 (
a VARCHAR(255),
b REAL
);
CREATE TABLE T2 (
a INTEGER,
b REAL
);
INSERT INTO T1 VALUES (1.7976931348623157e+308,1.0);
INSERT INTO T2 VALUES (1,-1.0),(2,9e999);
INSERT OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
PRAGMA quick_check;
PRAGMA vdbe_addoptrace = TRUE;
CREATE TABLE IF NOT EXISTS photo(pk integer primary key, x);
CREATE TABLE IF NOT EXISTS main.tag(pk integer primary key, fk int, name);
SELECT P.pk from PHOTO P WHERE NOT NOT (NOT NOT (NOT EXISTS ( SELECT T2.pk from TAG T2 WHERE T2.fk = P.pk EXCEPT SELECT T3.pk from TAG T3 WHERE T3.fk = P.pk AND T3.name LIKE ('%foo%' || '')))) ;
INSERT INTO photo VALUES(sign(-(-(1))),1);
INSERT INTO photo VALUES(2,2);
INSERT INTO photo VALUES(3,3);
INSERT INTO /**/ tag VALUES(11,1,'one');
INSERT INTO tag VALUES(12,1,'two');
INSERT INTO tag VALUES(21,1,'one-b');
SELECT P.pk from PHOTO P WHERE NOT EXISTS (SELECT T2.pk from TAG T2 WHERE T2.fk = P.pk EXCEPT SELECT T3.pk from TAG T3 WHERE T3.fk = P.pk AND T3.name LIKE '%foo%');
DELETE FROM photo WHERE +rowid = 41;
ALTER TABLE photo RENAME TO photo_r2124;
PRAGMA defer_foreign_keys = YES;
ALTER TABLE tag RENAME COLUMN pk TO pk_r9440;
INSERT INTO T2 DEFAULT VALUES;
CREATE TRIGGER IF NOT EXISTS trg_T1_8903 AFTER UPDATE OF b ON T1 BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT STRING_AGG(b, '|') FROM T1;
SELECT FIRST_VALUE(b) OVER (ORDER BY b RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T1;
INSERT INTO T1 VALUES (NULL, NULL);
SELECT LEAD(a, 1, NULL) OVER (PARTITION BY a ORDER BY a) FROM T2;
END;
INSERT INTO T2 VALUES (NULL, NULL);
ALTER TABLE tag RENAME COLUMN name TO name_r4556;
```
## Actual output
```sql
0
1.79769313486232e+308|1.0
1|-1.0
2|Inf
ok
2
3
-1.0
1.0
Inf
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,91 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
BEGIN DEFERRED;
CREATE TABLE t0 (c0, c1 NOT NULL DEFAULT x'36bf036c468fa1a358c1f1926eb427', c2, PRIMARY KEY (c0, c1));
INSERT INTO t0(c2) VALUES (NULL), (NULL);
INSERT INTO t0(c2) VALUES('a');
SELECT DISTINCT * FROM t0 WHERE NULL IS t0.c0;
SELECT * FROM t0 WHERE (( (0 IS NOT FALSE) OR NOT (0 IS FALSE OR (t0.c0 = 1)) ) IS 0);
SELECT ((0 IS NOT FALSE) OR NOT (0 IS FALSE OR (t0.c0 = 1)) ) IS 0 FROM t0;
SELECT ( (0 IS NOT FALSE) OR NOT (0 IS 0 OR (t0.c0 = 1)) ) IS 0 FROM t0;
SELECT ((0 IS NOT FALSE) OR NOT (0 IS FALSE OR (t0.c0 = 1)) ) FROM t0;
SELECT NOT (0 IS FALSE OR (t0.c0 = 1)) FROM t0;
SELECT * FROM t0 AS a FULL JOIN t0 AS b ON a.rowid = b.rowid;
COMMIT;
SELECT * FROM t0;
DELETE FROM t0 WHERE rowid = 35 RETURNING *;
INSERT INTO t0 SELECT * FROM t0;
ALTER TABLE t0 RENAME COLUMN c0 TO c0_r2848;
CREATE TRIGGER IF NOT EXISTS trg_t0_9604 AFTER UPDATE ON t0 FOR EACH ROW BEGIN INSERT INTO t0(c2) VALUES (NULL); END;
INSERT INTO t0 DEFAULT VALUES;
SELECT * FROM t0 WHERE c2 IN (SELECT c2 FROM t0 LIMIT 0);
```
## Actual output
```sql
|6¿lF¡£XÁñ’n´'|
|6¿lF¡£XÁñ’n´'|a
|6¿lF¡£XÁñ’n´'|
|6¿lF¡£XÁñ’n´'|
|6¿lF¡£XÁñ’n´'|a
1
1
1
1
1
1
0
0
0
0
0
0
|6¿lF¡£XÁñ’n´'|||6¿lF¡£XÁñ’n´'|
|6¿lF¡£XÁñ’n´'|||6¿lF¡£XÁñ’n´'|
|6¿lF¡£XÁñ’n´'|a||6¿lF¡£XÁñ’n´'|a
|6¿lF¡£XÁñ’n´'|
|6¿lF¡£XÁñ’n´'|
|6¿lF¡£XÁñ’n´'|a
```
## Expectation
```sql
|6¿^ClF¡£XÁñ’n´'|
|6¿^ClF¡£XÁñ’n´'|a
|6¿^ClF¡£XÁñ’n´'|
|6¿^ClF¡£XÁñ’n´'|
|6¿^ClF¡£XÁñ’n´'|a
1
1
1
1
1
1
0
0
0
0
0
0
|6¿^ClF¡£XÁñ’n´'|||6¿^ClF¡£XÁñ’n´'|
|6¿^ClF¡£XÁñ’n´'|||6¿^ClF¡£XÁñ’n´'|
|6¿^ClF¡£XÁñ’n´'|a||6¿^ClF¡£XÁñ’n´'|a
|6¿^ClF¡£XÁñ’n´'|
|6¿^ClF¡£XÁñ’n´'|
|6¿^ClF¡£XÁñ’n´'|a
```
## Flag
```
```
@@ -0,0 +1,204 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
PRAGMA cell_size_check = OFF;
BEGIN DEFERRED TRANSACTION;
SAVEPOINT sp4295;
SAVEPOINT sp6056;
CREATE TABLE main.t1(a INTEGER PRIMARY /**/ KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (like('%lower%', x'303c152bb6ebe4d8cc67'), 'Wernher', x'98', cos(octet_length(json_set(CAST(x'dc7dea' AS BIGINT), '$.new_key', jsonb_set((min(abs(CAST((1 - 0) AS FLOAT)), 2, 3, 4, 5) * 1), '$.key', 123)))));
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
SELECT AVG(b) FROM t1;
SELECT COUNT(c) FROM t1;
INSERT INTO t1 DEFAULT VALUES;
SELECT STRING_AGG(d) FROM t1;
CREATE VIEW IF NOT EXISTS v_t1_7391 AS SELECT a FROM t1;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (like('%lower%', 1), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
SELECT AVG(b) FROM t1;
SELECT COUNT(c) FROM t1;
INSERT INTO t1 DEFAULT VALUES;
SELECT STRING_AGG(d) FROM t1;
CREATE VIEW IF NOT EXISTS v_t1_7391 AS SELECT a FROM t1;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (like('%lower%', 1), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
SELECT AVG(b) FROM t1;
SELECT COUNT(c) FROM t1;
INSERT INTO t1 DEFAULT VALUES;
SELECT STRING_AGG(d) FROM t1;
CREATE VIEW IF NOT EXISTS v_t1_7391 AS SELECT a FROM t1;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (like('%lower%', 1), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
SELECT AVG(b) FROM t1;
SELECT COUNT(c) FROM t1;
INSERT INTO t1 DEFAULT VALUES;
SELECT STRING_AGG(d) FROM t1;
CREATE VIEW IF NOT EXISTS v_t1_7391 AS SELECT a FROM t1;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (like('%lower%', 1), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
SELECT AVG(b) FROM t1;
CREATE TABLE T1 (
A VARCHAR(20) PRIMARY KEY,
X VARCHAR(10) UNIQUE
);
CREATE TABLE T2 (
A VARCHAR(20) PRIMARY KEY,
Y VARCHAR(10) UNIQUE
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
INSERT INTO T2 VALUES ('c', 'l');
SELECT A FROM T1 INTERSECT SELECT A FROM T2;
SELECT COUNT(c) FROM t1;
INSERT INTO t1 DEFAULT VALUES;
SELECT STRING_AGG(d) FROM t1;
CREATE VIEW IF NOT EXISTS v_t1_7391 AS SELECT a FROM t1;
INSERT INTO t1 DEFAULT VALUES;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
VACUUM main;
CREATE VIEW IF NOT EXISTS v_t1_6828 AS SELECT a FROM t1;
SELECT * FROM t1 AS a RIGHT JOIN t1 AS b ON a.rowid = b.rowid;
PRAGMA journal_mode = 'OFF';
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_2248 AS SELECT a FROM t1;
ROLLBACK TRANSACTION TO SAVEPOINT sp6056;
RELEASE SAVEPOINT sp6056;
ROLLBACK TRANSACTION TO SAVEPOINT sp4295;
RELEASE SAVEPOINT sp4295;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt wHErE x<9) SELECT x FROM cnt WHERE x > 4;
WITH RECURSIVE r AS (SELECT c FROM t1 WHERE c IS NOT NULL UNION ALL SELECT c FROM r WHERE c > 0 LIMIT 10) SELECT * FROM r;
CREATE TEMP VIEW IF NOT EXISTS v_t1_2021 AS SELECT d FROM t1;
ALTER TABLE t1 RENAME COLUMN c TO c_r8622;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<7) SELECT * FROM cnt;
INSERT INTO t1 VALUES ('x', NULL, NULL, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
END TRANSACTION;
WITH cte AS (SELECT d FROM t1 UNION SELECT d FROM t1) SELECT * FROM cte;
UPDATE t1 SET d = json_object('k', d) WHERE 1 RETURNING *;
INSERT INTO t1 DEFAULT VALUES;
PRAGMA writable_schema = 1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_4249 ON t1(lower(d)) WHERE d IS NOT NULL;
CREATE TRIGGER IF NOT EXISTS trg_t1_1965 AFTER UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT COUNT(*) FROM t1;
CREATE TABLE T1 (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15) UNIQUE,
C INTEGER
);
CREATE TABLE T2 (
X VARCHAR(20) PRIMARY KEY,
A VARCHAR(10) NOT NULL UNIQUE,
FOREIGN KEY (A) REFERENCES T1(A)
);
INSERT INTO T1 VALUES ('a', 'p', -2147483648);
INSERT INTO T1 VALUES ('b', 'q', 2147483647);
INSERT INTO T2 VALUES ('m', 'a');
INSERT INTO /* */ T2 VALUES ('n', 'b');
SELECT T2.X, T1.B, T1.C FROM T2, T1 WHERE T2.A = T1.A AND T1.C >= 0;
SELECT * FROM t1 WHERE EXISTS (SELECT 1 FROM t1 WHERE 1 = 1);
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_9913 ON t1((d + 1));
PRAGMA case_sensitive_like = ON;
SELECT * FROM T2 WHERE X > (SELECT MAX(X) FROM T2);
SELECT TOTAL(X) FROM T2;
SELECT * FROM T1;
CREATE INDEX IF NOT EXISTS idx_t1_310 ON t1(b) WHERE b > 0;
ANALYZE T1;
WITH cte(x) AS (SELECT B FROM T1) SELECT x FROM cte;
WITH cte AS (SELECT * FROM t1) SELECT (SELECT COUNT(*) FROM cte) AS total, * FROM cte LIMIT 1;
REINDEX t1;
ALTER TABLE T2 ADD COLUMN extra_378 TINYINT COLLATE NOCASE;
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 t1;
SELECT GROUP_CONCAT(X) OVER (PARTITION BY X ORDER BY X ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T2;
PRAGMA query_only = OFF;
INSERT INTO t1 VALUES (1, NULL, 1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
SELECT * FROM t1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_91 ON T1(lower(C)) WHERE C IS NOT NULL;
PRAGMA case_sensitive_like = ON;
INSERT INTO T2 DEFAULT VALUES;
ALTER TABLE t1 RENAME TO t1_r4595;
ANALYZE T2;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
PRAGMA writable_schema = FALSE;
INSERT OR REPLACE INTO T1 VALUES ('x', NULL, 'x');
SELECT * FROM T1 NATURAL JOIN t1;
WITH RECURSIVE self(x) AS (SELECT 1 UNION ALL SELECT x FROM self) SELECT * FROM self LIMIT 5;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
CREATE UNIQUE INDEX IF NOT EXISTS idx_T2_6250 ON T2(lower(X)) WHERE X IS NOT NULL;
WITH a AS (SELECT * FROM T1), RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<44) SELECT * FROM a CROSS JOIN cnt;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_7266 ON t1(b);
SELECT LEAD(X, 0, 'default') OVER (ORDER BY X RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM T2;
SELECT * FROM t1 AS a RIGHT JOIN T1 AS b ON a.rowid = b.rowid;
CREATE TEMPORARY VIEW IF NOT EXISTS v_T2_3881 AS SELECT A FROM T2;
ANALYZE T1;
```
## Actual output
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
Braun|30|3
von|20|2
Braun|30
von|20
```
## Expectation
```sql
```
## Flag
```
-nonce "n0Nc3"
```
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,166 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
.headers on
ATTACH DATABASE ':memory:' AS aux62;
-- IS
.stats
ATTACH DATABASE ':memory:' AS aux68;
-- -ascii
PRAGMA automatic_index = YES;
CREATE TABLE main.T (
a TEXT,
b REAL
);
INSERT INTO T VALUES ('a',NULL), ('b',-round(trunc(log2(acos(NULL))), json_extract(CAST((x'357972894d4c' + -(-(randomblob(16)))) AS FLOAT), '$[#-1]'))), ('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;
DELETE FROM T WHERE NOT NOT (b IS NULL) ;
SELECT * FROM T WHERE b IN (SELECT b FROM T LIMIT 0);
PRAGMA writable_schema = 1;
SELECT COUNT(*) FROM T;
DETACH DATABASE aux68;
VACUUM;
SELECT b FROM T EXCEPT SELECT b FROM (SELECT * FROM T) AS sub;
DELETE FROM T WHERE a IS NULL RETURNING *;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
INSERT INTO t1 DEFAULT VALUES;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_1206 ON t1(lower(d));
CREATE TRIGGER IF NOT EXISTS trg_t1_1786 AFTER UPDATE OF b ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT COUNT(*) FILTER (WHERE a IS NOT NULL), SUM(rowid) FILTER (WHERE a > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(a) FILTER (WHERE a > 0 AND a < 100), COUNT(*) FILTER (WHERE typeof(a) = "text") FROM t1;
CREATE TABLE T (
a INTEGER,
b TEXT,
c REAL,
d REAL
);
INSERT INTO T VALUES (1,'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
SELECT b FROM T WHERE ABS(c) > 5 AND ABS(d) > 5;
DELETE FROM T WHERE rowid = 56;
SELECT * FROM T;
ANALYZE;
REINDEX t1;
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
DETACH DATABASE aux62;
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
CREATE TEMP VIEW IF NOT EXISTS v_t1_4360 AS SELECT c FROM t1;
ALTER TABLE t1 RENAME TO t1_r613;
SELECT AVG(d) FROM t1;
REINDEX t1;
WITH cte AS (SELECT * FROM t1) UPDATE t1 SET a = (SELECT a FROM cte LIMIT 1) WHERE 1=0;
SELECT * FROM T CROSS JOIN t1;
SELECT * FROM T;
ALTER TABLE T DROP COLUMN b;
CREATE TRIGGER IF NOT EXISTS trg_t1_7504 AFTER INSERT ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
```
## Actual output
```sql
Memory Used: 79920 (max 79920) bytes
Number of Outstanding Allocations: 158 (max 158)
Number of Pcache Overflow Bytes: 16928 (max 16928) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4360 bytes
Lookaside Slots Used: 34 (max 80)
Successful lookaside attempts: 138
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 18496 bytes
Page cache hits: 0
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Schema Heap Usage: 1104 bytes
Statement Heap/Lookaside Usage: 0 bytes
Bytes received by read(): 9055
Bytes sent to write(): 0
Read() system calls: 13
Write() system calls: 0
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
a|b|c|d
c|Inf||1
a|||1
b|||2
COUNT(*)
1
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
b|c|_ROWID_
Braun|30|3
Wernher|10|1
von|20|2
b|c
Braun|30
Wernher|10
von|20
```
## Expectation
```sql
Memory Used: 80568 (max 80568) bytes
Number of Outstanding Allocations: 168 (max 168)
Number of Pcache Overflow Bytes: 16944 (max 16944) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4368 bytes
Lookaside Slots Used: 50 (max 91)
Successful lookaside attempts: 144
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 18512 bytes
Page cache hits: 0
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Temporary data spilled to disk: 0
Schema Heap Usage: 944 bytes
Statement Heap/Lookaside Usage: 0 bytes
Bytes received by read(): 9831
Bytes sent to write(): 0
Read() system calls: 14
Write() system calls: 0
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
a|b|c|d
c|Inf||1
a|||1
b|||2
COUNT(*)
1
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
b|c|_ROWID_
Braun|30|3
Wernher|10|1
von|20|2
b|c
Braun|30
Wernher|10
von|20
```
## Flag
```
```
@@ -0,0 +1,61 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
.nonce 202cc246-5d25-4977-ac39-9f1516ae7f5e
PRAGMA empty_result_callbacks = OFF;
PRAGMA writable_schema = 1;
BEGIN IMMEDIATE;
BEGIN IMMEDIATE TRANSACTION;
PRAGMA vdbe_debug = ON;
.stats vmstep
CREATE TABLE main."T" (
a INTEGER,
b REAL,
c REAL
);
INSERT INTO T VALUES (pi(),-(-(-(-(power((1.5 * 1), 1.5))))),10.0), (2,-2.5,20.0), (3,-9e999,30.0);
SELECT * FROM T WHERE b IS 2.0 ORDER BY b;
CREATE TRIGGER IF NOT EXISTS trg_T_3707 AFTER UPDATE OF c ON T BEGIN INSERT INTO T(c) VALUES (NULL); END;
INSERT INTO T SELECT * FROM T;
SELECT COUNT(c) FILTER (WHERE c IS NOT NULL) OVER (ORDER BY c RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM T;
VACUUM main;
SELECT PERCENT_RANK() OVER (PARTITION BY a ORDER BY a) FROM T;
DELETE FROM T WHERE c > (SELECT AVG(c) FROM T) RETURNING *;
INSERT INTO T SELECT * FROM T;
CREATE TRIGGER IF NOT EXISTS trg_T_4039 AFTER INSERT ON T BEGIN SELECT RAISE(ABORT, 'abort'); END;
INSERT OR IGNORE INTO T VALUES ('x', 'x', -10);
CREATE TRIGGER IF NOT EXISTS trg_T_5538 AFTER DELETE ON T BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
CREATE VIEW IF NOT EXISTS v_T_1598 AS SELECT a FROM T;
INSERT INTO T VALUES ('x', NULL, NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
ALTER TABLE T RENAME COLUMN c TO c_r7559;
CREATE TRIGGER IF NOT EXISTS trg_T_3646 BEFORE UPDATE OF b ON T FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
DROP TABLE IF EXISTS T;
ROLLBACK;
VACUUM main;
COMMIT;
VACUUM main;
ALTER TABLE T RENAME TO T_r275;
SELECT * FROM T NATURAL JOIN T;
```
## Actual output
```sql
3.39.0 2022-05-10 23:28:12 764b71267e0b31ff7eaf2a0def7526a1a02dce4d5b456dea060d97ed342ealt1
```
## Expectation
```sql
3.51.1 2025-11-28 17:28:25 281fc0e9afc38674b9b0991943b9e9d1e64c6cbdb133d35f6f5c87ff6af38a88 (64-bit)
```
## Flag
```
-version
```
@@ -0,0 +1,813 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
ATTACH DATABASE ':memory:' AS aux57;
CREATE TABLE T (
a TEXT,
b TEXT
);
INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01');
SELECT a,
CAST(
(julianday('now')-julianday(b))/round(-9223372036854775809)
AS INTEGER
) AS c
FROM T;
PRAGMA vdbe_debug = OFF;
BEGIN IMMEDIATE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (-(-(timediff(-instr(NULL, NULL), 6905746167837027873))), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', /* if(0, {v}, 0, {v}) */ 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
((((PRAGMA)))) application_id = ',';
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (-NULL,json_valid(1.5, 6)), (2,-7.25), (3,0.0);
SELECT a,b FROM T WHERE NOT NOT (a >= 2) ORDER BY b;
PRAGMA read_uncommitted = FALSE;
WITH cte AS (SELECT b FROM T UNION SELECT b FROM T) SELECT * FROM cte;
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;
SELECT COUNT(*) FROM T;
INSERT INTO T VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
SELECT * FROM T;
PRAGMA query_only;
ALTER TABLE T RENAME TO T_r407;
UPDATE T SET a = NULL WHERE 1;
ALTER TABLE T RENAME COLUMN b TO b_r5239;
ALTER TABLE T DROP COLUMN b;
ALTER TABLE T ADD COLUMN extra_7854 DATETIME DEFAULT NULL;
SELECT * FROM (SELECT * FROM t1) AS t1 JOIN (SELECT * FROM t1) AS t2 ON t1.b = t2.b;
END;
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;
SELECT * FROM T WHERE b <= ANY (SELECT b FROM T);
VACUUM main;
ANALYZE T;
SELECT LAG(c, c) OVER (ORDER BY c ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
REINDEX T;
INSERT INTO T DEFAULT VALUES;
PRAGMA query_only = OFF;
WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_3010 ON t1(a) WHERE
a > 0;
ANALYZE;
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
VACUUM;
ALTER TABLE t1 RENAME TO t1_r1192;
DROP TRIGGER IF EXISTS T;
WITH cte AS (SELECT * FROM T WHERE c IN (SELECT c FROM T LIMIT 5)) SELECT * FROM cte;
DELETE FROM T WHERE a > (SELECT AVG(a) FROM T) RETURNING *;
SELECT * FROM (SELECT * FROM T ORDER BY b) AS sub LIMIT 10;
PRAGMA data_version;
CREATE TABLE T1 (
A VARCHAR(20),
X VARCHAR(10),
PRIMARY KEY (A, X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10),
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 EXCEPT SELECT A FROM T2;
ALTER TABLE T ADD COLUMN extra_7767 DOUB DEFAULT 0;
SELECT * FROM T2 CROSS JOIN T2;
UPDATE T1 SET X = 'x' WHERE 1;
ALTER TABLE T1 DROP COLUMN A;
CREATE TABLE T (
a TEXT,
b TEXT
);
INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01');
SELECT a,
CAST(
(julianday('now')-julianday(b))/round(-9223372036854775809)
AS INTEGER
) AS c
FROM T;
PRAGMA vdbe_debug = OFF;
BEGIN IMMEDIATE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (-(-(timediff(-instr(NULL, NULL), 6905746167837027873))), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', /* if(0, {v}, 0, {v}) */ 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
((((PRAGMA)))) application_id = ',';
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (-NULL,json_valid(1.5, 6)), (2,-7.25), (3,0.0);
SELECT a,b FROM T WHERE NOT NOT (a >= 2) ORDER BY b;
PRAGMA read_uncommitted = FALSE;
WITH cte AS (SELECT b FROM T UNION SELECT b FROM T) SELECT * FROM cte;
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;
SELECT COUNT(*) FROM T;
INSERT INTO T VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
SELECT * FROM T;
PRAGMA query_only;
ALTER TABLE T RENAME TO T_r407;
UPDATE T SET a = NULL WHERE 1;
ALTER TABLE T RENAME COLUMN b TO b_r5239;
ALTER TABLE T DROP COLUMN b;
ALTER TABLE T ADD COLUMN extra_7854 DATETIME DEFAULT NULL;
SELECT * FROM (SELECT * FROM t1) AS t1 JOIN (SELECT * FROM t1) AS t2 ON t1.b = t2.b;
END;
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;
SELECT * FROM T WHERE b <= ANY (SELECT b FROM T);
VACUUM main;
ANALYZE T;
SELECT LAG(c, c) OVER (ORDER BY c ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
REINDEX T;
INSERT INTO T DEFAULT VALUES;
PRAGMA query_only = OFF;
WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_3010 ON t1(a) WHERE
a > 0;
ANALYZE;
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
VACUUM;
ALTER TABLE t1 RENAME TO t1_r1192;
DROP TRIGGER IF EXISTS T;
WITH cte AS (SELECT * FROM T WHERE c IN (SELECT c FROM T LIMIT 5)) SELECT * FROM cte;
DELETE FROM T WHERE a > (SELECT AVG(a) FROM T) RETURNING *;
SELECT * FROM (SELECT * FROM T ORDER BY b) AS sub LIMIT 10;
PRAGMA data_version;
CREATE TABLE T1 (
A VARCHAR(20),
X VARCHAR(10),
PRIMARY KEY (A, X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10),
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 EXCEPT SELECT A FROM T2;
ALTER TABLE T ADD COLUMN extra_7767 DOUB DEFAULT 0;
SELECT * FROM T2 CROSS JOIN T2;
UPDATE T1 SET X = 'x' WHERE 1;
ALTER TABLE T1 DROP COLUMN A;
CREATE TABLE T (
a TEXT,
b TEXT
);
INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01');
SELECT a,
CAST(
(julianday('now')-julianday(b))/round(-9223372036854775809)
AS INTEGER
) AS c
FROM T;
PRAGMA vdbe_debug = OFF;
BEGIN IMMEDIATE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (-(-(timediff(-instr(NULL, NULL), 6905746167837027873))), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', /* if(0, {v}, 0, {v}) */ 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
((((PRAGMA)))) application_id = ',';
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (-NULL,json_valid(1.5, 6)), (2,-7.25), (3,0.0);
SELECT a,b FROM T WHERE NOT NOT (a >= 2) ORDER BY b;
PRAGMA read_uncommitted = FALSE;
WITH cte AS (SELECT b FROM T UNION SELECT b FROM T) SELECT * FROM cte;
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;
SELECT COUNT(*) FROM T;
INSERT INTO T VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
SELECT * FROM T;
PRAGMA query_only;
ALTER TABLE T RENAME TO T_r407;
UPDATE T SET a = NULL WHERE 1;
ALTER TABLE T RENAME COLUMN b TO b_r5239;
ALTER TABLE T DROP COLUMN b;
ALTER TABLE T ADD COLUMN extra_7854 DATETIME DEFAULT NULL;
SELECT * FROM (SELECT * FROM t1) AS t1 JOIN (SELECT * FROM t1) AS t2 ON t1.b = t2.b;
END;
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;
SELECT * FROM T WHERE b <= ANY (SELECT b FROM T);
VACUUM main;
ANALYZE T;
SELECT LAG(c, c) OVER (ORDER BY c ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
REINDEX T;
INSERT INTO T DEFAULT VALUES;
PRAGMA query_only = OFF;
WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_3010 ON t1(a) WHERE
a > 0;
ANALYZE;
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
VACUUM;
ALTER TABLE t1 RENAME TO t1_r1192;
DROP TRIGGER IF EXISTS T;
WITH cte AS (SELECT * FROM T WHERE c IN (SELECT c FROM T LIMIT 5)) SELECT * FROM cte;
DELETE FROM T WHERE a > (SELECT AVG(a) FROM T) RETURNING *;
SELECT * FROM (SELECT * FROM T ORDER BY b) AS sub LIMIT 10;
PRAGMA data_version;
CREATE TABLE T1 (
A VARCHAR(20),
X VARCHAR(10),
PRIMARY KEY (A, X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10),
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 EXCEPT SELECT A FROM T2;
ALTER TABLE T ADD COLUMN extra_7767 DOUB DEFAULT 0;
SELECT * FROM T2 CROSS JOIN T2;
UPDATE T1 SET X = 'x' WHERE 1;
ALTER TABLE T1 DROP COLUMN A;
CREATE TABLE T (
a TEXT,
b TEXT
);
INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01');
SELECT a,
CAST(
(julianday('now')-julianday(b))/round(-9223372036854775809)
AS INTEGER
) AS c
FROM T;
PRAGMA vdbe_debug = OFF;
BEGIN IMMEDIATE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (-(-(timediff(-instr(NULL, NULL), 6905746167837027873))), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', /* if(0, {v}, 0, {v}) */ 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
((((PRAGMA)))) application_id = ',';
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (-NULL,json_valid(1.5, 6)), (2,-7.25), (3,0.0);
SELECT a,b FROM T WHERE NOT NOT (a >= 2) ORDER BY b;
PRAGMA read_uncommitted = FALSE;
WITH cte AS (SELECT b FROM T UNION SELECT b FROM T) SELECT * FROM cte;
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;
SELECT COUNT(*) FROM T;
INSERT INTO T VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
SELECT * FROM T;
PRAGMA query_only;
ALTER TABLE T RENAME TO T_r407;
UPDATE T SET a = NULL WHERE 1;
ALTER TABLE T RENAME COLUMN b TO b_r5239;
ALTER TABLE T DROP COLUMN b;
ALTER TABLE T ADD COLUMN extra_7854 DATETIME DEFAULT NULL;
SELECT * FROM (SELECT * FROM t1) AS t1 JOIN (SELECT * FROM t1) AS t2 ON t1.b = t2.b;
END;
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;
SELECT * FROM T WHERE b <= ANY (SELECT b FROM T);
VACUUM main;
ANALYZE T;
SELECT LAG(c, c) OVER (ORDER BY c ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
REINDEX T;
INSERT INTO T DEFAULT VALUES;
PRAGMA query_only = OFF;
WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_3010 ON t1(a) WHERE
a > 0;
ANALYZE;
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
VACUUM;
ALTER TABLE t1 RENAME TO t1_r1192;
DROP TRIGGER IF EXISTS T;
WITH cte AS (SELECT * FROM T WHERE c IN (SELECT c FROM T LIMIT 5)) SELECT * FROM cte;
DELETE FROM T WHERE a > (SELECT AVG(a) FROM T) RETURNING *;
SELECT * FROM (SELECT * FROM T ORDER BY b) AS sub LIMIT 10;
PRAGMA data_version;
CREATE TABLE T1 (
A VARCHAR(20),
X VARCHAR(10),
PRIMARY KEY (A, X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10),
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 EXCEPT SELECT A FROM T2;
ALTER TABLE T ADD COLUMN extra_7767 DOUB DEFAULT 0;
SELECT * FROM T2 CROSS JOIN T2;
UPDATE T1 SET X = 'x' WHERE 1;
ALTER TABLE T1 DROP COLUMN A;
CREATE TABLE T (
a TEXT,
b TEXT
);
INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01');
SELECT a,
CAST(
(julianday('now')-julianday(b))/round(-9223372036854775809)
AS INTEGER
) AS c
FROM T;
PRAGMA vdbe_debug = OFF;
BEGIN IMMEDIATE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (-(-(timediff(-instr(NULL, NULL), 6905746167837027873))), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', /* if(0, {v}, 0, {v}) */ 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
((((PRAGMA)))) application_id = ',';
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (-NULL,json_valid(1.5, 6)), (2,-7.25), (3,0.0);
SELECT a,b FROM T WHERE NOT NOT (a >= 2) ORDER BY b;
PRAGMA read_uncommitted = FALSE;
WITH cte AS (SELECT b FROM T UNION SELECT b FROM T) SELECT * FROM cte;
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;
SELECT COUNT(*) FROM T;
INSERT INTO T VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
SELECT * FROM T;
PRAGMA query_only;
ALTER TABLE T RENAME TO T_r407;
UPDATE T SET a = NULL WHERE 1;
ALTER TABLE T RENAME COLUMN b TO b_r5239;
ALTER TABLE T DROP COLUMN b;
ALTER TABLE T ADD COLUMN extra_7854 DATETIME DEFAULT NULL;
SELECT * FROM (SELECT * FROM t1) AS t1 JOIN (SELECT * FROM t1) AS t2 ON t1.b = t2.b;
END;
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;
SELECT * FROM T WHERE b <= ANY (SELECT b FROM T);
VACUUM main;
ANALYZE T;
SELECT LAG(c, c) OVER (ORDER BY c ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
REINDEX T;
INSERT INTO T DEFAULT VALUES;
PRAGMA query_only = OFF;
WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_3010 ON t1(a) WHERE
a > 0;
ANALYZE;
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
VACUUM;
ALTER TABLE t1 RENAME TO t1_r1192;
DROP TRIGGER IF EXISTS T;
WITH cte AS (SELECT * FROM T WHERE c IN (SELECT c FROM T LIMIT 5)) SELECT * FROM cte;
DELETE FROM T WHERE a > (SELECT AVG(a) FROM T) RETURNING *;
SELECT * FROM (SELECT * FROM T ORDER BY b) AS sub LIMIT 10;
PRAGMA data_version;
CREATE TABLE T1 (
A VARCHAR(20),
X VARCHAR(10),
PRIMARY KEY (A, X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10),
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 EXCEPT SELECT A FROM T2;
ALTER TABLE T ADD COLUMN extra_7767 DOUB DEFAULT 0;
SELECT * FROM T2 CROSS JOIN T2;
UPDATE T1 SET X = 'x' WHERE 1;
ALTER TABLE T1 DROP COLUMN A;
CREATE TABLE T (
a TEXT,
b TEXT
);
INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01');
SELECT a,
CAST(
(julianday('now')-julianday(b))/round(-9223372036854775809)
AS INTEGER
) AS c
FROM T;
PRAGMA vdbe_debug = OFF;
BEGIN IMMEDIATE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (-(-(timediff(-instr(NULL, NULL), 6905746167837027873))), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', /* if(0, {v}, 0, {v}) */ 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
((((PRAGMA)))) application_id = ',';
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (-NULL,json_valid(1.5, 6)), (2,-7.25), (3,0.0);
SELECT a,b FROM T WHERE NOT NOT (a >= 2) ORDER BY b;
PRAGMA read_uncommitted = FALSE;
WITH cte AS (SELECT b FROM T UNION SELECT b FROM T) SELECT * FROM cte;
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;
SELECT COUNT(*) FROM T;
INSERT INTO T VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
SELECT * FROM T;
PRAGMA query_only;
ALTER TABLE T RENAME TO T_r407;
UPDATE T SET a = NULL WHERE 1;
ALTER TABLE T RENAME COLUMN b TO b_r5239;
ALTER TABLE T DROP COLUMN b;
ALTER TABLE T ADD COLUMN extra_7854 DATETIME DEFAULT NULL;
SELECT * FROM (SELECT * FROM t1) AS t1 JOIN (SELECT * FROM t1) AS t2 ON t1.b = t2.b;
END;
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;
SELECT * FROM T WHERE b <= ANY (SELECT b FROM T);
VACUUM main;
ANALYZE T;
SELECT LAG(c, c) OVER (ORDER BY c ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
REINDEX T;
INSERT INTO T DEFAULT VALUES;
PRAGMA query_only = OFF;
WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_3010 ON t1(a) WHERE
a > 0;
ANALYZE;
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
VACUUM;
ALTER TABLE t1 RENAME TO t1_r1192;
DROP TRIGGER IF EXISTS T;
WITH cte AS (SELECT * FROM T WHERE c IN (SELECT c FROM T LIMIT 5)) SELECT * FROM cte;
DELETE FROM T WHERE a > (SELECT AVG(a) FROM T) RETURNING *;
SELECT * FROM (SELECT * FROM T ORDER BY b) AS sub LIMIT 10;
PRAGMA data_version;
CREATE TABLE T1 (
A VARCHAR(20),
X VARCHAR(10),
PRIMARY KEY (A, X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10),
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 EXCEPT SELECT A FROM T2;
ALTER TABLE T ADD COLUMN extra_7767 DOUB DEFAULT 0;
SELECT * FROM T2 CROSS JOIN T2;
UPDATE T1 SET X = 'x' WHERE 1;
ALTER TABLE T1 DROP COLUMN A;
CREATE TABLE T (
a TEXT,
b TEXT
);
INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01');
SELECT a,
CAST(
(julianday('now')-julianday(b))/round(-9223372036854775809)
AS INTEGER
) AS c
FROM T;
PRAGMA vdbe_debug = OFF;
BEGIN IMMEDIATE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (-(-(timediff(-instr(NULL, NULL), 6905746167837027873))), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', /* if(0, {v}, 0, {v}) */ 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
((((PRAGMA)))) application_id = ',';
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (-NULL,json_valid(1.5, 6)), (2,-7.25), (3,0.0);
SELECT a,b FROM T WHERE NOT NOT (a >= 2) ORDER BY b;
PRAGMA read_uncommitted = FALSE;
WITH cte AS (SELECT b FROM T UNION SELECT b FROM T) SELECT * FROM cte;
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;
SELECT COUNT(*) FROM T;
INSERT INTO T VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
SELECT * FROM T;
PRAGMA query_only;
ALTER TABLE T RENAME TO T_r407;
UPDATE T SET a = NULL WHERE 1;
ALTER TABLE T RENAME COLUMN b TO b_r5239;
ALTER TABLE T DROP COLUMN b;
ALTER TABLE T ADD COLUMN extra_7854 DATETIME DEFAULT NULL;
SELECT * FROM (SELECT * FROM t1) AS t1 JOIN (SELECT * FROM t1) AS t2 ON t1.b = t2.b;
END;
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;
SELECT * FROM T WHERE b <= ANY (SELECT b FROM T);
VACUUM main;
ANALYZE T;
SELECT LAG(c, c) OVER (ORDER BY c ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
REINDEX T;
INSERT INTO T DEFAULT VALUES;
PRAGMA query_only = OFF;
WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_3010 ON t1(a) WHERE
a > 0;
ANALYZE;
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
VACUUM;
ALTER TABLE t1 RENAME TO t1_r1192;
DROP TRIGGER IF EXISTS T;
WITH cte AS (SELECT * FROM T WHERE c IN (SELECT c FROM T LIMIT 5)) SELECT * FROM cte;
DELETE FROM T WHERE a > (SELECT AVG(a) FROM T) RETURNING *;
SELECT * FROM (SELECT * FROM T ORDER BY b) AS sub LIMIT 10;
PRAGMA data_version;
CREATE TABLE T1 (
A VARCHAR(20),
X VARCHAR(10),
PRIMARY KEY (A, X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10),
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 EXCEPT SELECT A FROM T2;
ALTER TABLE T ADD COLUMN extra_7767 DOUB DEFAULT 0;
SELECT * FROM T2 CROSS JOIN T2;
UPDATE T1 SET X = 'x' WHERE 1;
ALTER TABLE T1 DROP COLUMN A;
CREATE TABLE T (
a TEXT,
b TEXT
);
INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01');
SELECT a,
CAST(
(julianday('now')-julianday(b))/round(-9223372036854775809)
AS INTEGER
) AS c
FROM T;
PRAGMA vdbe_debug = OFF;
BEGIN IMMEDIATE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (-(-(timediff(-instr(NULL, NULL), 6905746167837027873))), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', /* if(0, {v}, 0, {v}) */ 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
((((PRAGMA)))) application_id = ',';
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (-NULL,json_valid(1.5, 6)), (2,-7.25), (3,0.0);
SELECT a,b FROM T WHERE NOT NOT (a >= 2) ORDER BY b;
PRAGMA read_uncommitted = FALSE;
WITH cte AS (SELECT b FROM T UNION SELECT b FROM T) SELECT * FROM cte;
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;
SELECT COUNT(*) FROM T;
INSERT INTO T VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
SELECT * FROM T;
PRAGMA query_only;
ALTER TABLE T RENAME TO T_r407;
UPDATE T SET a = NULL WHERE 1;
ALTER TABLE T RENAME COLUMN b TO b_r5239;
ALTER TABLE T DROP COLUMN b;
ALTER TABLE T ADD COLUMN extra_7854 DATETIME DEFAULT NULL;
SELECT * FROM (SELECT * FROM t1) AS t1 JOIN (SELECT * FROM t1) AS t2 ON t1.b = t2.b;
END;
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;
SELECT * FROM T WHERE b <= ANY (SELECT b FROM T);
VACUUM main;
ANALYZE T;
SELECT LAG(c, c) OVER (ORDER BY c ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
REINDEX T;
INSERT INTO T DEFAULT VALUES;
PRAGMA query_only = OFF;
WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_3010 ON t1(a) WHERE
a > 0;
ANALYZE;
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
VACUUM;
ALTER TABLE t1 RENAME TO t1_r1192;
DROP TRIGGER IF EXISTS T;
WITH cte AS (SELECT * FROM T WHERE c IN (SELECT c FROM T LIMIT 5)) SELECT * FROM cte;
DELETE FROM T WHERE a > (SELECT AVG(a) FROM T) RETURNING *;
SELECT * FROM (SELECT * FROM T ORDER BY b) AS sub LIMIT 10;
PRAGMA data_version;
CREATE TABLE T1 (
A VARCHAR(20),
X VARCHAR(10),
PRIMARY KEY (A, X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10),
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 EXCEPT SELECT A FROM T2;
ALTER TABLE T ADD COLUMN extra_7767 DOUB DEFAULT 0;
SELECT * FROM T2 CROSS JOIN T2;
UPDATE T1 SET X = 'x' WHERE 1;
ALTER TABLE T1 DROP COLUMN A;
SELECT * FROM (SELECT a FROM T WHERE a IS NOT NULL) AS sub;
DETACH DATABASE aux57;
```
## Actual output
```sql
a|0
b|0
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
Braun|30|3
von|20|2
Braun|30
von|20
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,296 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
.stats vmstep
.open employee.db
ATTACH DATABASE ':memory:' AS aux72;
SAVEPOINT sp2695;
PRAGMA full_column_names = NO;
PRAGMA cache_spill = TRUE;
PRAGMA writable_schema = YES;
.timeout
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
ROLLBACK TRANSACTION TO SAVEPOINT sp2695;
RELEASE SAVEPOINT sp2695;
DETACH DATABASE aux72;
ATTACH DATABASE ':memory:' AS aux72;
SAVEPOINT sp2695;
PRAGMA full_column_names = NO;
PRAGMA cache_spill = TRUE;
PRAGMA writable_schema = YES;
.timeout
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
ROLLBACK TRANSACTION TO SAVEPOINT sp2695;
RELEASE SAVEPOINT sp2695;
DETACH DATABASE aux72;
ATTACH DATABASE ':memory:' AS aux72;
SAVEPOINT sp2695;
PRAGMA full_column_names = NO;
PRAGMA cache_spill = TRUE;
PRAGMA writable_schema = YES;
.timeout
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
ROLLBACK TRANSACTION TO SAVEPOINT sp2695;
RELEASE SAVEPOINT sp2695;
DETACH DATABASE aux72;
ATTACH DATABASE ':memory:' AS aux72;
SAVEPOINT sp2695;
PRAGMA full_column_names = NO;
PRAGMA cache_spill = TRUE;
PRAGMA writable_schema = YES;
.timeout
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
ROLLBACK TRANSACTION TO SAVEPOINT sp2695;
RELEASE SAVEPOINT sp2695;
DETACH DATABASE aux72;
ATTACH DATABASE ':memory:' AS aux72;
SAVEPOINT sp2695;
PRAGMA full_column_names = NO;
PRAGMA cache_spill = TRUE;
PRAGMA writable_schema = YES;
.timeout
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
ROLLBACK TRANSACTION TO SAVEPOINT sp2695;
RELEASE SAVEPOINT sp2695;
DETACH DATABASE aux72;
```
## Actual output
```sql
.stats vmstep
.open employee.db
ATTACH DATABASE ':memory:' AS aux72;
VM-steps: 7
SAVEPOINT sp2695;
VM-steps: 3
PRAGMA full_column_names = NO;
VM-steps: 4
PRAGMA cache_spill = TRUE;
VM-steps: 3
PRAGMA writable_schema = YES;
VM-steps: 4
.timeout
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
VM-steps: 31
DROP TABLE t0;
VM-steps: 458
ROLLBACK TRANSACTION TO SAVEPOINT sp2695;
VM-steps: 3
RELEASE SAVEPOINT sp2695;
VM-steps: 2
DETACH DATABASE aux72;
VM-steps: 7
ATTACH DATABASE ':memory:' AS aux72;
VM-steps: 7
SAVEPOINT sp2695;
VM-steps: 3
PRAGMA full_column_names = NO;
VM-steps: 4
PRAGMA cache_spill = TRUE;
VM-steps: 3
PRAGMA writable_schema = YES;
VM-steps: 4
.timeout
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
VM-steps: 31
DROP TABLE t0;
VM-steps: 458
ROLLBACK TRANSACTION TO SAVEPOINT sp2695;
VM-steps: 3
RELEASE SAVEPOINT sp2695;
VM-steps: 2
DETACH DATABASE aux72;
VM-steps: 7
ATTACH DATABASE ':memory:' AS aux72;
VM-steps: 7
SAVEPOINT sp2695;
VM-steps: 3
PRAGMA full_column_names = NO;
VM-steps: 4
PRAGMA cache_spill = TRUE;
VM-steps: 3
PRAGMA writable_schema = YES;
VM-steps: 4
.timeout
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
VM-steps: 31
DROP TABLE t0;
VM-steps: 458
ROLLBACK TRANSACTION TO SAVEPOINT sp2695;
VM-steps: 3
RELEASE SAVEPOINT sp2695;
VM-steps: 2
DETACH DATABASE aux72;
VM-steps: 7
ATTACH DATABASE ':memory:' AS aux72;
VM-steps: 7
SAVEPOINT sp2695;
VM-steps: 3
PRAGMA full_column_names = NO;
VM-steps: 4
PRAGMA cache_spill = TRUE;
VM-steps: 3
PRAGMA writable_schema = YES;
VM-steps: 4
.timeout
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
VM-steps: 31
DROP TABLE t0;
VM-steps: 458
ROLLBACK TRANSACTION TO SAVEPOINT sp2695;
VM-steps: 3
RELEASE SAVEPOINT sp2695;
VM-steps: 2
DETACH DATABASE aux72;
VM-steps: 7
ATTACH DATABASE ':memory:' AS aux72;
VM-steps: 7
SAVEPOINT sp2695;
VM-steps: 3
PRAGMA full_column_names = NO;
VM-steps: 4
PRAGMA cache_spill = TRUE;
VM-steps: 3
PRAGMA writable_schema = YES;
VM-steps: 4
.timeout
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
VM-steps: 31
DROP TABLE t0;
VM-steps: 458
ROLLBACK TRANSACTION TO SAVEPOINT sp2695;
VM-steps: 3
RELEASE SAVEPOINT sp2695;
VM-steps: 2
DETACH DATABASE aux72;
VM-steps: 7
```
## Expectation
```sql
.stats vmstep
.open employee.db
ATTACH DATABASE ':memory:' AS aux72;
VM-steps: 8
SAVEPOINT sp2695;
VM-steps: 4
PRAGMA full_column_names = NO;
VM-steps: 5
PRAGMA cache_spill = TRUE;
VM-steps: 4
PRAGMA writable_schema = YES;
VM-steps: 5
.timeout
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
VM-steps: 31
DROP TABLE t0;
VM-steps: 458
ROLLBACK TRANSACTION TO SAVEPOINT sp2695;
VM-steps: 4
RELEASE SAVEPOINT sp2695;
VM-steps: 3
DETACH DATABASE aux72;
VM-steps: 8
ATTACH DATABASE ':memory:' AS aux72;
VM-steps: 8
SAVEPOINT sp2695;
VM-steps: 4
PRAGMA full_column_names = NO;
VM-steps: 5
PRAGMA cache_spill = TRUE;
VM-steps: 4
PRAGMA writable_schema = YES;
VM-steps: 5
.timeout
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
VM-steps: 31
DROP TABLE t0;
VM-steps: 458
ROLLBACK TRANSACTION TO SAVEPOINT sp2695;
VM-steps: 4
RELEASE SAVEPOINT sp2695;
VM-steps: 3
DETACH DATABASE aux72;
VM-steps: 8
ATTACH DATABASE ':memory:' AS aux72;
VM-steps: 8
SAVEPOINT sp2695;
VM-steps: 4
PRAGMA full_column_names = NO;
VM-steps: 5
PRAGMA cache_spill = TRUE;
VM-steps: 4
PRAGMA writable_schema = YES;
VM-steps: 5
.timeout
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
VM-steps: 31
DROP TABLE t0;
VM-steps: 458
ROLLBACK TRANSACTION TO SAVEPOINT sp2695;
VM-steps: 4
RELEASE SAVEPOINT sp2695;
VM-steps: 3
DETACH DATABASE aux72;
VM-steps: 8
ATTACH DATABASE ':memory:' AS aux72;
VM-steps: 8
SAVEPOINT sp2695;
VM-steps: 4
PRAGMA full_column_names = NO;
VM-steps: 5
PRAGMA cache_spill = TRUE;
VM-steps: 4
PRAGMA writable_schema = YES;
VM-steps: 5
.timeout
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
VM-steps: 31
DROP TABLE t0;
VM-steps: 458
ROLLBACK TRANSACTION TO SAVEPOINT sp2695;
VM-steps: 4
RELEASE SAVEPOINT sp2695;
VM-steps: 3
DETACH DATABASE aux72;
VM-steps: 8
ATTACH DATABASE ':memory:' AS aux72;
VM-steps: 8
SAVEPOINT sp2695;
VM-steps: 4
PRAGMA full_column_names = NO;
VM-steps: 5
PRAGMA cache_spill = TRUE;
VM-steps: 4
PRAGMA writable_schema = YES;
VM-steps: 5
.timeout
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
VM-steps: 31
DROP TABLE t0;
VM-steps: 458
ROLLBACK TRANSACTION TO SAVEPOINT sp2695;
VM-steps: 4
RELEASE SAVEPOINT sp2695;
VM-steps: 3
DETACH DATABASE aux72;
VM-steps: 8
```
## Flag
```
-echo
```
@@ -0,0 +1,413 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
SAVEPOINT sp2502;
ATTACH DATABASE ('' || (':memory:') || '') AS aux5;
CREATE TABLE main.t1(a NUMERIC PRIMARY KEY, b TEXT, c INT, d INT);
InserT INTO t1 VALUES (CAST('.' AS FLOA), 'Wernher', acosh(log(-9223372036854775809, 10)), 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
PRAGMA pragma_list;
CREATE TABLE T1 (
A VARCHAR(-(-(hex(2790980413263895699)))),
X VARCHAR(10),
PRIMARY KEY (A, X),
UNIQUE (X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10) UNIQUE,
PRIMARY KEY (A, Y)
);
INSErT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T2 VALUES ('b', 'k');
WITH _m /* ifnull(NULL, {v}) */ AS MATERIALIZED (SELECT * FROM T1) SELECT A FROM _m UNION ALL SELECT A FROM T2 ORDER BY A;
SELECT * FROM T1 NATURAL JOIN T1;
ALTER TABLE T1 ADD COLUMN extra_1763 NCHAR(55);
ALTER TABLE T2 RENAME TO T2_r7203;
ALTER TABLE T2 DROP COLUMN Y;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_4762 ON T1((A + 1)) WHERE NOT NOT (NOT NOT (A IS NOT NULL)) ;
ANALYZE T2;
REINDEX T2;
INSERT INTO T2 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
INSERT AND FAIL INTO T2 VALUES (1, 'x');
SELECT LAST_VALUE(A) OVER (ORDER BY A ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T2;
INSERT INTO T2 VALUES (NULL, NULL);
DETACH DATABASE aux5;
SELECT * FROM T2 WHERE A IN (SELECT A FROM T2);
INSERT INTO T2 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
INSERT INTO t1 DEFAULT VALUES;
UPDATE t1 SET a = a + 1 WHERE a IS NOT NULL RETURNING *;
ANALYZE;
INSERT OR REPLACE INTO T1 VALUES (0, '');
SELECT * FROM T1 NATURAL JOIN T2;
DELETE FROM t1 WHERE +b > (SELECT AVG(b) FROM t1);
ALTER TABLE T2 DROP COLUMN Y;
ROLLBACK TO sp2502;
RELEASE sp2502;
PRAGMA auto_vacuum = 1;
SELECT * FROM T2;
SAVEPOINT sp2502;
ATTACH DATABASE ':memory:' AS aux5;
CREATE TABLE t1(a NUMERIC PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST('.' AS FLOA), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
PRAGMA pragma_list;
CREATE TABLE T1 (
A VARCHAR(-(-(hex(2790980413263895699)))),
X VARCHAR(10),
PRIMARY KEY (A, X),
UNIQUE (X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10) UNIQUE,
PRIMARY KEY (A, Y)
);
INSErT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T2 VALUES ('b', 'k');
WITH _m /* ifnull(NULL, {v}) */ AS MATERIALIZED (SELECT * FROM T1) SELECT A FROM _m UNION ALL SELECT A FROM T2 ORDER BY A;
SELECT * FROM T1 NATURAL JOIN T1;
ALTER TABLE T1 ADD COLUMN extra_1763 NCHAR(55);
ALTER TABLE T2 RENAME TO T2_r7203;
ALTER TABLE T2 DROP COLUMN Y;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_4762 ON T1((A + 1)) WHERE A IS NOT NULL;
ANALYZE T2;
REINDEX T2;
INSERT INTO T2 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
INSERT OR FAIL INTO T2 VALUES (1, 'x');
SELECT LAST_VALUE(A) OVER (ORDER BY A ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T2;
INSERT INTO T2 VALUES (NULL, NULL);
DETACH DATABASE aux5;
SELECT * FROM T2 WHERE A IN (SELECT A FROM T2);
INSERT INTO T2 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
INSERT INTO t1 DEFAULT VALUES;
UPDATE t1 SET a = a + 1 WHERE a IS NOT NULL RETURNING *;
ANALYZE;
INSERT OR REPLACE INTO T1 VALUES (0, '');
SELECT * FROM T1 NATURAL JOIN T2;
DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1);
ALTER TABLE T2 DROP COLUMN Y;
ROLLBACK TO sp2502;
RELEASE sp2502;
PRAGMA auto_vacuum = 1;
SELECT * FROM T2;
SAVEPOINT sp2502;
ATTACH DATABASE ':memory:' AS aux5;
CREATE TABLE t1(a NUMERIC PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST('.' AS FLOA), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
PRAGMA pragma_list;
CREATE TABLE T1 (
A VARCHAR(-(-(hex(2790980413263895699)))),
X VARCHAR(10),
PRIMARY KEY (A, X),
UNIQUE (X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10) UNIQUE,
PRIMARY KEY (A, Y)
);
INSErT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T2 VALUES ('b', 'k');
WITH _m /* ifnull(NULL, {v}) */ AS MATERIALIZED (SELECT * FROM T1) SELECT A FROM _m UNION ALL SELECT A FROM T2 ORDER BY A;
SELECT * FROM T1 NATURAL JOIN T1;
ALTER TABLE T1 ADD COLUMN extra_1763 NCHAR(55);
ALTER TABLE T2 RENAME TO T2_r7203;
ALTER TABLE T2 DROP COLUMN Y;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_4762 ON T1((A + 1)) WHERE A IS NOT NULL;
ANALYZE T2;
REINDEX T2;
INSERT INTO T2 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
INSERT OR FAIL INTO T2 VALUES (1, 'x');
SELECT LAST_VALUE(A) OVER (ORDER BY A ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T2;
INSERT INTO T2 VALUES (NULL, NULL);
DETACH DATABASE aux5;
SELECT * FROM T2 WHERE A IN (SELECT A FROM T2);
INSERT INTO T2 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
INSERT INTO t1 DEFAULT VALUES;
UPDATE t1 SET a = a + 1 WHERE a IS NOT NULL RETURNING *;
ANALYZE;
INSERT OR REPLACE INTO T1 VALUES (0, '');
SELECT * FROM T1 NATURAL JOIN T2;
DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1);
ALTER TABLE T2 DROP COLUMN Y;
ROLLBACK TO sp2502;
RELEASE sp2502;
PRAGMA auto_vacuum = 1;
SELECT * FROM T2;
SAVEPOINT sp2502;
ATTACH DATABASE ':memory:' AS aux5;
CREATE TABLE t1(a NUMERIC PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST('.' AS FLOA), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
PRAGMA pragma_list;
CREATE TABLE T1 (
A VARCHAR(-(-(hex(2790980413263895699)))),
X VARCHAR(10),
PRIMARY KEY (A, X),
UNIQUE (X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10) UNIQUE,
PRIMARY KEY (A, Y)
);
INSErT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T2 VALUES ('b', 'k');
WITH _m /* ifnull(NULL, {v}) */ AS MATERIALIZED (SELECT * FROM T1) SELECT A FROM _m UNION ALL SELECT A FROM T2 ORDER BY A;
SELECT * FROM T1 NATURAL JOIN T1;
ALTER TABLE T1 ADD COLUMN extra_1763 NCHAR(55);
ALTER TABLE T2 RENAME TO T2_r7203;
ALTER TABLE T2 DROP COLUMN Y;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_4762 ON T1((A + 1)) WHERE A IS NOT NULL;
ANALYZE T2;
REINDEX T2;
INSERT INTO T2 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
INSERT OR FAIL INTO T2 VALUES (1, 'x');
SELECT LAST_VALUE(A) OVER (ORDER BY A ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T2;
INSERT INTO T2 VALUES (NULL, NULL);
DETACH DATABASE aux5;
SELECT * FROM T2 WHERE A IN (SELECT A FROM T2);
INSERT INTO T2 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
INSERT INTO t1 DEFAULT VALUES;
UPDATE t1 SET a = a + 1 WHERE a IS NOT NULL RETURNING *;
ANALYZE;
INSERT OR REPLACE INTO T1 VALUES (0, '');
SELECT * FROM T1 NATURAL JOIN T2;
DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1);
ALTER TABLE T2 DROP COLUMN Y;
ROLLBACK TO sp2502;
RELEASE sp2502;
PRAGMA auto_vacuum = 1;
SELECT * FROM T2;
SAVEPOINT sp2502;
ATTACH DATABASE ':memory:' AS aux5;
CREATE TABLE t1(a NUMERIC PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST('.' AS FLOA), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
PRAGMA pragma_list;
CREATE TABLE T1 (
A VARCHAR(-(-(hex(2790980413263895699)))),
X VARCHAR(10),
PRIMARY KEY (A, X),
UNIQUE (X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10) UNIQUE,
PRIMARY KEY (A, Y)
);
INSErT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T2 VALUES ('b', 'k');
WITH _m /* ifnull(NULL, {v}) */ AS MATERIALIZED (SELECT * FROM T1) SELECT A FROM _m UNION ALL SELECT A FROM T2 ORDER BY A;
SELECT * FROM T1 NATURAL JOIN T1;
ALTER TABLE T1 ADD COLUMN extra_1763 NCHAR(55);
ALTER TABLE T2 RENAME TO T2_r7203;
ALTER TABLE T2 DROP COLUMN Y;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_4762 ON T1((A + 1)) WHERE A IS NOT NULL;
ANALYZE T2;
REINDEX T2;
INSERT INTO T2 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
INSERT OR FAIL INTO T2 VALUES (1, 'x');
SELECT LAST_VALUE(A) OVER (ORDER BY A ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T2;
INSERT INTO T2 VALUES (NULL, NULL);
DETACH DATABASE aux5;
SELECT * FROM T2 WHERE A IN (SELECT A FROM T2);
INSERT INTO T2 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
INSERT INTO t1 DEFAULT VALUES;
UPDATE t1 SET a = a + 1 WHERE a IS NOT NULL RETURNING *;
ANALYZE;
INSERT OR REPLACE INTO T1 VALUES (0, '');
SELECT * FROM T1 NATURAL JOIN T2;
DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1);
ALTER TABLE T2 DROP COLUMN Y;
ROLLBACK TO sp2502;
RELEASE sp2502;
PRAGMA auto_vacuum = 1;
SELECT * FROM T2;
SAVEPOINT sp2502;
ATTACH DATABASE ':memory:' AS aux5;
CREATE TABLE t1(a NUMERIC PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST('.' AS FLOA), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
PRAGMA pragma_list;
CREATE TABLE T1 (
A VARCHAR(-(-(hex(2790980413263895699)))),
X VARCHAR(10),
PRIMARY KEY (A, X),
UNIQUE (X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10) UNIQUE,
PRIMARY KEY (A, Y)
);
INSErT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T2 VALUES ('b', 'k');
WITH _m /* ifnull(NULL, {v}) */ AS MATERIALIZED (SELECT * FROM T1) SELECT A FROM _m UNION ALL SELECT A FROM T2 ORDER BY A;
SELECT * FROM T1 NATURAL JOIN T1;
ALTER TABLE T1 ADD COLUMN extra_1763 NCHAR(55);
ALTER TABLE T2 RENAME TO T2_r7203;
ALTER TABLE T2 DROP COLUMN Y;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_4762 ON T1((A + 1)) WHERE A IS NOT NULL;
ANALYZE T2;
REINDEX T2;
INSERT INTO T2 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
INSERT OR FAIL INTO T2 VALUES (1, 'x');
SELECT LAST_VALUE(A) OVER (ORDER BY A ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T2;
INSERT INTO T2 VALUES (NULL, NULL);
DETACH DATABASE aux5;
SELECT * FROM T2 WHERE A IN (SELECT A FROM T2);
INSERT INTO T2 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
INSERT INTO t1 DEFAULT VALUES;
UPDATE t1 SET a = a + 1 WHERE a IS NOT NULL RETURNING *;
ANALYZE;
INSERT OR REPLACE INTO T1 VALUES (0, '');
SELECT * FROM T1 NATURAL JOIN T2;
DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1);
ALTER TABLE T2 DROP COLUMN Y;
ROLLBACK TO sp2502;
RELEASE sp2502;
PRAGMA auto_vacuum = 1;
SELECT * FROM T2;
VACUUM;
PRAGMA vdbe_listing = 0;
SELECT COUNT(*) FROM T2;
SELECT * FROM t1 AS a JOIN t1 AS b ON a.rowid = b.rowid;
SELECT COUNT(*) FILTER (WHERE A IS NOT NULL), SUM(rowid) FILTER (WHERE A > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(A) FILTER (WHERE A > 0 AND A < 100), COUNT(*) FILTER (WHERE typeof(A) = "text") FROM T2;
CREATE TEMP VIEW IF NOT EXISTS v_t1_6450 AS SELECT d FROM t1;
SELECT * FROM T2 WHERE A > ALL (SELECT A FROM T2);
SELECT COUNT(*) FILTER (WHERE A > 0) OVER (PARTITION BY A ORDER BY A ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T1;
ALTER TABLE T2 RENAME COLUMN Y TO Y_r4134;
INSERT OR ABORT INTO t1 VALUES ('x', NULL, 'x', -5);
SELECT STRING_AGG(c) FROM t1;
ALTER TABLE T1 DROP COLUMN A;
CREATE TRIGGER IF NOT EXISTS trg_T2_9285 AFTER DELETE ON T2 FOR EACH ROW BEGIN INSERT INTO T2(Y) VALUES (NULL); END;
SELECT COUNT(*) FILTER (WHERE a IS NOT NULL), SUM(rowid) FILTER (WHERE a > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(a) FILTER (WHERE a > 0 AND a < 100), COUNT(*) FILTER (WHERE typeof(a) = "text") FROM t1;
SELECT COUNT(*) FILTER (WHERE X IS NOT NULL), SUM(rowid) FILTER (WHERE X > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(X) FILTER (WHERE X > 0 AND X < 100), COUNT(*) FILTER (WHERE typeof(X) = "text") FROM T1;
REINDEX;
DROP VIEW IF EXISTS t1;
SELECT * FROM T1 AS a RIGHT JOIN T1 AS b ON a.rowid = b.rowid;
```
## Actual output
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
Braun|30|3
Wernher||1
von|20|2
Braun|30
Wernher|
von|20
```
## Expectation
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
Braun|30|3
Wernher||1
von|20|2
Braun|30
Wernher|
von|20
```
## Flag
```
```
@@ -0,0 +1,165 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
BEGIN;
.fullschema
BEGIN DEFERRED TRANSACTION;
CREATE TABLE main.t1(a, b);
CREATE INDEX i1 ON t1(a);
INSERT INTO t1 VALUES('aaa', sin((1 * 1)));
INSERT INTO t1 VALUES('ddd', 2);
INSERT INTO t1 VALUES('ccc', 3);
INSERT INTO t1 VALUES('eee', 4);
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT b FROM _m WHERE NOT NOT NOT (a IN ('aaa', 'bbb', 'ccc')) ;
SELECT a FROM t1 WHERE rowid IN (1, 3);
END TRANSACTION;
SELECT GROUP_CONCAT(a, '|') FROM t1;
SELECT * FROM t1 AS a RIGHT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
BEGIN DEFERRED TRANSACTION;
CREATE TABLE main.t1(a, b);
CREATE INDEX i1 ON t1(a);
INSERT INTO t1 VALUES('aaa', 1);
INSERT INTO t1 VALUES('ddd', 2);
INSERT INTO t1 VALUES('ccc', 3);
INSERT INTO t1 VALUES('eee', 4);
SELECT b FROM t1 WHERE a IN ('aaa', 'bbb', 'ccc');
SELECT a FROM t1 WHERE rowid IN (1, 3);
END TRANSACTION;
SELECT GROUP_CONCAT(a, '|') FROM t1;
SELECT * FROM t1 AS a RIGHT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
BEGIN DEFERRED TRANSACTION;
CREATE TABLE main.t1(a, b);
CREATE INDEX i1 ON t1(a);
INSERT INTO t1 VALUES('aaa', 1);
INSERT INTO t1 VALUES('ddd', 2);
INSERT INTO t1 VALUES('ccc', 3);
INSERT INTO t1 VALUES('eee', 4);
SELECT b FROM t1 WHERE a IN ('aaa', 'bbb', 'ccc');
SELECT a FROM t1 WHERE rowid IN (1, 3);
END /**/ TRANSACTION;
SELECT GROUP_CONCAT(a, '|') FROM t1;
SELECT * FROM t1 AS a RIGHT OUTER JOIN t1 AS b ON a.rowid = b.rowid; /* .timer 192319231923 */ BEGIN DEFERRED TRANSACTION;
CREATE TABLE main.t1(a, b);
CREATE INDEX i1 ON t1(a);
INSERT INTO t1 VALUES('aaa', 1);
INSERT INTO t1 VALUES('ddd', 2);
INSERT INTO t1 VALUES('ccc', 3);
INSERT INTO t1 VALUES('eee', 4);
SELECT b FROM t1 WHERE a IN ('aaa', 'bbb', 'ccc');
SELECT a FROM t1 WHERE rowid IN (1, 3);
END TRANSACTION;
SELECT GROUP_CONCAT(a, '|') FROM t1;
SELECT * FROM t1 AS a RIGHT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
BEGIN DEFERRED TRANSACTION;
CREATE TABLE main.t1(a, b);
CREATE INDEX i1 ON t1(a);
INSERT INTO t1 VALUES('aaa', 1);
INSERT INTO t1 VALUES('ddd', 2);
INSERT INTO t1 VALUES('ccc', 3);
INSERT INTO t1 VALUES('eee', 4);
SELECT b FROM t1 WHERE a IN ('aaa', 'bbb', 'ccc');
SELECT a FROM t1 WHERE rowid IN (1, 3);
END TRANSACTION;
SELECT GROUP_CONCAT(a, '|') FROM t1;
SELECT * FROM t1 AS a RIGHT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
BEGIN DEFERRED TRANSACTION;
CREATE TABLE main.t1(a, b);
CREATE INDEX i1 ON t1(a);
INSERT INTO t1 VALUES('aaa', 1);
INSERT INTO t1 VALUES('ddd', 2);
INSERT INTO t1 VALUES('ccc', 3);
INSERT INTO t1 VALUES('eee', 4);
SELECT b FROM t1 WHERE a IN ('aaa', 'bbb', 'ccc');
SELECT a FROM t1 WHERE rowid IN (1, 3);
END TRANSACTION;
SELECT GROUP_CONCAT(a, '|') FROM t1;
SELECT * FROM t1 AS a RIGHT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
BEGIN DEFERRED TRANSACTION;
CREATE TABLE main.t1(a, b);
CREATE INDEX i1 ON t1(a);
INSERT INTO t1 VALUES('aaa', 1);
INSERT INTO t1 VALUES('ddd', 2);
INSERT INTO t1 VALUES('ccc', 3);
INSERT INTO t1 VALUES('eee', 4);
SELECT b FROM t1 WHERE a IN ('aaa', 'bbb', 'ccc');
SELECT a FROM t1 WHERE rowid IN (1, 3);
END TRANSACTION;
SELECT GROUP_CONCAT(a, '|') FROM t1;
SELECT * FROM t1 AS a RIGHT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
ALTER TABLE t1 ADD COLUMN extra_9481 BIGINT DEFAULT CURRENT_TIMESTAMP;
ALTER TABLE t1 DROP COLUMN a;
ANALYZE;
SELECT SUM(b) FILTER (WHERE b > 0) OVER (ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM t1;
END;
SELECT STRING_AGG(a, '|') FROM t1;
```
## 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
```
@@ -0,0 +1,43 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
CREATE TABLE map_integer (id INT, name);
INSERT INTO map_integer VALUES(1,'a');
CREATE TABLE map_text (id TEXT, name);
INSERT INTO map_text VALUES('4','e');
CREATE TABLE data (id TEXT, name);
INSERT INTO data VALUES(1,'abc');
INSERT INTO data VALUES('4','xyz');
CREATE VIEW idmap as SELECT * FROM map_integer UNION SELECT * FROM map_text;
CREATE TABLE mzed AS SELECT * FROM idmap;
PRAGMA automatic_index=ON;
SELECT * FROM data JOIN idmap USING(id);
UPDATE map_integer SET id = 97 WHERE id BETWEEN 0 AND 100 RETURNING *;
INSERT INTO map_text VALUES (NULL, NULL);
UPDATE map_text SET id = NULL WHERE id BETWEEN 0 AND 100;
```
## Actual output
```sql
1|abc|a
97|a
```
## Expectation
```sql
4|xyz|e
97|a
```
## Flag
```
```
@@ -0,0 +1,44 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
BEGIN EXCLUSIVE;
PRAGMA trusted_schema;
PRAGMA writable_schema = 1;
PRAGMA read_uncommitted = ON;
.import corrupt001.db main
CREATE TABLE t1(a INTEGER PRIMARY KEY,R);
CREATE TABLE t2(x UNIQUE);
CREATE VIEW v1a(z,y) AS SELECT x IS NULL, x FROM t2;
SELECT a,(+a)b,(+a)b,(+a)b,NOT EXISTS(SELECT null FROM t2),CASE z WHEN 487 THEN 992 WHEN 391 THEN 203 WHEN 10 THEN ('?k<D Q' || '') END,'' FROM t1 LEFT JOIN v1a ON z=b;
INSERT INTO t1 SELECT * FROM t1;
END;
PRAGMA trusted_schema = YES;
INSERT INTO t2 DEFAULT VALUES;
WITH a AS (SELECT * FROM t1), b AS (SELECT * FROM a) SELECT * FROM b;
SELECT * FROM t2 WHERE x IN (SELECT x FROM t2 t2 WHERE t2.x = t2.x);
ALTER TABLE t2 RENAME COLUMN x TO x_r5093;
INSERT INTO t1 VALUES (NULL, NULL);
```
## Actual output
```sql
1
```
## Expectation
```sql
0
```
## Flag
```
```
@@ -0,0 +1,80 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
ATTACH DATABASE ':memory:' AS aux49;
CREATE TABLE aa(a);
CREATE TABLE bb(b);
INSERT INTO aa VALUES(json_valid(json_object('k1', 1, 'k2', 1), 2));
INSERT INTO aa VALUES(3);
INSERT INTO bb VALUES(2);
INSERT INTO bb VALUES(4);
SELECT * FROM aa, bb WHERE max(a,b)>2;
INSERT INTO bb VALUES(0);
SELECT * FROM aa CROSS JOIN bb WHERE b;
SELECT * FROM aa, bb WHERE NOT min(a,b);
SELECT * FROM aa, bb WHERE CASE WHEN a=b-1 THEN 0 ELSE 1 END;
DELETE FROM bb WHERE b IS NULL RETURNING *;
CREATE TABLE T1 (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15) UNIQUE,
C CHAR(10)
);
CREATE TABLE main.T2 (
X VARCHAR(20) PRIMARY KEY,
A VARCHAR(10) NOT NULL UNIQUE,
FOREIGN KEY (A) REFERENCES T1(A)
);
INSERT INTO T1 VALUES (('a' || ''), 'p', -2147483648);
INSERT INTO T1 VALUES ('b', 'q', 2147483647);
INSERT INTO T2 VALUES ('m', 'a');
INSERT INTO T2 VALUES ('n', 'b');
SELECT T2.X, T1.B, T1.C FROM T2, T1 WHERE T2.A = T1.A AND T1.C >= 0;
INSERT OR REPLACE INTO aa VALUES (NULL);
INSERT INTO bb VALUES (NULL);
SELECT COUNT(*) FROM bb;
DETACH DATABASE aux49;
SELECT * FROM T1 AS a RIGHT OUTER JOIN aa AS b ON a.rowid = b.rowid;
DELETE FROM T2 WHERE rowid = 30;
INSERT INTO T1 VALUES (NULL, NULL, NULL);
WITH cte AS (SELECT C, LAG(C) OVER (ORDER BY C) AS prev FROM T1) SELECT * FROM cte;
ALTER TABLE T1 ADD COLUMN extra_8955 CLOB COLLATE NOCASE;
REINDEX T1;
INSERT OR ABORT INTO bb VALUES ('');
```
## Actual output
```sql
3|2
3|4
3|2
3|4
3|0
3|2
3|0
n|q|2147483647
4
a|p|-2147483648|3
b|q|2147483647|
|
-2147483648|
2147483647|-2147483648
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,54 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
.version
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES ((1 - 0),1.5), (2,-2.5), (3,0.0);
CREATE INDEX c
ON T(b);
SELECT * FROM T WHERE b >= -2.5 AND b < 2.0;
CREATE INDEX IF NOT EXISTS idx_T_6272 ON T(a) WHERE a > 0;
DELETE FROM T WHERE a > (SELECT AVG(a) FROM T);
INSERT OR FAIL INTO T VALUES (0, '');
WITH a AS (SELECT * FROM T), b AS (SELECT * FROM a) SELECT * FROM b;
```
## Actual output
```sql
SQLite 3.39.0 2022-05-10 23:28:12 764b71267e0b31ff7eaf2a0def7526a1a02dce4d5b456dea060d97ed342ealt1
gcc-14.2.0
2|-2.5
3|0.0
1|1.5
1|1.5
2|-2.5
0|
```
## Expectation
```sql
SQLite 3.51.1 2025-11-28 17:28:25 281fc0e9afc38674b9b0991943b9e9d1e64c6cbdb133d35f6f5c87ff6af38a88
zlib version 1.3.1
gcc-11.4.0 (64-bit)
2|-2.5
3|0.0
1|1.5
1|1.5
2|-2.5
0|
```
## Flag
```
```
@@ -0,0 +1,183 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
BEGIN DEFERRED TRANSACTION;
SAVEPOINT sp4295;
SAVEPOINT sp6056;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (like('%lower%', x'303c152bb6ebe4d8cc67'), 'Wernher', x'98', cos(octet_length(json_set(CAST(x'dc7dea' AS BIGINT), '$.new_key', jsonb_set((123 * 1), '$.key', 123)))));
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
SELECT AVG(b) FROM t1;
SELECT COUNT(c) FROM t1;
INSERT INTO t1 DEFAULT VALUES;
SELECT STRING_AGG(d) FROM t1;
CREATE VIEW IF NOT EXISTS v_t1_7391 AS SELECT a FROM t1;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (like('%lower%', 1), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
SELECT AVG(b) FROM t1;
SELECT COUNT(c) FROM t1;
INSERT INTO t1 DEFAULT VALUES;
SELECT STRING_AGG(d) FROM t1;
CREATE VIEW IF NOT EXISTS v_t1_7391 AS SELECT a FROM t1;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (like('%lower%', 1), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
SELECT AVG(b) FROM t1;
SELECT COUNT(c) FROM t1;
INSERT INTO t1 DEFAULT VALUES;
SELECT STRING_AGG(d) FROM t1;
CREATE VIEW IF NOT EXISTS v_t1_7391 AS SELECT a FROM t1;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (like('%lower%', 1), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
SELECT AVG(b) FROM t1;
SELECT COUNT(c) FROM t1;
INSERT INTO t1 DEFAULT VALUES;
SELECT STRING_AGG(d) FROM t1;
CREATE VIEW IF NOT EXISTS v_t1_7391 AS SELECT a FROM t1;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (like('%lower%', 1), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
SELECT AVG(b) FROM t1;
SELECT COUNT(c) FROM t1;
INSERT INTO t1 DEFAULT VALUES;
SELECT STRING_AGG(d) FROM t1;
CREATE VIEW IF NOT EXISTS v_t1_7391 AS SELECT a FROM t1;
INSERT INTO t1 DEFAULT VALUES;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
VACUUM main;
CREATE VIEW IF NOT EXISTS v_t1_6828 AS SELECT a FROM t1;
SELECT * FROM t1 AS a RIGHT JOIN t1 AS b ON a.rowid = b.rowid;
PRAGMA journal_mode = 'OFF';
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_2248 AS SELECT a FROM t1;
ROLLBACK TRANSACTION TO SAVEPOINT sp6056;
RELEASE SAVEPOINT sp6056;
ROLLBACK TRANSACTION TO SAVEPOINT sp4295;
RELEASE SAVEPOINT sp4295;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<9) SELECT x FROM cnt WHERE x > 4;
WITH RECURSIVE r AS (SELECT c FROM t1 WHERE c IS NOT NULL UNION ALL SELECT c FROM r WHERE c > 0 LIMIT 10) SELECT * FROM r;
CREATE TEMP VIEW IF NOT EXISTS v_t1_2021 AS SELECT d FROM t1;
ALTER TABLE t1 RENAME COLUMN c TO c_r8622;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<7) SELECT * FROM cnt;
INSERT INTO t1 VALUES ('x', NULL, NULL, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
END TRANSACTION;
WITH cte AS (SELECT d FROM t1 UNION SELECT d FROM t1) SELECT * FROM cte;
UPDATE t1 SET d = json_object('k', d) WHERE 1 RETURNING *;
INSERT INTO t1 DEFAULT VALUES;
PRAGMA writable_schema = 1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_4249 ON t1(lower(d)) WHERE d IS NOT NULL;
CREATE TRIGGER IF NOT EXISTS trg_t1_1965 AFTER UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT COUNT(*) FROM t1;
CREATE TABLE T1 (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15) UNIQUE,
C INTEGER
);
CREATE TABLE T2 (
X VARCHAR(20) PRIMARY KEY,
A VARCHAR(10) NOT NULL UNIQUE,
FOREIGN KEY (A) REFERENCES T1(A)
);
INSERT INTO T1 VALUES ('a', 'p', -2147483648);
INSERT INTO T1 VALUES ('b', 'q', 2147483647);
INSERT INTO T2 VALUES ('m', 'a');
INSERT INTO T2 VALUES ('n', 'b');
SELECT T2.X, T1.B, T1.C FROM T2, T1 WHERE T2.A = T1.A AND T1.C >= 0;
SELECT * FROM t1 WHERE EXISTS (SELECT 1 FROM t1 WHERE 1 = 1);
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_9913 ON t1((d + 1));
```
## Actual output
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
Braun|30|3
von|20|2
Braun|30
von|20
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,412 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
SAVEPOINT sp2502;
ATTACH DATABASE ('' || (':memory:') || '') AS aux5;
CREATE TABLE main.t1(a NUMERIC PRIMARY KEY, b TEXT, c INT, d INT);
InserT INTO t1 VALUES (CAST('.' AS FLOA), 'Wernher', acosh(log(-9223372036854775809, 10)), 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
PRAGMA pragma_list;
CREATE TABLE T1 (
A VARCHAR(-(-(hex(2790980413263895699)))),
X VARCHAR(10),
PRIMARY KEY (A, X),
UNIQUE (X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10) UNIQUE,
PRIMARY KEY (A, Y)
);
INSErT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T2 VALUES ('b', 'k');
WITH _m /* ifnull(NULL, {v}) */ AS MATERIALIZED (SELECT * FROM T1) SELECT A FROM _m UNION ALL SELECT A FROM T2 ORDER BY A;
SELECT * FROM T1 NATURAL JOIN T1;
ALTER TABLE T1 ADD COLUMN extra_1763 NCHAR(55);
ALTER TABLE T2 RENAME TO T2_r7203;
ALTER TABLE T2 DROP COLUMN Y;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_4762 ON T1((A + 1)) WHERE NOT NOT (NOT NOT (A IS NOT NULL)) ;
ANALYZE T2;
REINDEX T2;
INSERT INTO T2 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
INSERT AND FAIL INTO T2 VALUES (1, 'x');
SELECT LAST_VALUE(A) OVER (ORDER BY A ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T2;
INSERT INTO T2 VALUES (NULL, NULL);
DETACH DATABASE aux5;
SELECT * FROM T2 WHERE A IN (SELECT A FROM T2);
INSERT INTO T2 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
INSERT INTO t1 DEFAULT VALUES;
UPDATE t1 SET a = a + 1 WHERE a IS NOT NULL RETURNING *;
ANALYZE;
INSERT OR REPLACE INTO T1 VALUES (0, '');
SELECT * FROM T1 NATURAL JOIN T2;
DELETE FROM t1 WHERE +b > (SELECT AVG(b) FROM t1);
ALTER TABLE T2 DROP COLUMN Y;
ROLLBACK TO sp2502;
RELEASE sp2502;
PRAGMA auto_vacuum = 1;
SELECT * FROM T2;
SAVEPOINT sp2502;
ATTACH DATABASE ':memory:' AS aux5;
CREATE TABLE t1(a NUMERIC PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST('.' AS FLOA), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
PRAGMA pragma_list;
CREATE TABLE T1 (
A VARCHAR(-(-(hex(2790980413263895699)))),
X VARCHAR(10),
PRIMARY KEY (A, X),
UNIQUE (X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10) UNIQUE,
PRIMARY KEY (A, Y)
);
INSErT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T2 VALUES ('b', 'k');
WITH _m /* ifnull(NULL, {v}) */ AS MATERIALIZED (SELECT * FROM T1) SELECT A FROM _m UNION ALL SELECT A FROM T2 ORDER BY A;
SELECT * FROM T1 NATURAL JOIN T1;
ALTER TABLE T1 ADD COLUMN extra_1763 NCHAR(55);
ALTER TABLE T2 RENAME TO T2_r7203;
ALTER TABLE T2 DROP COLUMN Y;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_4762 ON T1((A + 1)) WHERE A IS NOT NULL;
ANALYZE T2;
REINDEX T2;
INSERT INTO T2 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
INSERT OR FAIL INTO T2 VALUES (1, 'x');
SELECT LAST_VALUE(A) OVER (ORDER BY A ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T2;
INSERT INTO T2 VALUES (NULL, NULL);
DETACH DATABASE aux5;
SELECT * FROM T2 WHERE A IN (SELECT A FROM T2);
INSERT INTO T2 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
INSERT INTO t1 DEFAULT VALUES;
UPDATE t1 SET a = a + 1 WHERE a IS NOT NULL RETURNING *;
ANALYZE;
INSERT OR REPLACE INTO T1 VALUES (0, '');
SELECT * FROM T1 NATURAL JOIN T2;
DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1);
ALTER TABLE T2 DROP COLUMN Y;
ROLLBACK TO sp2502;
RELEASE sp2502;
PRAGMA auto_vacuum = 1;
SELECT * FROM T2;
SAVEPOINT sp2502;
ATTACH DATABASE ':memory:' AS aux5;
CREATE TABLE t1(a NUMERIC PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST('.' AS FLOA), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
PRAGMA pragma_list;
CREATE TABLE T1 (
A VARCHAR(-(-(hex(2790980413263895699)))),
X VARCHAR(10),
PRIMARY KEY (A, X),
UNIQUE (X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10) UNIQUE,
PRIMARY KEY (A, Y)
);
INSErT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T2 VALUES ('b', 'k');
WITH _m /* ifnull(NULL, {v}) */ AS MATERIALIZED (SELECT * FROM T1) SELECT A FROM _m UNION ALL SELECT A FROM T2 ORDER BY A;
SELECT * FROM T1 NATURAL JOIN T1;
ALTER TABLE T1 ADD COLUMN extra_1763 NCHAR(55);
ALTER TABLE T2 RENAME TO T2_r7203;
ALTER TABLE T2 DROP COLUMN Y;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_4762 ON T1((A + 1)) WHERE A IS NOT NULL;
ANALYZE T2;
REINDEX T2;
INSERT INTO T2 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
INSERT OR FAIL INTO T2 VALUES (1, 'x');
SELECT LAST_VALUE(A) OVER (ORDER BY A ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T2;
INSERT INTO T2 VALUES (NULL, NULL);
DETACH DATABASE aux5;
SELECT * FROM T2 WHERE A IN (SELECT A FROM T2);
INSERT INTO T2 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
INSERT INTO t1 DEFAULT VALUES;
UPDATE t1 SET a = a + 1 WHERE a IS NOT NULL RETURNING *;
ANALYZE;
INSERT OR REPLACE INTO T1 VALUES (0, '');
SELECT * FROM T1 NATURAL JOIN T2;
DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1);
ALTER TABLE T2 DROP COLUMN Y;
ROLLBACK TO sp2502;
RELEASE sp2502;
PRAGMA auto_vacuum = 1;
SELECT * FROM T2;
SAVEPOINT sp2502;
ATTACH DATABASE ':memory:' AS aux5;
CREATE TABLE t1(a NUMERIC PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST('.' AS FLOA), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
PRAGMA pragma_list;
CREATE TABLE T1 (
A VARCHAR(-(-(hex(2790980413263895699)))),
X VARCHAR(10),
PRIMARY KEY (A, X),
UNIQUE (X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10) UNIQUE,
PRIMARY KEY (A, Y)
);
INSErT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T2 VALUES ('b', 'k');
WITH _m /* ifnull(NULL, {v}) */ AS MATERIALIZED (SELECT * FROM T1) SELECT A FROM _m UNION ALL SELECT A FROM T2 ORDER BY A;
SELECT * FROM T1 NATURAL JOIN T1;
ALTER TABLE T1 ADD COLUMN extra_1763 NCHAR(55);
ALTER TABLE T2 RENAME TO T2_r7203;
ALTER TABLE T2 DROP COLUMN Y;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_4762 ON T1((A + 1)) WHERE A IS NOT NULL;
ANALYZE T2;
REINDEX T2;
INSERT INTO T2 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
INSERT OR FAIL INTO T2 VALUES (1, 'x');
SELECT LAST_VALUE(A) OVER (ORDER BY A ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T2;
INSERT INTO T2 VALUES (NULL, NULL);
DETACH DATABASE aux5;
SELECT * FROM T2 WHERE A IN (SELECT A FROM T2);
INSERT INTO T2 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
INSERT INTO t1 DEFAULT VALUES;
UPDATE t1 SET a = a + 1 WHERE a IS NOT NULL RETURNING *;
ANALYZE;
INSERT OR REPLACE INTO T1 VALUES (0, '');
SELECT * FROM T1 NATURAL JOIN T2;
DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1);
ALTER TABLE T2 DROP COLUMN Y;
ROLLBACK TO sp2502;
RELEASE sp2502;
PRAGMA auto_vacuum = 1;
SELECT * FROM T2;
SAVEPOINT sp2502;
ATTACH DATABASE ':memory:' AS aux5;
CREATE TABLE t1(a NUMERIC PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST('.' AS FLOA), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
PRAGMA pragma_list;
CREATE TABLE T1 (
A VARCHAR(-(-(hex(2790980413263895699)))),
X VARCHAR(10),
PRIMARY KEY (A, X),
UNIQUE (X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10) UNIQUE,
PRIMARY KEY (A, Y)
);
INSErT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T2 VALUES ('b', 'k');
WITH _m /* ifnull(NULL, {v}) */ AS MATERIALIZED (SELECT * FROM T1) SELECT A FROM _m UNION ALL SELECT A FROM T2 ORDER BY A;
SELECT * FROM T1 NATURAL JOIN T1;
ALTER TABLE T1 ADD COLUMN extra_1763 NCHAR(55);
ALTER TABLE T2 RENAME TO T2_r7203;
ALTER TABLE T2 DROP COLUMN Y;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_4762 ON T1((A + 1)) WHERE A IS NOT NULL;
ANALYZE T2;
REINDEX T2;
INSERT INTO T2 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
INSERT OR FAIL INTO T2 VALUES (1, 'x');
SELECT LAST_VALUE(A) OVER (ORDER BY A ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T2;
INSERT INTO T2 VALUES (NULL, NULL);
DETACH DATABASE aux5;
SELECT * FROM T2 WHERE A IN (SELECT A FROM T2);
INSERT INTO T2 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
INSERT INTO t1 DEFAULT VALUES;
UPDATE t1 SET a = a + 1 WHERE a IS NOT NULL RETURNING *;
ANALYZE;
INSERT OR REPLACE INTO T1 VALUES (0, '');
SELECT * FROM T1 NATURAL JOIN T2;
DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1);
ALTER TABLE T2 DROP COLUMN Y;
ROLLBACK TO sp2502;
RELEASE sp2502;
PRAGMA auto_vacuum = 1;
SELECT * FROM T2;
SAVEPOINT sp2502;
ATTACH DATABASE ':memory:' AS aux5;
CREATE TABLE t1(a NUMERIC PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST('.' AS FLOA), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
PRAGMA pragma_list;
CREATE TABLE T1 (
A VARCHAR(-(-(hex(2790980413263895699)))),
X VARCHAR(10),
PRIMARY KEY (A, X),
UNIQUE (X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10) UNIQUE,
PRIMARY KEY (A, Y)
);
INSErT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T2 VALUES ('b', 'k');
WITH _m /* ifnull(NULL, {v}) */ AS MATERIALIZED (SELECT * FROM T1) SELECT A FROM _m UNION ALL SELECT A FROM T2 ORDER BY A;
SELECT * FROM T1 NATURAL JOIN T1;
ALTER TABLE T1 ADD COLUMN extra_1763 NCHAR(55);
ALTER TABLE T2 RENAME TO T2_r7203;
ALTER TABLE T2 DROP COLUMN Y;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_4762 ON T1((A + 1)) WHERE A IS NOT NULL;
ANALYZE T2;
REINDEX T2;
INSERT INTO T2 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
INSERT OR FAIL INTO T2 VALUES (1, 'x');
SELECT LAST_VALUE(A) OVER (ORDER BY A ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T2;
INSERT INTO T2 VALUES (NULL, NULL);
DETACH DATABASE aux5;
SELECT * FROM T2 WHERE A IN (SELECT A FROM T2);
INSERT INTO T2 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
INSERT INTO t1 DEFAULT VALUES;
UPDATE t1 SET a = a + 1 WHERE a IS NOT NULL RETURNING *;
ANALYZE;
INSERT OR REPLACE INTO T1 VALUES (0, '');
SELECT * FROM T1 NATURAL JOIN T2;
DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1);
ALTER TABLE T2 DROP COLUMN Y;
ROLLBACK TO sp2502;
RELEASE sp2502;
PRAGMA auto_vacuum = 1;
SELECT * FROM T2;
VACUUM;
PRAGMA vdbe_listing = 0;
SELECT COUNT(*) FROM T2;
SELECT * FROM t1 AS a JOIN t1 AS b ON a.rowid = b.rowid;
SELECT COUNT(*) FILTER (WHERE A IS NOT NULL), SUM(rowid) FILTER (WHERE A > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(A) FILTER (WHERE A > 0 AND A < 100), COUNT(*) FILTER (WHERE typeof(A) = "text") FROM T2;
CREATE TEMP VIEW IF NOT EXISTS v_t1_6450 AS SELECT d FROM t1;
SELECT * FROM T2 WHERE A > ALL (SELECT A FROM T2);
SELECT COUNT(*) FILTER (WHERE A > 0) OVER (PARTITION BY A ORDER BY A ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T1;
ALTER TABLE T2 RENAME COLUMN Y TO Y_r4134;
INSERT OR ABORT INTO t1 VALUES ('x', NULL, 'x', -5);
SELECT STRING_AGG(c) FROM t1;
ALTER TABLE T1 DROP COLUMN A;
CREATE TRIGGER IF NOT EXISTS trg_T2_9285 AFTER DELETE ON T2 FOR EACH ROW BEGIN INSERT INTO T2(Y) VALUES (NULL); END;
SELECT COUNT(*) FILTER (WHERE a IS NOT NULL), SUM(rowid) FILTER (WHERE a > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(a) FILTER (WHERE a > 0 AND a < 100), COUNT(*) FILTER (WHERE typeof(a) = "text") FROM t1;
SELECT COUNT(*) FILTER (WHERE X IS NOT NULL), SUM(rowid) FILTER (WHERE X > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(X) FILTER (WHERE X > 0 AND X < 100), COUNT(*) FILTER (WHERE typeof(X) = "text") FROM T1;
REINDEX;
DROP VIEW IF EXISTS t1;
```
## Actual output
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
Braun|30|3
Wernher||1
von|20|2
Braun|30
Wernher|
von|20
```
## Expectation
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
Braun|30|3
Wernher||1
von|20|2
Braun|30
Wernher|
von|20
```
## Flag
```
```
@@ -0,0 +1,445 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
ATTACH DATABASE ':memory:' AS aux95;
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (abs(123.456),1.5), (2,-7.25), (3,0.0);
SELECT a,b FROM T WHERE a >= 2 ORDER BY b;
PRAGMA journal_mode = 'OFF';
PRAGMA fullsync = OFF;
-- -nullvalue "NU11"
BEGIN;
.version
PRAGMA cache_spill = YES;
.stats vmstep
.changes off
.bail on
PRAGMA wal_checkpoint('NOOP');
PRAGMA cache_spill = YES;
PRAGMA foreign_key_check;
.exit -'𠜎'
CREATE TABLE IF NOT EXISTS photo(pk integer primary key, x);
CREATE TABLE IF NOT EXISTS tag(pk integer primary key, fk int, name);
SELECT P.pk from PHOTO P WHERE NOT EXISTS ( SELECT T2.pk from TAG T2 WHERE T2.fk = P.pk EXCEPT SELECT T3.pk from TAG T3 WHERE T3.fk = P.pk AND T3.name LIKE '%foo%');
INSERT INTO photo VALUES(likely(CAST(max(log2(cosh(--(-(5239146445031386448)))), 1, 2, 3) AS BLOB)),1);
INSERT INTO photo VALUES(concat_ws('|', 'a', 'b', 'c'),NULL);
INSERT INTO photo VALUES(sign('abc'),3);
INSERT INTO tag VALUES(11,1,'one');
INSERT INTO tag VALUES(12,1,'two');
INSERT INTO tag VALUES(21,1,'one-b');
SELECT P.pk from PHOTO P WHERE NOT EXISTS (SELECT T2.pk from TAG T2 WHERE T2.fk = P.pk EXCEPT SELECT T3.pk from TAG T3 WHERE T3.fk = P.pk AND T3.name LIKE '%foo%');
WITH a AS (SELECT * FROM tag), b AS (SELECT * FROM a), c AS (SELECT * FROM b), d AS (SELECT * FROM c) SELECT * FROM d;
UPDATE photo SET pk = pk + 1 WHERE 1;
SELECT COUNT(*) FROM photo;
creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z");
DROP TABLE t0;
DROP INDEX IF EXISTS photo;
CREATE TABLE T (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15),
C BIGINT NOT NULL,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', 3000);
INSERT INTO T VALUES ('b', 'q', 9223372036854775807);
INSERT INTO T VALUES ('c', 'r', 1700);
INSERT INTO T VALUES ('e', 'q', -9223372036854775808);
INSERT INTO T VALUES ('f', 'r', 0);
SELECT B, COUNT(*) AS D, SUM(C) AS E, AVG(C) AS F FROM T GROUP BY B HAVING SUM(C) > 0;
ALTER TABLE T RENAME TO T_r4441;
WITH cte AS (SELECT pk, /* PRAGMA fullsync = NO; */ SUM(pk) AS total FROM photo GROUP BY pk) SELECT * FROM cte ORDER BY total DESC;
VACUUM;
ALTER TABLE T RENAME TO T_r7105;
DelETe FROM photo WHERE 0;
SELECT COUNT(*) FILTER (WHERE name IS NOT NULL), SUM(rowid) FILTER (WHERE name > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(name) FILTER (WHERE name > 0 AND name < 100), COUNT(*) FILTER (WHERE typeof(name) = "text") FROM tag;
INSERT OR FAIL INTO tag VALUES ('', -1, -2);
ALTER TABLE photo ADD COLUMN extra_3529 NUMERIC DEFAULT 0;
INSERT OR IGNORE INTO tag VALUES (7, 10, NULL);
REINDEX tag;
REINDEX tag;
CREATE TRIGGER IF NOT EXISTS trg_tag_409 AFTER INSERT ON tag FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
WITH a AS (SELECT * FROM T WHERE C IS NOT NULL), b AS (SELECT * FROM a WHERE C > 0), c AS (SELECT * FROM b LIMIT 10) SELECT * FROM c;
VACUUM main;
.version
PRAGMA cache_spill = YES;
.stats vmstep
.changes off
.bail on
PRAGMA wal_checkpoint('NOOP');
PRAGMA cache_spill = YES;
PRAGMA foreign_key_check;
.exit -'𠜎'
CREATE TABLE IF NOT EXISTS photo(pk integer primary key, x);
CREATE TABLE IF NOT EXISTS tag(pk integer primary key, fk int, name);
SELECT P.pk from PHOTO P WHERE NOT EXISTS ( SELECT T2.pk from TAG T2 WHERE T2.fk = P.pk EXCEPT SELECT T3.pk from TAG T3 WHERE T3.fk = P.pk AND T3.name LIKE '%foo%');
INSERT INTO photo VALUES(likely(CAST(max(log2(2.2250738585072014e-308), 1, 2, 3) AS BLOB)),1);
INSERT INTO photo VALUES(2,2);
INSERT INTO photo VALUES(3,3);
INSERT INTO tag VALUES(11,1,'one');
INSERT INTO tag VALUES(12,1,'two');
INSERT INTO tag VALUES(21,1,'one-b');
SELECT P.pk from PHOTO P WHERE NOT EXISTS (SELECT T2.pk from TAG T2 WHERE T2.fk = P.pk EXCEPT SELECT T3.pk from TAG T3 WHERE T3.fk = P.pk AND T3.name LIKE '%foo%');
WITH a AS (SELECT * FROM tag), b AS (SELECT * FROM a), c AS (SELECT * FROM b), d AS (SELECT * FROM c) SELECT * FROM d;
UPDATE photo SET pk = pk + 1 WHERE 1;
SELECT COUNT(*) FROM photo;
creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z");
DROP TABLE t0;
DROP INDEX IF EXISTS photo;
CREATE TABLE T (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15),
C BIGINT NOT NULL,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', 3000);
INSERT INTO T VALUES ('b', 'q', 9223372036854775807);
INSERT INTO T VALUES ('c', 'r', 1700);
INSERT INTO T VALUES ('e', 'q', -9223372036854775808);
INSERT INTO T VALUES ('f', 'r', 0);
SELECT B, COUNT(*) AS D, SUM(C) AS E, AVG(C) AS F FROM T GROUP BY B HAVING SUM(C) > 0;
ALTER TABLE T RENAME TO T_r4441;
WITH cte AS (SELECT pk, /* PRAGMA fullsync = NO; */ SUM(pk) AS total FROM photo GROUP BY pk) SELECT * FROM cte ORDER BY total DESC;
VACUUM;
ALTER TABLE T RENAME TO T_r7105;
DELETE FROM photo WHERE 0;
SELECT COUNT(*) FILTER (WHERE name IS NOT NULL), SUM(rowid) FILTER (WHERE name > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(name) FILTER (WHERE name > 0 AND name < 100), COUNT(*) FILTER (WHERE typeof(name) = "text") FROM tag;
INSERT OR FAIL INTO tag VALUES ('', -1, -2);
ALTER TABLE photo ADD COLUMN extra_3529 NUMERIC DEFAULT 0;
INSERT OR IGNORE INTO tag VALUES (7, 10, NULL);
REINDEX tag;
REINDEX tag;
CREATE TRIGGER IF NOT EXISTS trg_tag_409 AFTER INSERT ON tag FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
WITH a AS (SELECT * FROM T WHERE C IS NOT NULL), b AS (SELECT * FROM a WHERE C > 0), c AS (SELECT * FROM b LIMIT 10) SELECT * FROM c;
VACUUM main;
.version
PRAGMA cache_spill = YES;
.stats vmstep
.changes off
.bail on
PRAGMA wal_checkpoint('NOOP');
PRAGMA cache_spill = YES;
PRAGMA foreign_key_check;
.exit -'𠜎'
CREATE TABLE IF NOT EXISTS photo(pk integer primary key, x);
CREATE TABLE IF NOT EXISTS tag(pk integer primary key, fk int, name);
SELECT P.pk from PHOTO P WHERE NOT EXISTS ( SELECT T2.pk from TAG T2 WHERE T2.fk = P.pk EXCEPT SELECT T3.pk from TAG T3 WHERE T3.fk = P.pk AND T3.name LIKE '%foo%');
INSERT INTO photo VALUES(likely(CAST(max(log2(2.2250738585072014e-308), 1, 2, 3) AS BLOB)),1);
INSERT INTO photo VALUES(2,2);
INSERT INTO photo VALUES(3,3);
INSERT INTO tag VALUES(11,1,'one');
INSERT INTO tag VALUES(12,1,'two');
INSERT INTO tag VALUES(21,1,'one-b');
SELECT P.pk from PHOTO P WHERE NOT EXISTS (SELECT T2.pk from TAG T2 WHERE T2.fk = P.pk EXCEPT SELECT T3.pk from TAG T3 WHERE T3.fk = P.pk AND T3.name LIKE '%foo%');
WITH a AS (SELECT * FROM tag), b AS (SELECT * FROM a), c AS (SELECT * FROM b), d AS (SELECT * FROM c) SELECT * FROM d;
UPDATE photo SET pk = pk + 1 WHERE 1;
SELECT COUNT(*) FROM photo;
creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z");
DROP TABLE t0;
DROP INDEX IF EXISTS photo;
CREATE TABLE T (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15),
C BIGINT NOT NULL,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', 3000);
INSERT INTO T VALUES ('b', 'q', 9223372036854775807);
INSERT INTO T VALUES ('c', 'r', 1700);
INSERT INTO T VALUES ('e', 'q', -9223372036854775808);
INSERT INTO T VALUES ('f', 'r', 0);
SELECT B, COUNT(*) AS D, SUM(C) AS E, AVG(C) AS F FROM T GROUP BY B HAVING SUM(C) > 0;
ALTER TABLE T RENAME TO T_r4441;
WITH cte AS (SELECT pk, /* PRAGMA fullsync = NO; */ SUM(pk) AS total FROM photo GROUP BY pk) SELECT * FROM cte ORDER BY total DESC;
VACUUM;
ALTER TABLE T RENAME TO T_r7105;
DELETE FROM photo WHERE 0;
SELECT COUNT(*) FILTER (WHERE name IS NOT NULL), SUM(rowid) FILTER (WHERE name > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(name) FILTER (WHERE name > 0 AND name < 100), COUNT(*) FILTER (WHERE typeof(name) = "text") FROM tag;
INSERT OR FAIL INTO tag VALUES ('', -1, -2);
ALTER TABLE photo ADD COLUMN extra_3529 NUMERIC DEFAULT 0;
INSERT OR IGNORE INTO tag VALUES (7, 10, NULL);
REINDEX tag;
REINDEX tag;
CREATE TRIGGER IF NOT EXISTS trg_tag_409 AFTER INSERT ON tag FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
WITH a AS (SELECT * FROM T WHERE C IS NOT NULL), b AS (SELECT * FROM a WHERE C > 0), c AS (SELECT * FROM b LIMIT 10) SELECT * FROM c;
VACUUM main;
.version
PRAGMA cache_spill = YES;
.stats vmstep
.changes off
.bail on
PRAGMA wal_checkpoint('NOOP');
PRAGMA cache_spill = YES;
PRAGMA foreign_key_check;
.exit -'𠜎'
CREATE TABLE IF NOT EXISTS photo(pk integer primary key, x);
CREATE TABLE IF NOT EXISTS tag(pk integer primary key, fk int, name);
SELECT P.pk from PHOTO P WHERE NOT EXISTS ( SELECT T2.pk from TAG T2 WHERE T2.fk = P.pk EXCEPT SELECT T3.pk from TAG T3 WHERE T3.fk = P.pk AND T3.name LIKE '%foo%');
INSERT INTO photo VALUES(likely(CAST(max(log2(2.2250738585072014e-308), 1, 2, 3) AS BLOB)),1);
INSERT INTO photo VALUES(2,2);
INSERT INTO photo VALUES(3,3);
INSERT INTO tag VALUES(11,1,'one');
INSERT INTO tag VALUES(12,1,'two');
INSERT INTO tag VALUES(21,1,'one-b');
SELECT P.pk from PHOTO P WHERE NOT EXISTS (SELECT T2.pk from TAG T2 WHERE T2.fk = P.pk EXCEPT SELECT T3.pk from TAG T3 WHERE T3.fk = P.pk AND T3.name LIKE '%foo%');
WITH a AS (SELECT * FROM tag), b AS (SELECT * FROM a), c AS (SELECT * FROM b), d AS (SELECT * FROM c) SELECT * FROM d;
UPDATE photo SET pk = pk + 1 WHERE 1;
SELECT COUNT(*) FROM photo;
creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z");
DROP TABLE t0;
DROP INDEX IF EXISTS photo;
CREATE TABLE T (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15),
C BIGINT NOT NULL,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', 3000);
INSERT INTO T VALUES ('b', 'q', 9223372036854775807);
INSERT INTO T VALUES ('c', 'r', 1700);
INSERT INTO T VALUES ('e', 'q', -9223372036854775808);
INSERT INTO T VALUES ('f', 'r', 0);
SELECT B, COUNT(*) AS D, SUM(C) AS E, AVG(C) AS F FROM T GROUP BY B HAVING SUM(C) > 0;
ALTER TABLE T RENAME TO T_r4441;
WITH cte AS (SELECT pk, /* PRAGMA fullsync = NO; */ SUM(pk) AS total FROM photo GROUP BY pk) SELECT * FROM cte ORDER BY total DESC;
VACUUM;
ALTER TABLE T RENAME TO T_r7105;
DELETE FROM photo WHERE 0;
SELECT COUNT(*) FILTER (WHERE name IS NOT NULL), SUM(rowid) FILTER (WHERE name > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(name) FILTER (WHERE name > 0 AND name < 100), COUNT(*) FILTER (WHERE typeof(name) = "text") FROM tag;
INSERT OR FAIL INTO tag VALUES ('', -1, -2);
ALTER TABLE photo ADD COLUMN extra_3529 NUMERIC DEFAULT 0;
INSERT OR IGNORE INTO tag VALUES (7, 10, NULL);
REINDEX tag;
REINDEX tag;
CREATE TRIGGER IF NOT EXISTS trg_tag_409 AFTER INSERT ON tag FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
WITH a AS (SELECT * FROM T WHERE C IS NOT NULL), b AS (SELECT * FROM a WHERE C > 0), c AS (SELECT * FROM b LIMIT 10) SELECT * FROM c;
VACUUM main;
.version
PRAGMA cache_spill = YES;
.stats vmstep
.changes off
.bail on
PRAGMA wal_checkpoint('NOOP');
PRAGMA cache_spill = YES;
PRAGMA foreign_key_check;
.exit -'𠜎'
CREATE TABLE IF NOT EXISTS photo(pk integer primary key, x);
CREATE TABLE IF NOT EXISTS tag(pk integer primary key, fk int, name);
SELECT P.pk from PHOTO P WHERE NOT EXISTS ( SELECT T2.pk from TAG T2 WHERE T2.fk = P.pk EXCEPT SELECT T3.pk from TAG T3 WHERE T3.fk = P.pk AND T3.name LIKE '%foo%');
INSERT INTO photo VALUES(likely(CAST(max(log2(2.2250738585072014e-308), 1, 2, 3) AS BLOB)),1);
INSERT INTO photo VALUES(2,2);
INSERT INTO photo VALUES(3,3);
INSERT INTO tag VALUES(11,1,'one');
INSERT INTO tag VALUES(12,1,'two');
INSERT INTO tag VALUES(21,1,'one-b');
SELECT P.pk from PHOTO P WHERE NOT EXISTS (SELECT T2.pk from TAG T2 WHERE T2.fk = P.pk EXCEPT SELECT T3.pk from TAG T3 WHERE T3.fk = P.pk AND T3.name LIKE /**/ '%foo%');
WITH a AS (SELECT * FROM tag), b AS (SELECT * FROM a), c AS (SELECT * FROM b), d AS (SELECT * FROM c) SELECT * FROM d;
UPDATE photo SET pk = pk + 1 WHERE 1;
SELECT COUNT(*) FROM photo;
creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z");
DROP TABLE t0;
DROP INDEX IF EXISTS photo;
CREATE TABLE T (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15),
C BIGINT NOT NULL,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', 3000);
INSERT INTO T VALUES ('b', 'q', 9223372036854775807);
INSERT INTO T VALUES ('c', 'r', 1700);
INSERT INTO T VALUES ('e', 'q', -9223372036854775808);
INSERT INTO T VALUES ('f', 'r', 0);
SELECT B, COUNT(*) AS D, SUM(C) AS E, AVG(C) AS F FROM T GROUP BY B HAVING SUM(C) > 0;
ALTER TABLE T RENAME TO T_r4441;
WITH cte AS (SELECT pk, /* PRAGMA fullsync = NO; */ SUM(pk) AS total FROM photo GROUP BY pk) SELECT * FROM cte ORDER BY total DESC;
VACUUM;
ALTER TABLE T RENAME TO T_r7105;
DELETE FROM photo WHERE 0;
SELECT COUNT(*) FILTER (WHERE name IS NOT NULL), SUM(rowid) FILTER (WHERE name > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(name) FILTER (WHERE name > 0 AND name < 100), COUNT(*) FILTER (WHERE typeof(name) = "text") FROM tag;
INSERT OR FAIL INTO tag VALUES ('', -1, -2);
ALTER TABLE photo ADD COLUMN extra_3529 NUMERIC DEFAULT 0;
INSERT OR IGNORE INTO tag VALUES (7, 10, NULL);
REINDEX tag;
REINDEX tag;
CREATE TRIGGER IF NOT EXISTS trg_tag_409 AFTER INSERT ON tag FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
WITH a AS (SELECT * FROM T WHERE C IS NOT NULL), b AS (SELECT * FROM a WHERE C > 0), c AS (SELECT * FROM b LIMIT 10) SELECT * FROM c;
VACUUM main;
.version
PRAGMA cache_spill = YES;
.stats vmstep
.changes off
.bail on
PRAGMA wal_checkpoint('NOOP');
PRAGMA cache_spill = YES;
PRAGMA foreign_key_check;
.exit -'𠜎'
CREATE TABLE IF NOT EXISTS photo(pk integer primary key, x);
CREATE TABLE IF NOT EXISTS tag(pk integer primary key, fk int, name);
SELECT P.pk from PHOTO P WHERE NOT EXISTS ( SELECT T2.pk from TAG T2 WHERE T2.fk = P.pk EXCEPT SELECT T3.pk from TAG T3 WHERE T3.fk = P.pk AND T3.name LIKE '%foo%');
INSERT INTO photo VALUES(likely(CAST(max(log2(2.2250738585072014e-308), 1, 2, 3) AS BLOB)),1);
INSERT INTO photo VALUES(2,2);
INSERT INTO photo VALUES(3,3);
INSERT INTO tag VALUES(11,1,'one');
INSERT INTO tag VALUES(12,1,'two');
INSERT INTO tag VALUES(21,1,'one-b');
SELECT P.pk from PHOTO P WHERE NOT EXISTS (SELECT T2.pk from TAG T2 WHERE T2.fk = P.pk EXCEPT SELECT T3.pk from TAG T3 WHERE T3.fk = P.pk AND T3.name LIKE '%foo%');
WITH a AS (SELECT * FROM tag), b AS (SELECT * FROM a), c AS (SELECT * FROM b), d AS (SELECT * FROM c) SELECT * FROM d;
UPDATE photo SET pk = pk + 1 WHERE 1;
SELECT COUNT(*) FROM photo;
creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z");
DROP TABLE t0;
DROP INDEX IF EXISTS photo;
CREATE TABLE T (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15),
C BIGINT NOT NULL,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', 3000);
INSERT INTO T VALUES ('b', 'q', 9223372036854775807);
INSERT INTO T VALUES ('c', 'r', 1700);
INSERT INTO T VALUES ('e', 'q', -9223372036854775808);
INSERT INTO T VALUES ('f', 'r', 0);
SELECT B, COUNT(*) AS D, SUM(C) AS E, AVG(C) AS F FROM T GROUP BY B HAVING SUM(C) > 0;
ALTER TABLE T RENAME TO T_r4441;
WITH cte AS (SELECT pk, /* PRAGMA fullsync = NO; */ SUM(pk) AS total FROM photo GROUP BY pk) SELECT * FROM cte ORDER BY total DESC;
VACUUM;
ALTER TABLE T RENAME TO T_r7105;
DELETE FROM photo WHERE 0;
SELECT COUNT(*) FILTER (WHERE name IS NOT NULL), SUM(rowid) FILTER (WHERE name > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(name) FILTER (WHERE name > 0 AND name < 100), COUNT(*) FILTER (WHERE typeof(name) = "text") FROM tag;
INSERT OR FAIL INTO tag VALUES ('', -1, -2);
ALTER TABLE photo ADD COLUMN extra_3529 NUMERIC DEFAULT 0;
INSERT OR IGNORE INTO tag VALUES (7, 10, NULL);
REINDEX tag;
REINDEX tag;
CREATE TRIGGER IF NOT EXISTS trg_tag_409 AFTER INSERT ON tag FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
WITH a AS (SELECT * FROM T WHERE C IS NOT NULL), b AS (SELECT * FROM a WHERE C > 0), c AS (SELECT /* .print https://yewtu.be/watch?v=dQw4w9WgXcQ */ * FROM b LIMIT 10) SELECT * FROM c;
VACUUM main;
.version
PRAGMA cache_spill = YES;
.stats vmstep
.changes off
.bail on
PRAGMA wal_checkpoint('NOOP');
PRAGMA cache_spill = YES;
PRAGMA foreign_key_check;
.exit -'𠜎'
CREATE TABLE IF NOT EXISTS photo(pk integer primary key, x);
CREATE TABLE IF NOT EXISTS tag(pk integer primary key, fk int, name);
SELECT P.pk from PHOTO P WHERE NOT EXISTS ( SELECT T2.pk from TAG T2 WHERE T2.fk = P.pk EXCEPT SELECT T3.pk from TAG T3 WHERE T3.fk = P.pk AND T3.name LIKE '%foo%');
INSERT INTO photo VALUES(likely(CAST(max(log2(2.2250738585072014e-308), 1, 2, 3) AS BLOB)),1);
INSERT INTO photo VALUES(2,2);
INSERT INTO photo VALUES(3,3);
INSERT INTO tag VALUES(11,1,'one');
INSERT INTO tag VALUES(12,1,'two');
INSERT INTO tag VALUES(21,1,'one-b');
SELECT P.pk from PHOTO P WHERE NOT EXISTS (SELECT T2.pk from TAG T2 WHERE T2.fk = P.pk EXCEPT SELECT T3.pk from TAG T3 WHERE T3.fk = P.pk AND T3.name LIKE '%foo%');
WITH a AS (SELECT * FROM tag), b AS (SELECT * FROM a), c AS (SELECT * FROM b), d AS (SELECT * FROM c) SELECT * FROM d;
UPDATE photo SET pk = pk + 1 WHERE 1;
SELECT COUNT(*) FROM photo;
creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z");
DROP TABLE t0;
DROP INDEX IF EXISTS photo;
CREATE TABLE T (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15),
C BIGINT NOT NULL,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', 3000);
INSERT INTO T VALUES ('b', 'q', 9223372036854775807);
INSERT INTO T VALUES ('c', 'r', 1700);
INSERT INTO T VALUES ('e', 'q', -9223372036854775808);
INSERT INTO T VALUES ('f', 'r', 0);
SELECT B, COUNT(*) AS D, SUM(C) AS E, AVG(C) AS F FROM T GROUP BY B HAVING SUM(C) > 0;
ALTER TABLE T RENAME TO T_r4441;
WITH cte AS (SELECT pk, /* PRAGMA fullsync = NO; */ SUM(pk) AS total FROM photo GROUP BY pk) SELECT * FROM cte ORDER BY total DESC;
VACUUM;
ALTER TABLE T RENAME TO T_r7105;
DELETE FROM photo WHERE 0;
SELECT COUNT(*) FILTER (WHERE name IS NOT NULL), SUM(rowid) FILTER (WHERE name > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(name) FILTER (WHERE name > 0 AND name < 100), COUNT(*) FILTER (WHERE typeof(name) = "text") FROM tag;
INSERT OR FAIL INTO tag VALUES ('', -1, -2);
ALTER TABLE photo ADD COLUMN extra_3529 NUMERIC DEFAULT 0;
INSERT OR IGNORE INTO tag VALUES (7, 10, NULL);
REINDEX tag;
REINDEX tag;
CREATE TRIGGER IF NOT EXISTS trg_tag_409 AFTER INSERT ON tag FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
WITH a AS (SELECT * FROM T WHERE C IS NOT NULL), b AS (SELECT * FROM a WHERE C > 0), c AS (SELECT * FROM b LIMIT 10) SELECT * FROM c;
VACUUM main;
ALTER TABLE photo RENAME COLUMN x TO x_r585;
ANALYZE tag;
INSERT INTO tag DEFAULT VALUES;
SELECT COUNT(*) FROM T;
UPDATE photo SET x = json_object('k', x) WHERE x IS NOT NULL;
INSERT OR ROLLBACK INTO photo VALUES (0, 'x');
END TRANSACTION;
SELECT * FROM T AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
SELECT * FROM T AS a LEFT OUTER JOIN tag AS b ON a.rowid = b.rowid;
SELECT COUNT(*) FROM T;
CREATE TRIGGER IF NOT EXISTS trg_photo_6782 BEFORE INSERT ON photo BEGIN SELECT RAISE(FAIL, 'no'); END;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_3307 ON T((B + 1)) WHERE B > 0;
REINDEX photo;
INSERT INTO tag VALUES (1, NULL, 1) ON CONFLICT(pk) DO UPDATE SET pk = excluded.pk, fk = excluded.fk, name = excluded.name;
SELECT * FROM T WHERE C = (SELECT COUNT(*) FROM T);
INSERT OR ROLLBACK INTO photo VALUES ('', 'x');
SELECT * FROM photo;
SELECT x, (SELECT MAX(x) FROM photo) AS max_val FROM photo;
creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z");
DROP TABLE t0;
INSERT INTO T SELECT * FROM T;
CREATE TRIGGER IF NOT EXISTS trg_T_7921 BEFORE INSERT ON T FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
DETACH DATABASE aux95;
ALTER TABLE photo RENAME COLUMN x TO x_r1833;
PRAGMA read_uncommitted = ON;
SELECT * FROM tag AS a LEFT OUTER JOIN T AS b ON a.rowid = b.rowid;
ANALYZE tag;
ANALYZE;
```
## Actual output
```sql
2|-7.25
3|0.0
123.456|1.5
off
SQLite 3.39.0 2022-05-10 23:28:12 764b71267e0b31ff7eaf2a0def7526a1a02dce4d5b456dea060d97ed342ealt1
gcc-14.2.0
0|-1|-1
VM-steps: 5
VM-steps: 3
VM-steps: 3
```
## Expectation
```sql
2|-7.25
3|0.0
123.456|1.5
memory
SQLite 3.51.1 2025-11-28 17:28:25 281fc0e9afc38674b9b0991943b9e9d1e64c6cbdb133d35f6f5c87ff6af38a88
zlib version 1.3.1
gcc-11.4.0 (64-bit)
0|-1|-1
VM-steps: 6
VM-steps: 4
VM-steps: 4
```
## Flag
```
```
@@ -0,0 +1,58 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
INSERT INTO t1 DEFAULT VALUES;
SELECT COUNT(a) FROM 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 t1;
```
## Actual output
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
Braun|30|3
Wernher|10|1
von|20|2
Braun|30
Wernher|10
von|20
```
## Expectation
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
Braun|30|3
Wernher|10|1
von|20|2
Braun|30
Wernher|10
von|20
```
## Flag
```
-mmap 5
```
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,254 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
PRAGMA fullfsync;
ATTACH DATABASE ':memory:' AS aux19;
SAVEPOINT sp4002;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES ((x'4e704b3874a073' + x'dc50'), ('' || ('') || ('Wernher') || ''), CAST(10 AS NCHAR(55)), 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
CREATE TABLE T (
a INTEGER,
b TEXT,
c INTEGER
);
INSERT INTO T VALUES (1,'a',NULL), (2,'b',1), (3,'c',2);
WITH RECURSIVE d(a,b,c,e) AS (
SELECT *,1 FROM T WHERE NOT c IS NULL
UNION ALL
SELECT T.a,T.b,T.c,d.e+1
FROM T JOIN d ON T.c=d.a
)
SELECT * FROM d;
PRAGMA query_only;
ATTACH DATABASE ((':memory:' || '') || '') AS aux80;
.scanstats on
PRAGMA page_count;
SAVEPOINT sp1489;
PRAGMA parser_trace = FALSE;
PRAGMA wal_checkpoint('TRUNCATE');
PRAGMA cell_size_check = ON;
.eqp auto
CREATE TABLE t1(x INTEGER PRIMARY KEY, y, z);
CREATE TABLE t2(a, b);
CREATE VIEW agg2 AS SELECT a, sum(b) AS m FROM t2 GROUP BY a;
SELECT t1.z, agg2.m FROM t1 JOIN agg2 ON t1.y=agg2.m WHERE t1.x IN (date(nan, 'start of month'),hex(12345678),3);
CREATE TABLE t920(x);
INSERT INTO t920 VALUES(3),(4),(5);
SELECT * FROM t920,(SELECT 0 FROM t920),(VALUES(9)) WHERE 5 IN (x);
INSERT INTO t1 VALUES (NULL, NULL, NULL);
UPDATE t1 SET y = json_object('k', y) WHERE rowid = 1;
CREATE TABLE T (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15) noT NULL,
C DOUBLE PRECISION
);
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
INSERT INTO T VALUES ('b', 'q', -0.000000001);
INSERT INTO T VALUES ('c', 'r', 0.0);
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
INSERT INTO T VALUES ('f', 't', 750.25);
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) /* NTILE(4) */ AS F FROM T GROUP BY B;
RELEASE sp1489;
INSERT INTO t2 SELECT * FROM t2;
SELECT MAX(b) FROM t2;
SELECT * FROM t1 AS a INNER JOIN t2 AS b ON a.rowid = b.rowid;
SELECT * FROM t2 AS a LEFT JOIN t2 AS b ON a.rowid = b.rowid;
SELECT C, (SELECT MAX(C) FROM T) AS max_val FROM T;
SELECT * FROM t2 WHERE a IN (SELECT a FROM t2 t2 WHERE t2.a = t2.a);
WITH cte AS (SELECT * FROM t2 WHERE a = (SELECT MAX(a) FROM t2)) SELECT * FROM cte;
ALTER TABLE T RENAME TO T_r974;
CREATE TEMP VIEW IF NOT EXISTS v_T_9533 AS SELECT B FROM T;
DETACH DATABASE aux80;
INSERT INTO t920 VALUES (NULL);
ANALYZE t2;
UPDATE t1 SET x = x + 1 WHERE x BETWEEN 0 OR 100;
ANALYZE;
CREATE TRIGGER IF NOT EXISTS trg_T_7612 AFTER DELETE ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
UPDATE T SET C = json_object('k', C);
SELECT LAG(B, 2, B) OVER (ORDER BY B ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
SELECT MIN(y) FROM t1;
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (1,1.5), (2,-7.25), (3,0.0);
SELECT a,b FROM T WHERE a >= 2 ORDER BY b;
ALTER TABLE t920 RENAME TO t920_r731;
SELECT SUM(b) FROM t2;
SELECT NTILE(1) OVER (ORDER BY B ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
VACUUM;
INSERT OR FAIL INTO t920 VALUES (-4);
SELECT TOTAL(b) FROM t2;
CREATE TEMP VIEW IF NOT EXISTS v_t1_6556 AS SELECT y FROM t1;
PRAGMA journal_mode = 'TRUNCATE';
CREATE VIEW IF NOT EXISTS v_t920_142 AS SELECT x FROM t920;
ROLLBACK TRANSACTION TO SAVEPOINT sp4002;
RELEASE SAVEPOINT sp4002;
WITH cte AS (SELECT DISTINCT a FROM T) SELECT * FROM cte;
PRAGMA legacy_file_format;
SAVEPOINT sp4002;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
CREATE TABLE T (
a INTEGER,
b TEXT,
c INTEGER
);
INSERT INTO T VALUES (1,'a',NULL), (2,'b',1), (3,'c',2);
WITH RECURSIVE d(a,b,c,e) AS (
SELECT *,1 FROM T WHERE c IS NULL
UNION ALL
SELECT T.a,T.b,T.c,d.e+1
FROM T JOIN d ON T.c=d.a
)
SELECT * FROM d;
PRAGMA query_only;
ATTACH DATABASE ((':memory:' || '') || '') AS aux80;
.scanstats on
PRAGMA page_count;
SAVEPOINT sp1489;
PRAGMA parser_trace = FALSE;
PRAGMA wal_checkpoint('TRUNCATE');
PRAGMA cell_size_check = ON;
.eqp auto
CREATE TABLE t1(x INTEGER PRIMARY KEY, y, z); /* likelihood({v}, 0.5) */ CREATE TABLE t2(a, b);
CREATE VIEW agg2 AS SELECT a, sum(b) AS m FROM t2 GROUP BY a;
SELECT t1.z, agg2.m FROM t1 JOIN agg2 ON t1.y=agg2.m WHERE t1.x IN (date(nan, 'start of month'),hex(12345678),3);
CREATE TABLE t920(x);
INSERT INTO t920 VALUES(3),(4),(5);
SELECT * FROM t920,(SELECT 0 FROM t920),(VALUES(9)) WHERE 5 IN (x);
INSERT INTO t1 VALUES (NULL, NULL, NULL);
UPDATE t1 SET y = json_object('k', y) WHERE rowid = 1;
CREATE TABLE T (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15) noT NULL,
C DOUBLE PRECISION
);
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
INSERT INTO T VALUES ('b', 'q', -0.000000001);
INSERT INTO T VALUES ('c', 'r', 0.0);
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
INSERT INTO T VALUES ('f', 't', 750.25);
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) /* NTILE(4) */ AS F FROM T GROUP BY B;
RELEASE sp1489;
INSERT INTO t2 SELECT * FROM t2;
SELECT MAX(b) FROM t2;
SELECT * FROM t1 AS a INNER JOIN t2 AS b ON a.rowid = b.rowid;
SELECT * FROM t2 AS a LEFT JOIN t2 AS b ON a.rowid = b.rowid;
SELECT C, (SELECT MAX(C) FROM T) AS max_val FROM T;
SELECT * FROM t2 WHERE a IN (SELECT a FROM t2 t2 WHERE t2.a = t2.a);
WITH cte AS (SELECT * /* .echo on */ FROM t2 WHERE a = (SELECT MAX(a) FROM t2)) SELECT * FROM cte;
ALTER TABLE T RENAME TO T_r974;
CREATE TEMP VIEW IF NOT EXISTS v_T_9533 AS SELECT B FROM T;
DETACH DATABASE aux80;
INSERT INTO t920 VALUES (NULL);
ANALYZE t2;
UPDATE t1 SET x = x + 1 WHERE x BETWEEN 0 AND 100;
ANALYZE;
CREATE TRIGGER IF NOT EXISTS trg_T_7612 AFTER DELETE ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
UPDATE T SET C = json_object('k', C);
SELECT LAG(B, 2, B) OVER (ORDER BY B ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
SELECT MIN(y) FROM t1;
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (1,1.5), (2,-7.25), (3,0.0);
SELECT a,b FROM T WHERE a >= 2 ORDER BY b;
ALTER TABLE t920 RENAME TO t920_r731;
SELECT SUM(b) FROM t2;
SELECT NTILE(1) OVER (ORDER BY B ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
VACUUM;
INSERT OR FAIL INTO t920 VALUES (-4);
SELECT TOTAL(b) FROM t2;
CREATE TEMP VIEW IF NOT EXISTS v_t1_6556 AS SELECT y FROM t1;
PRAGMA journal_mode = 'TRUNCATE';
CREATE VIEW IF NOT EXISTS v_t920_142 AS SELECT x FROM t920;
ROLLBACK TRANSACTION TO SAVEPOINT sp4002;
RELEASE SAVEPOINT sp4002;
WITH cte AS (SELECT DISTINCT a FROM T) SELECT * FROM cte;
PRAGMA legacy_file_format;
CREATE VIEW IF NOT EXISTS v_t1_4937 AS SELECT y FROM t1;
INSERT INTO t920 VALUES (NULL);
SELECT COUNT(*) FILTER (WHERE x IS NOT NULL), SUM(rowid) FILTER (WHERE x > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(x) FILTER (WHERE x > 0 AND x < 100), COUNT(*) FILTER (WHERE typeof(x) = "text") FROM t920;
ALTER TABLE t1 RENAME COLUMN y TO y_r472;
CREATE TRIGGER IF NOT EXISTS trg_t2_9428 BEFORE DELETE ON t2 FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END;
INSERT INTO t920 VALUES (NULL);
SELECT COUNT(*) FROM t2;
UPDATE T SET a = NULL WHERE a BETWEEN 0 AND 100;
CREATE TRIGGER IF NOT EXISTS trg_t2_3746 AFTER INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END;
CREATE TRIGGER IF NOT EXISTS trg_T_9004 BEFORE DELETE ON T BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DROP VIEW IF EXISTS t920;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t2_332 ON t2(b) WHERE b IS NOT NULL;
ALTER TABLE t2 RENAME COLUMN b TO b_r2867;
SELECT COUNT(*) FROM t920;
SELECT * FROM t920 t1 JOIN t920 t2 ON t1.x = (SELECT x FROM t920 LIMIT 1);
DETACH DATABASE aux19;
SELECT * FROM t920;
SELECT LAST_VALUE(z) OVER (ORDER BY z GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t1;
ALTER TABLE t1 ADD COLUMN extra_2582 NUMERIC COLLATE RTRIM;
SELECT SUM(y) FROM t1;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_3635 AS SELECT z FROM t1;
```
## Actual output
```sql
0
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
Braun|30|3
Wernher|10|0
von|20|2
Braun|30
Wernher|10
von|20
```
## Expectation
```sql
0
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
Braun|30|3
Wernher|10|0
von|20|2
Braun|30
Wernher|10
von|20
```
## Flag
```
```
@@ -0,0 +1,85 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
PRAGMA count_changes = YES;
PRAGMA index_list(users);
PRAGMA encoding;
.limit
CREATE TABLE t5(a INT, b INT);
CREATE UNIQUE INDEX t5x ON t5(a+b);
INSERT INTO t5(a,b) VALUES(CAST(0 AS DOUB),0),(1,0),(1,1),(0,3);
CREATE TEMP TABLE out AS SELECT DISTINCT a+b FROM t5;
CREATE TABLE t6a(x INTEGER PRIMARY KEY);
INSERT INTO t6a VALUES(1);
CREATE TABLE t6b(y INTEGER PRIMARY KEY);
INSERT INTO t6b VALUES(2),(3);
SELECT DISTINCT x, x FROM t6a, t6b;
SELECT * FROM out ORDER BY 1;
CREATE INDEX IF NOT EXISTS idx_t5_5638 ON t5((b + 1)) WHERE NOT NOT (b > 0) ;
DROP TABLE IF EXISTS t6b;
SELECT * FROM t6a WHERE EXISTS (SELECT 1 FROM t6a WHERE 1 = 0);
ALTER TABLE t5 RENAME COLUMN b TO b_r7147;
```
## Actual output
```sql
UTF-8
length 1000000000
sql_length 1000000000
column 2000
expr_depth 1000
compound_select 500
vdbe_op 250000000
function_arg 127
attached 10
like_pattern_length 50000
variable_number 32766
trigger_depth 1000
worker_threads 0
4
1
2
1|1
0
1
2
3
```
## Expectation
```sql
UTF-8
length 1000000000
sql_length 1000000000
column 2000
expr_depth 1000
compound_select 500
vdbe_op 250000000
function_arg 1000
attached 10
like_pattern_length 50000
variable_number 32766
trigger_depth 1000
worker_threads 0
4
1
2
1|1
0
1
2
3
```
## Flag
```
```
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,43 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
.once log.txt
CREATE TABLE T (
a INTEGER,
b TEXT,
c REAL
);
INSERT INTO T VALUES (trim(NULL),'' || ('a'),jsonb_group_array(max(if(-1, 1, 1), '2', 3))), (1,'b',-7.75), (2,'c',-9e999);
SELECT b,a,c,
RANK() OVER (PARTITION BY a ORDER BY c DESC) AS d FROM T;
SELECT * FROM T WHERE NOT EXISTS (SELECT 1 FROM T WHERE 1 = 1);
WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM T WHERE b IN (SELECT x FROM cte);
ALTER TABLE T DROP COLUMN b;
PRAGMA vdbe_listing = OFF;
VACUUM main;
SELECT * FROM T;
INSERT INTO T DEFAULT VALUES;
WITH cte(a, b, c) AS (SELECT c, c, c FROM T) SELECT a, b, c FROM cte;
```
## Actual output
```sql
||
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,163 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
ATTACH DATABASE ':memory:' AS aux68;
.echo on
.limit COLUMN -tanh(radians(1))
.eqp full
BEGIN DEFERRED;
.quit
SAVEPOINT sp5631;
.exit if(-char(-(-(if(-json_pretty(datetime(if(date(1, 'start of month'), 1, 0, 1), '+1 day'), ' '), 1114111, 1114111)))), 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 0, 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 1, 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
CREATE TABLE main.T (
a CHARINT,
b TEXT,
c REAL
);
INSERT INTO T VALUES ('a','b',like('*1.5', -(-(unixepoch(-floor(like('', 999057770073034970))))))), ('a','c',-2.25), ('b','b',4.75);
SELECT a,
SUM(CASE WHEN b!='b' THEN c ELSE 0 END) AS d,
SUM(CASE WHEN b='c' THEN c ELSE 0 END) AS e
FROM T
GROUP BY a;
INSERT INTO T SELECT * FROM T;
INSERT INTO T VALUES (NULL, NULL, NULL);
INSERT INTO T DEFAULT VALUES;
SELECT * FROM T;
ANALYZE T;
ANALYZE;
SELECT * FROM T;
ALTER TABLE T RENAME COLUMN c TO c_r70;
SELECT * FROM T WHERE a IN (SELECT a FROM T LIMIT 0);
SELECT * FROM T CROSS JOIN T;
DROP INDEX IF EXISTS T;
INSERT INTO T VALUES (1, 'x', NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
CREATE TABLE T1 (
a INTEGER,
b REAL
);
CREATE TABLE T2 (
a INTEGER,
b REAL
);
INSERT INTO T1 VALUES (1,1.0);
INSERT INTO T2 VALUES (1,-1.0),(2,9e999);
INSERT AND REPLACE /**/ INTO T1
WITH _m AS MATERIALIZED (SELECT * FROM T1) SELECT * FROM T2;
SELECT * FROM _m;
ANALYZE T1;
REINDEX;
ALTER TABLE T ADD COLUMN extra_7926 DATETIME DEFAULT '';
ROLLBACK TRANSACTION TO SAVEPOINT sp5631;
RELEASE SAVEPOINT sp5631;
SELECT MIN(b) FROM T1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_3573 ON T1(a) WHERE a > 0;
CREATE TABLE T (
A VARCHAR(20),
B VARCHAR(10),
PRIMARY KEY (A, B)
);
INSERT INTO T VALUES ('a', 'p');
INSERT INTO T VALUES ('a', 'q');
INSERT INTO T VALUES ('b', 'q');
INSERT INTO T VALUES ('c', 'r');
INSERT INTO T VALUES ('b', 'r');
INSERT INTO T VALUES ('b', 't');
SELECT B, COUNT(DISTINCT A) AS D FROM T GROUP BY B ORDER BY D DESC, B ASC;
ALTER TABLE T1 RENAME COLUMN b TO b_r1178;
PRAGMA automatic_index = TRUE;
INSERT INTO T1 VALUES (NULL, NULL);
PRAGMA synchronous = 'OFF';
INSERT INTO T2 VALUES (NULL, NULL);
SELECT COUNT(*) FROM T2;
END TRANSACTION;
CREATE TRIGGER IF NOT EXISTS trg_T2_2403 AFTER UPDATE OF a ON T2 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
WITH RECURSIVE tree(id, parent, depth) AS (VALUES(1, NULL, 0) UNION ALL SELECT id+1, id, depth+1 FROM tree WHERE depth<46) SELECT * FROM tree;
SELECT COUNT(*) FROM T2;
INSERT INTO T1 DEFAULT VALUES;
CREATE TABLE T (
A VARCHAR(20),
B VARCHAR(10),
PRIMARY KEY (A, B)
);
INSERT INTO T VALUES ('a', 'p');
INSERT INTO T VALUES ('a', 'q');
INSERT INTO T VALUES ('b', 'q');
INSERT INTO T VALUES ('c', 'r');
INSERT INTO T VALUES ('b', 'r');
INSERT INTO T VALUES ('b', 't');
SELECT B, COUNT(DISTINCT A) AS D FROM T GROUP BY B ORDER BY D DESC, B ASC;
ALTER TABLE T1 RENAME COLUMN a TO a_r9833;
VACUUM;
SELECT a FROM T1 WHERE a = (SELECT MAX(a) FROM T1);
ANALYZE;
SELECT B, (SELECT SUM(B) FROM T) AS sum_val FROM T;
SELECT * FROM T2;
INSERT INTO T VALUES (NULL, NULL);
SELECT * FROM T1 WHERE b NOT IN (SELECT b FROM T1 WHERE b IS NOT NULL);
INSERT INTO T2 VALUES (NULL, NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
REINDEX T2;
WITH cte AS (SELECT 1 AS x) SELECT x + 0.5 FROM cte;
SELECT SUM(a) FROM T1;
SELECT AVG(B) FROM T;
ALTER TABLE T2 RENAME COLUMN a TO a_r2012;
INSERT INTO T1 SELECT * FROM T1;
CREATE TRIGGER IF NOT EXISTS trg_T2_7416 AFTER DELETE ON T2 FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END;
SELECT a, (SELECT MIN(a) FROM T1) AS min_val FROM T1;
CREATE TRIGGER IF NOT EXISTS trg_T2_3024 BEFORE UPDATE OF b ON T2 BEGIN INSERT INTO T2(b) VALUES (NULL); END;
ANALYZE;
SELECT COUNT(*) FILTER (WHERE a IS NOT NULL), SUM(rowid) FILTER (WHERE a > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(a) FILTER (WHERE a > 0 AND a < 100), COUNT(*) FILTER (WHERE typeof(a) = "text") FROM T2;
DROP TABLE IF EXISTS T2;
CREATE TRIGGER IF NOT EXISTS trg_T_1280 BEFORE UPDATE OF B ON T BEGIN SELECT RAISE(IGNORE); END;
SELECT * FROM T2 WHERE a = (SELECT MAX(a) FROM T2 WHERE a = (SELECT MAX(a) FROM T2));
INSERT INTO T1 VALUES ('x', 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
ALTER TABLE T2 ADD COLUMN extra_4873 CHARACTER(20) DEFAULT CURRENT_TIMESTAMP;
DETACH DATABASE aux68;
ANALYZE T;
ALTER TABLE T ADD COLUMN extra_6814 DATE DEFAULT 0;
PRAGMA recursive_triggers = FALSE;
```
## Actual output
```sql
.limit COLUMN -tanh(radians(1))
column 0
.eqp full
BEGIN DEFERRED;
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 1 0 0 Start at 1
1 AutoCommit 0 0 0 0
2 Halt 0 0 0 0
.quit
```
## Expectation
```sql
.limit COLUMN -tanh(radians(1))
column 0
.eqp full
BEGIN DEFERRED;
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 3 0 0 Start at 3
1 AutoCommit 0 0 0 0
2 Halt 0 0 0 0
3 Goto 0 1 0 0
.quit
```
## Flag
```
-box
```
@@ -0,0 +1,281 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
SAVEPOINT sp8626;
CREATE TABLE t1(a SMALLINT PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (exp(-(-(2147483648))), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
PRAGMA module_list;
PRAGMA automatic_index;
CREATE TABLE t1(c, b, a, PRIMARY KEY(b, a)) WITHOUT ROWID;
INSERT INTO t1 VALUES(--10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 2, 3), (4, 5, 6);
ALTER TABLE t1 DROP c;
CREATE TABLE x1234(a, b, c PRIMARY KEY) WITHOUT ROWID;
CREATE TABLE T (
A VARCHAR(-(-(20))),
B VARCHAR(10),
PRIMARY KEY (A, B)
);
INSERT INTO T VALUES ('a', 'p');
INSERT INTO T VALUES ('a', 'q');
INSERT INTO T VALUES ('b', 'q');
INSERT INTO T VALUES ('c', 'r');
INSERT INTO T VALUES ('b', 'r');
INSERT INTO T VALUES ('b', 't');
SELECT B, COUNT(DISTINCT A) AS D FROM T GROUP BY B ORDER BY D DESC, B ASC;
CREATE INDEX i1 ON x1234(b) WHERE ((a+5) % 10)=0;
ANALYZE x1234;
CREATE TRIGGER IF NOT EXISTS trg_t1_8594 AFTER INSERT ON t1 BEGIN SELECT RAISE(IGNORE); END;
INSERT INTO x1234 VALUES (NULL, NULL, NULL);
DELETE FROM t1 WHERE rowid = 39;
INSERT INTO t1 VALUES ('x', 1, 1) ON CONFLICT(c) DO UPDATE SET c = excluded.c, b = excluded.b, a = excluded.a;
ALTER TABLE t1 RENAME COLUMN c TO c_r2993;
INSERT OR REPLACE INTO t1 VALUES (NULL, NULL, '');
ALTER TABLE T RENAME TO T_r3030;
ALTER TABLE T DROP COLUMN A;
CREATE TRIGGER IF NOT EXISTS trg_t1_9080 BEFORE UPDATE OF a ON t1 FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END;
SELECT * FROM T;
WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM T WHERE A IN (SELECT x FROM cte);
SELECT * FROM t1 LEFT OUTER JOIN x1234;
CREATE TABLE T1 (
A VARCHAR(20),
X VARCHAR(10),
PRIMARY KEY (A, X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10),
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 EXCEPT SELECT A FROM T2;
SELECT * FROM t1 t1 JOIN (SELECT * FROM t1) AS sub ON t1.a = sub.a;
ANALYZE T1;
INSERT INTO T SELECT * FROM T;
ROLLBACK TRANSACTION TO SAVEPOINT sp8626;
RELEASE SAVEPOINT sp8626;
SELECT RANK() OVER (PARTITION BY A ORDER BY A RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM T1;
CREATE TABLE T (
a INTEGER,
b REAL,
c REAL
);
INSERT INTO T VALUES (1,1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
SELECT * FROM T WHERE b < 2.0 ORDER BY b;
DELETE FROM T WHERE b IS NULL RETURNING *;
DROP TRIGGER IF EXISTS x1234;
SAVEPOINT sp8626;
CREATE TABLE t1(a SMALLINT PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (exp(-(-(2147483648))), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
PRAGMA module_list;
PRAGMA automatic_index;
CREATE TABLE t1(c, b, a, PRIMARY KEY(b, a)) WITHOUT ROWID;
INSERT INTO t1 VALUES(--10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 2, 3), (4, 5, 6);
ALTER TABLE t1 DROP c;
CREATE TABLE x1234(a, b, c PRIMARY KEY) WITHOUT ROWID;
CREATE TABLE T (
A VARCHAR(-(-(20))),
B VARCHAR(10),
PRIMARY KEY (A, B)
);
INSERT INTO T VALUES ('a', 'p');
INSERT INTO T VALUES ('a', 'q');
INSERT INTO T VALUES ('b', 'q');
INSERT INTO T VALUES ('c', 'r');
INSERT INTO T VALUES ('b', 'r');
INSERT INTO T VALUES ('b', 't');
SELECT B, COUNT(DISTINCT A) AS D FROM T GROUP BY B ORDER BY D DESC, B ASC;
CREATE INDEX i1 ON x1234(b) WHERE ((a+5) % 10)=0;
ANALYZE x1234;
CREATE TRIGGER IF NOT EXISTS trg_t1_8594 AFTER INSERT ON t1 BEGIN SELECT RAISE(IGNORE); END;
INSERT INTO x1234 VALUES (NULL, NULL, NULL);
DELETE FROM t1 WHERE rowid = 39;
INSERT INTO t1 VALUES ('x', 1, 1) ON CONFLICT(c) DO UPDATE SET c = excluded.c, b = excluded.b, a = excluded.a;
ALTER TABLE t1 RENAME COLUMN c TO c_r2993;
INSERT OR REPLACE INTO t1 VALUES (NULL, NULL, '');
ALTER TABLE T RENAME TO T_r3030;
ALTER TABLE T DROP COLUMN A;
CREATE TRIGGER IF NOT EXISTS trg_t1_9080 BEFORE UPDATE OF a ON t1 FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END;
SELECT * FROM T;
WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM T WHERE A IN (SELECT x FROM cte);
SELECT * FROM t1 LEFT OUTER JOIN x1234;
CREATE TABLE T1 (
A VARCHAR(20),
X VARCHAR(10),
PRIMARY KEY (A, X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10),
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 EXCEPT SELECT A FROM T2;
SELECT * FROM t1 t1 JOIN (SELECT * FROM t1) AS sub ON t1.a = sub.a;
ANALYZE T1;
INSERT INTO T SELECT * FROM T;
ROLLBACK TRANSACTION TO SAVEPOINT sp8626;
RELEASE SAVEPOINT sp8626;
SELECT RANK() OVER (PARTITION BY A ORDER BY A RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM T1;
CREATE TABLE T (
a INTEGER,
b REAL,
c REAL
);
INSERT INTO T VALUES (1,1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
SELECT * FROM T WHERE b < 2.0 ORDER BY b;
DELETE FROM T WHERE b IS NULL RETURNING *;
DROP TRIGGER IF EXISTS x1234;
SAVEPOINT sp8626;
CREATE TABLE t1(a SMALLINT PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (exp(-(-(2147483648))), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
PRAGMA module_list;
PRAGMA automatic_index;
CREATE TABLE t1(c, b, a, PRIMARY KEY(b, a)) WITHOUT ROWID;
INSERT INTO t1 VALUES(--10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 2, 3), (4, 5, 6);
ALTER TABLE t1 DROP c;
CREATE TABLE x1234(a, b, c PRIMARY KEY) WITHOUT ROWID;
CREATE TABLE T (
A VARCHAR(-(-(20))),
B VARCHAR(10),
PRIMARY KEY (A, B)
);
INSERT INTO T VALUES ('a', 'p');
INSERT INTO T VALUES ('a', 'q');
INSERT INTO T VALUES ('b', 'q');
INSERT INTO T VALUES ('c', 'r');
INSERT INTO T VALUES ('b', 'r');
INSERT INTO T VALUES ('b', 't');
SELECT B, COUNT(DISTINCT A) AS D FROM T GROUP BY B ORDER BY D DESC, B ASC;
CREATE INDEX i1 ON x1234(b) WHERE ((a+5) % 10)=0;
ANALYZE x1234;
CREATE TRIGGER IF NOT EXISTS trg_t1_8594 AFTER INSERT ON t1 BEGIN SELECT RAISE(IGNORE); END;
INSERT INTO x1234 VALUES (NULL, NULL, NULL);
DELETE FROM t1 WHERE rowid = 39;
INSERT INTO t1 VALUES ('x', 1, 1) ON CONFLICT(c) DO UPDATE SET c = excluded.c, b = excluded.b, a = excluded.a;
ALTER TABLE t1 RENAME COLUMN c TO c_r2993;
INSERT OR REPLACE INTO t1 VALUES (NULL, NULL, '');
ALTER TABLE T RENAME TO T_r3030;
ALTER TABLE T DROP COLUMN A;
CREATE TRIGGER IF NOT EXISTS trg_t1_9080 BEFORE UPDATE OF a ON t1 FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END;
SELECT * FROM T;
WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM T WHERE A IN (SELECT x FROM cte);
SELECT * FROM t1 LEFT OUTER JOIN x1234;
CREATE TABLE T1 (
A VARCHAR(20),
X VARCHAR(10),
PRIMARY KEY (A, X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10),
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 EXCEPT SELECT A FROM T2;
SELECT * FROM t1 t1 JOIN (SELECT * FROM t1) AS sub ON t1.a = sub.a;
ANALYZE T1;
INSERT INTO T SELECT * FROM T;
ROLLBACK TRANSACTION TO SAVEPOINT sp8626;
RELEASE SAVEPOINT sp8626;
SELECT RANK() OVER (PARTITION BY A ORDER BY A RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM T1;
CREATE TABLE T (
a INTEGER,
b REAL,
c REAL
);
INSERT INTO T VALUES (1,1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
SELECT * FROM T WHERE b < 2.0 ORDER BY b;
DELETE FROM T WHERE b IS NULL RETURNING *;
DROP TRIGGER IF EXISTS x1234;
INSERT INTO T SELECT * FROM T;
```
## Actual output
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
Braun|30|3
Wernher|10|1
von|20|2
Braun|30
Wernher|10
von|20
```
## Expectation
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
Braun|30|3
Wernher|10|1
von|20|2
Braun|30
Wernher|10
von|20
```
## Flag
```
```
@@ -0,0 +1,88 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
PRAGMA checkpoint_fullsync;
PRAGMA case_sensitive_like = 1;
PRAGMA collation_list;
.scanstats est
CREATE TABLE t51(x, y);
CREATE TABLE t52(x, y);
CREATE VIEW v5 as SELECT x, y FROM t51 UNION ALL SELECT x, y FROM t52;
CREATE INDEX t51x ON t51(x);
CREATE INDEX t52x ON t52(x);
SELECT * FROM v5 WHERE x='12345' ORDER BY y;
SELECT x, y FROM v5 WHERE x='12345' ORDER BY y;
SELECT x, y FROM v5 WHERE +x='12345' ORDER BY y;
CREATE VIEW IF NOT EXISTS v_t51_8940 AS SELECT x FROM t51;
SELECT FIRST_VALUE(y) OVER (PARTITION BY y ORDER BY y GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t51;
WITH RECURSIVE fib(a,b) AS (VALUES(1,1) UNION ALL SELECT b, a+b FROM fib WHERE b<1000) SELECT a FROM fib;
DELETE FROM t51 WHERE 0;
INSERT INTO t51 DEFAULT VALUES;
UPDATE t52 SET y = 'x' WHERE y IS NOT NULL;
SELECT * FROM t52 AS a RIGHT JOIN t52 AS b ON a.rowid = b.rowid;
PRAGMA table_list("users");
PRAGMA count_changes = NO;
```
## Actual output
```sql
0|decimal
1|uint
2|RTRIM
3|NOCASE
4|BINARY
1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
```
## Expectation
```sql
0|decimal
1|BINARY
2|NOCASE
3|RTRIM
4|uint
1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
```
## Flag
```
```
@@ -0,0 +1,246 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
PRAGMA wal_checkpoint('RESTART');
.progress
CREATE TABLE "t1"(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (-1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
((ATTACH)) DATABASE ':memory:' AS aux0;
CREATE TABLE t1(a int);
ALTER TABLE t1 ADD COLUMN b INTEGER DEFAULT NULL;
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT 'default-text';
ALTER TABLE t1 RENAME TO t2;
ALTER TABLE t2 ADD COLUMN d BLOB DEFAULT X'ABCD';
DETACH DATABASE aux0;
SELECT STRING_AGG(a, '|') FROM t1;
INSERT INTO t1 VALUES (NULL);
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
DROP TRIGGER IF EXISTS t1;
CREATE INDEX IF NOT EXISTS idx_t1_3560 ON t1((c + 1)) WHERE c IS NOT NULL;
SELECT * FROM (SELECT * FROM t1) AS sub;
SELECT * FROM t1;
ALTER TABLE t1 ADD COLUMN extra_4679 SMALLINT DEFAULT (random());
INSERT INTO t1 DEFAULT VALUES;
SELECT GROUP_CONCAT(c, '|') FROM t1;
PRAGMA wal_checkpoint('RESTART');
.progress
CREATE TABLE "t1"(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (-1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
((ATTACH)) DATABASE ':memory:' AS aux0;
CREATE TABLE t1(a int);
ALTER TABLE t1 ADD COLUMN b INTEGER DEFAULT NULL;
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT 'default-text';
ALTER TABLE t1 RENAME TO t2;
ALTER TABLE t2 ADD COLUMN d BLOB DEFAULT X'ABCD';
DETACH DATABASE aux0;
SELECT STRING_AGG(a, '|') FROM t1;
INSERT INTO t1 VALUES (NULL);
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
DROP TRIGGER IF EXISTS t1;
CREATE INDEX IF NOT EXISTS idx_t1_3560 ON t1((c + 1)) WHERE c IS NOT NULL;
SELECT * FROM (SELECT * FROM t1) AS sub;
SELECT * FROM t1;
ALTER TABLE t1 ADD COLUMN extra_4679 SMALLINT DEFAULT (random());
INSERT INTO t1 DEFAULT VALUES;
SELECT GROUP_CONCAT(c, '|') FROM t1;
PRAGMA wal_checkpoint('RESTART');
.progress
CREATE TABLE "t1"(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (-1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
((ATTACH)) DATABASE ':memory:' AS aux0;
CREATE TABLE t1(a int);
ALTER TABLE t1 ADD COLUMN b INTEGER DEFAULT NULL;
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT 'default-text';
ALTER TABLE t1 RENAME TO t2;
ALTER TABLE t2 ADD COLUMN d BLOB DEFAULT X'ABCD';
DETACH DATABASE aux0;
SELECT STRING_AGG(a, '|') FROM t1;
INSERT INTO t1 VALUES (NULL);
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
DROP TRIGGER IF EXISTS t1;
CREATE INDEX IF NOT EXISTS idx_t1_3560 ON t1((c + 1)) WHERE c IS NOT NULL;
SELECT * FROM (SELECT * FROM t1) AS sub;
SELECT * FROM t1;
ALTER TABLE t1 ADD COLUMN extra_4679 SMALLINT DEFAULT (random());
INSERT INTO t1 DEFAULT VALUES;
SELECT GROUP_CONCAT(c, '|') FROM t1;
PRAGMA wal_checkpoint('RESTART');
.progress
CREATE TABLE "t1"(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (-1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
((ATTACH)) DATABASE ':memory:' AS aux0;
CREATE TABLE t1(a int);
ALTER TABLE t1 ADD COLUMN b INTEGER DEFAULT NULL;
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT 'default-text';
ALTER TABLE t1 RENAME TO t2;
ALTER TABLE t2 ADD COLUMN d BLOB DEFAULT X'ABCD';
DETACH DATABASE aux0;
SELECT STRING_AGG(a, '|') FROM t1;
INSERT INTO t1 VALUES (NULL);
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
DROP TRIGGER IF EXISTS t1;
CREATE INDEX IF NOT EXISTS idx_t1_3560 ON t1((c + 1)) WHERE c IS NOT NULL;
SELECT * FROM (SELECT * FROM t1) AS sub;
SELECT * FROM t1;
ALTER TABLE t1 ADD COLUMN extra_4679 SMALLINT DEFAULT (random());
INSERT INTO t1 DEFAULT VALUES;
SELECT GROUP_CONCAT(c, '|') FROM t1;
```
## Actual output
```sql
0,-1,-1
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
'Braun',30,3
'Wernher',10,-1
'von',20,2
'Braun',30
'Wernher',10
'von',20
```
## Expectation
```sql
0,-1,-1
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
'Braun',30,3
'Wernher',10,-1
'von',20,2
'Braun',30
'Wernher',10
'von',20
```
## Flag
```
-quote
```
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,354 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
.stats stmt
SAVEPOINT sp4970;
.scanstats on
DROP TABLE IF EXISTS t0;
CREATE TABLE t0(c0 REAL UNIQUE);
INSERT INTO t0(c0) VALUES (0.0);
SELECT 3175546974276630385 < c0 FROM t0;
SELECT 1 FROM t0 WHERE NOT NOT /**/ (3175546974276630385 < c0) ;
ALTER TABLE t0 ADD COLUMN extra_80 DOUBLE COLLATE NOCASE;
ANALYZE t0;
REINDEX t0;
SELECT STRING_AGG(c0, '|') FROM t0;
RELEASE sp4970;
```
## Actual output
```sql
Number of output columns: 0
Memory Used: 62608 (max 62608) bytes
Number of Outstanding Allocations: 122 (max 122)
Number of Pcache Overflow Bytes: 4104 (max 4104) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4104 bytes
Lookaside Slots Used: 37 (max 37)
Successful lookaside attempts: 37
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 4904 bytes
Page cache hits: 0
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Schema Heap Usage: 0 bytes
Statement Heap/Lookaside Usage: 2656 bytes
Fullscan Steps: 0
Sort Operations: 0
Autoindex Inserts: 0
Virtual Machine Steps: 3
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 2656
Bytes received by read(): 6688
Bytes sent to write(): 0
Read() system calls: 13
Write() system calls: 0
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
Number of output columns: 0
Memory Used: 67720 (max 67720) bytes
Number of Outstanding Allocations: 141 (max 141)
Number of Pcache Overflow Bytes: 8464 (max 8464) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4360 bytes
Lookaside Slots Used: 37 (max 75)
Successful lookaside attempts: 92
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 9248 bytes
Page cache hits: 1
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Schema Heap Usage: 736 bytes
Statement Heap/Lookaside Usage: 2656 bytes
Fullscan Steps: 0
Sort Operations: 0
Autoindex Inserts: 0
Virtual Machine Steps: 5
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 2656
Bytes received by read(): 6782
Bytes sent to write(): 1373
Read() system calls: 15
Write() system calls: 2
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
Number of output columns: 0
Memory Used: 86640 (max 92528) bytes
Number of Outstanding Allocations: 172 (max 181)
Number of Pcache Overflow Bytes: 21288 (max 21288) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4360 bytes
Lookaside Slots Used: 33 (max 91)
Successful lookaside attempts: 169
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 17936 bytes
Page cache hits: 4
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Schema Heap Usage: 1168 bytes
Statement Heap/Lookaside Usage: 4040 bytes
Fullscan Steps: 0
Sort Operations: 0
Autoindex Inserts: 0
Virtual Machine Steps: 41
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 4040
Bytes received by read(): 7135
Bytes sent to write(): 2702
Read() system calls: 18
Write() system calls: 3
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
Number of output columns: 0
Memory Used: 82624 (max 92528) bytes
Number of Outstanding Allocations: 156 (max 181)
Number of Pcache Overflow Bytes: 21288 (max 21288) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4360 bytes
Lookaside Slots Used: 47 (max 91)
Successful lookaside attempts: 197
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 17936 bytes
Page cache hits: 2
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Schema Heap Usage: 1192 bytes
Statement Heap/Lookaside Usage: 3808 bytes
Fullscan Steps: 0
Sort Operations: 0
Autoindex Inserts: 0
Virtual Machine Steps: 17
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 3808
Bytes received by read(): 7232
Bytes sent to write(): 4037
Read() system calls: 20
Write() system calls: 4
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
0
Number of output columns: 1
Column 0 name: 3175546974276630385 < c0
Column 0 declared type: (null)
Memory Used: 82624 (max 92528) bytes
Number of Outstanding Allocations: 156 (max 181)
Number of Pcache Overflow Bytes: 21288 (max 21288) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4360 bytes
Lookaside Slots Used: 42 (max 91)
Successful lookaside attempts: 222
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 17936 bytes
Page cache hits: 1
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Schema Heap Usage: 1192 bytes
Statement Heap/Lookaside Usage: 3296 bytes
Fullscan Steps: 0
Sort Operations: 0
Autoindex Inserts: 0
Virtual Machine Steps: 14
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 3296
Bytes received by read(): 7329
Bytes sent to write(): 5372
Read() system calls: 22
Write() system calls: 5
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
Number of output columns: 1
Column 0 name: 1
Column 0 declared type: (null)
Memory Used: 82624 (max 92528) bytes
Number of Outstanding Allocations: 156 (max 181)
Number of Pcache Overflow Bytes: 21288 (max 21288) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4360 bytes
Lookaside Slots Used: 42 (max 91)
Successful lookaside attempts: 249
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 17936 bytes
Page cache hits: 1
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Schema Heap Usage: 1192 bytes
Statement Heap/Lookaside Usage: 3296 bytes
Fullscan Steps: 0
Sort Operations: 0
Autoindex Inserts: 0
Virtual Machine Steps: 11
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 3296
Bytes received by read(): 7426
Bytes sent to write(): 6815
Read() system calls: 24
Write() system calls: 6
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
Number of output columns: 0
Memory Used: 87144 (max 191632) bytes
Number of Outstanding Allocations: 181 (max 220)
Number of Pcache Overflow Bytes: 21288 (max 29496) bytes
Largest Allocation: 87200 bytes
Largest Pcache Allocation: 4360 bytes
Lookaside Slots Used: 33 (max 91)
Successful lookaside attempts: 320
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 17936 bytes
Page cache hits: 3
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Schema Heap Usage: 1184 bytes
Statement Heap/Lookaside Usage: 4528 bytes
Fullscan Steps: 1
Sort Operations: 0
Autoindex Inserts: 0
Virtual Machine Steps: 51
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 4528
Bytes received by read(): 7523
Bytes sent to write(): 8233
Read() system calls: 26
Write() system calls: 7
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
Number of output columns: 0
Memory Used: 92096 (max 191632) bytes
Number of Outstanding Allocations: 188 (max 220)
Number of Pcache Overflow Bytes: 25648 (max 29496) bytes
Largest Allocation: 87200 bytes
Largest Pcache Allocation: 4360 bytes
Lookaside Slots Used: 34 (max 92)
Successful lookaside attempts: 437
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 22280 bytes
Page cache hits: 6
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Schema Heap Usage: 1496 bytes
Statement Heap/Lookaside Usage: 5944 bytes
Fullscan Steps: 0
Sort Operations: 0
Autoindex Inserts: 0
Virtual Machine Steps: 50
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 5944
Bytes received by read(): 7620
Bytes sent to write(): 9569
Read() system calls: 28
Write() system calls: 8
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
Number of output columns: 0
Memory Used: 87296 (max 191632) bytes
Number of Outstanding Allocations: 164 (max 220)
Number of Pcache Overflow Bytes: 25648 (max 29496) bytes
Largest Allocation: 87200 bytes
Largest Pcache Allocation: 4360 bytes
Lookaside Slots Used: 42 (max 92)
Successful lookaside attempts: 453
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 22280 bytes
Page cache hits: 3
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Schema Heap Usage: 1496 bytes
Statement Heap/Lookaside Usage: 3168 bytes
Fullscan Steps: 0
Sort Operations: 1
Autoindex Inserts: 0
Virtual Machine Steps: 24
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 3168
Bytes received by read(): 7717
Bytes sent to write(): 10905
Read() system calls: 30
Write() system calls: 9
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
Number of output columns: 0
Memory Used: 85688 (max 191632) bytes
Number of Outstanding Allocations: 161 (max 220)
Number of Pcache Overflow Bytes: 25648 (max 29496) bytes
Largest Allocation: 87200 bytes
Largest Pcache Allocation: 4360 bytes
Lookaside Slots Used: 38 (max 92)
Successful lookaside attempts: 472
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 22280 bytes
Page cache hits: 0
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Schema Heap Usage: 1496 bytes
Statement Heap/Lookaside Usage: 2656 bytes
Fullscan Steps: 0
Sort Operations: 0
Autoindex Inserts: 0
Virtual Machine Steps: 2
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 2656
Bytes received by read(): 7815
Bytes sent to write(): 12360
Read() system calls: 33
Write() system calls: 11
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,84 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
.stats vmstep
CREATE TABLE main.T (
a INTEGER,
b REAL,
c REAL
);
INSERT INTO T VALUES (pi(),1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
SELECT * FROM T WHERE b IS 2.0 ORDER BY b;
CREATE TRIGGER IF NOT EXISTS trg_T_3707 AFTER UPDATE OF c ON T BEGIN INSERT INTO T(c) VALUES (NULL); END;
INSERT INTO T SELECT * FROM T;
SELECT COUNT(c) FILTER (WHERE c IS NOT NULL) OVER (ORDER BY c RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM T;
VACUUM main;
SELECT PERCENT_RANK() OVER (PARTITION BY a ORDER BY a) FROM T;
DELETE FROM T WHERE c > (SELECT AVG(c) FROM T) RETURNING *;
```
## Actual output
```sql
VM-steps: 30
VM-steps: 37
VM-steps: 20
VM-steps: 15
VM-steps: 70
6
6
4
4
2
2
VM-steps: 524
VM-steps: 3
0.0
0.0
0.0
0.0
0.0
0.0
VM-steps: 274
3|-Inf|30.0
3|-Inf|30.0
VM-steps: 132
```
## Expectation
```sql
VM-steps: 30
VM-steps: 37
VM-steps: 20
VM-steps: 15
VM-steps: 70
6
6
4
4
2
2
VM-steps: 524
VM-steps: 4
0.0
0.0
0.0
0.0
0.0
0.0
VM-steps: 274
3|-Inf|30.0
3|-Inf|30.0
VM-steps: 142
```
## Flag
```
```
@@ -0,0 +1,89 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
BEGIN DEFERRED TRANSACTION;
SAVEPOINT sp8273;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (log2(NULL), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
BEGIN EXCLUSIVE TRANSACTION;
SAVEPOINT sp3516;
ATTACH DATABASE (':memory:' || '') AS aux52;
CREATE TABLE t1(x INTEGER PRIMARY KEY, y, z);
CREATE TABLE t2(a, b);
CREATE VIEW agg2 AS SELECT a, sum(b) AS m FROM t2 GROUP BY a;
SELECT t1.z, agg2.m FROM t1 LEFT JOIN agg2 ON t1.y=agg2.m WHERE t1.x IN (concat(1, NULL, 1),2,3);
CREATE TABLE t920(x);
INSERT INTO t920 VALUES(3),(4),(5);
SELECT * FROM t920,(SELECT 0 FROM t920),(VALUES(9)) WHERE 5 IN (x);
CREATE INDEX IF NOT EXISTS idx_t1_9737 ON t1(x COLLATE NOCASE);
DETACH DATABASE aux52;
REINDEX;
WITH cte AS (SELECT x, ROW_NUMBER() OVER (ORDER BY x) AS rn FROM t920) SELECT * FROM cte WHERE rn <= 5;
DELETE FROM t920 WHERE 1;
SELECT * FROM t2 AS a LEFT JOIN t2 AS b ON a.rowid = b.rowid;
ALTER TABLE t2 ADD COLUMN extra_9493 ANY DEFAULT 0;
ROLLBACK TRANSACTION TO SAVEPOINT sp3516;
RELEASE SAVEPOINT sp3516;
END;
DELETE FROM t920 WHERE 1;
SELECT SUM(x) FROM t920;
SELECT AVG(x) FROM t920;
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;
ROLLBACK TO sp8273;
RELEASE sp8273;
ROLLBACK;
INSERT AND FAIL INTO t2 VALUES (8, '');
SELECT STRING_AGG(x, '|') FROM t920;
SELECT LAST_VALUE(a) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2;
```
## Actual output
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
Braun|30|3
Wernher|10|1
von|20|2
Braun|30
Wernher|10
von|20
```
## Expectation
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
Braun|30|3
Wernher|10|1
von|20|2
Braun|30
Wernher|10
von|20
```
## Flag
```
```
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,999 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
.trace
CREATE TABLE T (
a INTEGER,
b TEXT,
c REAL
);
INSERT INTO T VALUES (CAST(CAST(CAST(1 AS INT2) AS INT2) AS FLOA),'a',1.25), (2,'b',-3.5), (3,'c',9e999);
WITH d AS (SELECT * FROM T) SELECT * FROM d WHERE c > 0;
BEGIN;
PRAGMA vdbe_addoptrace = TRUE;
ATTACH DATABASE ':memory:' AS aux61;
-- PRAGMA automatic_index = 0;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (jsonb_extract(json_remove(cosh(ifnull(glob('**[0-9]+>)!<(K!@AD++****)))', CAST(CAST(-(-(1)) AS UNSIGNED BIG INT) AS INT)), 2)), '$.key'), '$.key'), ('Wernher' || ''), 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
BEGIN DEFERRED;
SELECT 0x0ACB29BM205381;
SELECT sqlite_compileoption_used('我的天你是怎么了');
CREATE TABLE T (
a INTEGER,
b REAL,
c REAL
);
INSERT INTO T VALUES (1,2.0,10.5), (1,-3.5,20.25), (2,9e999,-1.0);
WITH d AS (SELECT a,SUM(b*c) AS e FROM T GROUP BY a) SELECT * FROM d;
SELECT 1 >> -999999999999999999999999999;
SELECT sqlite_compileoption_get($1);
SELECT sqlite_version();
.version
ATTACH DATABASE ':memory:' AS aux56;
CREATE TABLE `T` (
a CLOB,
b REAL,
c REAL
);
INSERT INTO T VALUES ((likelihood(x'f6b69ceac2e03792bbc0fe1eae45', 0.0) -> '$[0]' * 1),1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
SELECT * FROM T WHERE b < 2.0 ORDER BY b;
INSERT INTO T SELECT * FROM T;
DETACH DATABASE aux56;
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_4076 AS SELECT c FROM T;
CREATE TABLE T1 (
a INTEGER,
b TEXT
);
CREATE TABLE T2 (
a INTEGER,
b TEXT
);
INSERT INTO T1 VALUES (1,'a'),(2,'b');
INSERT INTO T2 VALUES (1,'c'),(1,'d');
SELECT T1.b,
(
SELECT GROUP_CONCAT(b,',')
FROM T2
WHERE T2.a=T1.a
) AS c
FROM T1;
INSERT INTO T1 VALUES (NULL, NULL);
ANALYZE;
SELECT LAG(a, 2, a) OVER (ORDER BY a RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T;
WITH a AS (SELECT * FROM T WHERE b IS NOT NULL), b AS (SELECT * FROM a WHERE b > 0), c AS (SELECT * FROM b LIMIT 10) SELECT * FROM c;
ANALYZE T;
DELETE FROM T2 WHERE 0;
END TRANSACTION;
INSERT INTO T DEFAULT VALUES;
SELECT LEAD(b, 0) OVER (ORDER BY b RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T2;
INSERT INTO T1 SELECT * FROM T1;
SELECT MIN(a) FROM T2;
SELECT 0x0ACB29BM205381;
SELECT sqlite_compileoption_used('我的天你是怎么了');
SELECT 1 >> -999999999999999999999999999;
SELECT sqlite_compileoption_get($1);
SELECT sqlite_version();
SELECT COUNT(*) FROM T1;
SELECT TOTAL(b) OVER (PARTITION BY b ORDER BY b) FROM t1;
DETACH DATABASE aux61;
ANALYZE T1;
WITH cte AS (SELECT a, COUNT(*) AS cnt FROM T1 GROUP BY a) SELECT * FROM cte;
UPDATE T2 SET b = 'x' RETURNING *;
INSERT INTO T DEFAULT VALUES;
SELECT MAX(b) FROM T1;
SELECT GROUP_CONCAT(b, '|') FROM t1;
INSERT INTO T1 SELECT * FROM T1;
ROLLBACK;
INSERT INTO T2 VALUES (NULL, NULL);
DROP INDEX IF EXISTS T1;
ALTER TABLE t1 DROP COLUMN b;
ALTER TABLE T1 DROP COLUMN a;
ALTER TABLE t1 DROP COLUMN a;
CREATE TABLE T (
a INTEGER,
b TEXT,
c REAL
);
INSERT INTO T VALUES (CAST(CAST(1 AS INT2) AS FLOA),'a',1.25), (2,'b',-3.5), (3,'c',9e999);
WITH d AS (SELECT * FROM T) SELECT * FROM d WHERE c > 0;
BEGIN;
PRAGMA vdbe_addoptrace = TRUE;
ATTACH DATABASE ':memory:' AS aux61;
-- PRAGMA automatic_index = 0;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (jsonb_extract(json_remove(cosh(ifnull(glob('**[0-9]+>)!<(K!@AD++****)))', CAST(CAST(-(-(1)) AS UNSIGNED BIG INT) AS INT)), 2)), '$.key'), '$.key'), ('Wernher' || ''), 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
BEGIN DEFERRED;
SELECT 0x0ACB29BM205381;
SELECT sqlite_compileoption_used('我的天你是怎么了');
CREATE TABLE T (
a INTEGER,
b REAL,
c REAL
);
INSERT INTO T VALUES (1,2.0,10.5), (1,-3.5,20.25), (2,9e999,-1.0);
WITH d AS (SELECT a,SUM(b*c) AS e FROM T GROUP BY a) SELECT * FROM d;
SELECT 1 >> -999999999999999999999999999;
SELECT sqlite_compileoption_get($1);
SELECT sqlite_version();
.version
ATTACH DATABASE ':memory:' AS aux56;
CREATE TABLE `T` (
a CLOB,
b REAL,
c REAL
);
INSERT INTO T VALUES ((likelihood(x'f6b69ceac2e03792bbc0fe1eae45', 0.0) -> '$[0]' * 1),1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
SELECT * FROM T WHERE b < 2.0 ORDER BY b;
INSERT INTO T SELECT * FROM T;
DETACH DATABASE aux56;
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_4076 AS SELECT c FROM T;
CREATE TABLE T1 (
a INTEGER,
b TEXT
);
CREATE TABLE T2 (
a INTEGER,
b TEXT
);
INSERT INTO T1 VALUES (1,'a'),(2,'b');
INSERT INTO T2 VALUES (1,'c'),(1,'d');
SELECT T1.b,
(
SELECT GROUP_CONCAT(b,',')
FROM T2
WHERE T2.a=T1.a
) AS c
FROM T1;
INSERT INTO T1 VALUES (NULL, NULL);
ANALYZE;
SELECT LAG(a, 2, a) OVER (ORDER BY a RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T;
WITH a AS (SELECT * FROM T WHERE b IS NOT NULL), b AS (SELECT * FROM a WHERE b > 0), c AS (SELECT * FROM b LIMIT 10) SELECT * FROM c;
ANALYZE T;
DELETE FROM T2 WHERE 0;
END TRANSACTION;
INSERT INTO T DEFAULT VALUES;
SELECT LEAD(b, 0) OVER (ORDER BY b RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T2;
INSERT INTO T1 SELECT * FROM T1;
SELECT MIN(a) FROM T2;
SELECT 0x0ACB29BM205381;
SELECT sqlite_compileoption_used('我的天你是怎么了');
SELECT 1 >> -999999999999999999999999999;
SELECT sqlite_compileoption_get($1);
SELECT sqlite_version();
SELECT COUNT(*) FROM T1;
SELECT TOTAL(b) OVER (PARTITION BY b ORDER BY b) FROM t1;
DETACH DATABASE aux61;
ANALYZE T1;
WITH cte AS (SELECT a, COUNT(*) AS cnt FROM T1 GROUP BY a) SELECT * FROM cte;
UPDATE T2 SET b = 'x' RETURNING *;
INSERT INTO T DEFAULT VALUES;
SELECT MAX(b) FROM T1;
SELECT GROUP_CONCAT(b, '|') FROM t1;
INSERT INTO T1 SELECT * FROM T1;
ROLLBACK;
INSERT INTO T2 VALUES (NULL, NULL);
DROP INDEX IF EXISTS T1;
ALTER TABLE t1 DROP COLUMN b;
ALTER TABLE T1 DROP COLUMN a;
ALTER TABLE t1 DROP COLUMN a;
CREATE TABLE T (
a INTEGER,
b TEXT,
c REAL
);
INSERT INTO T VALUES (CAST(CAST(1 AS INT2) AS FLOA),'a',1.25), (2,'b',-3.5), (3,'c',9e999);
WITH d AS (SELECT * FROM T) SELECT * FROM d WHERE c > 0;
BEGIN;
PRAGMA vdbe_addoptrace = TRUE;
ATTACH DATABASE ':memory:' AS aux61;
-- PRAGMA automatic_index = 0;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (jsonb_extract(json_remove(cosh(ifnull(glob('**[0-9]+>)!<(K!@AD++****)))', CAST(CAST(-(-(1)) AS UNSIGNED BIG INT) AS INT)), 2)), '$.key'), '$.key'), ('Wernher' || ''), 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
BEGIN DEFERRED;
SELECT 0x0ACB29BM205381;
SELECT sqlite_compileoption_used('我的天你是怎么了');
CREATE TABLE T (
a INTEGER,
b REAL,
c REAL
);
INSERT INTO T VALUES (1,2.0,10.5), (1,-3.5,20.25), (2,9e999,-1.0);
WITH d AS (SELECT a,SUM(b*c) AS e FROM T GROUP BY a) SELECT * FROM d;
SELECT 1 >> -999999999999999999999999999;
SELECT sqlite_compileoption_get($1);
SELECT sqlite_version();
.version
ATTACH DATABASE ':memory:' AS aux56;
CREATE TABLE `T` (
a CLOB,
b REAL,
c REAL
);
INSERT INTO T VALUES ((likelihood(x'f6b69ceac2e03792bbc0fe1eae45', 0.0) -> '$[0]' * 1),1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
SELECT * FROM T WHERE b < 2.0 ORDER BY b;
INSERT INTO T SELECT * FROM T;
DETACH DATABASE aux56;
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_4076 AS SELECT c FROM T;
CREATE TABLE T1 (
a INTEGER,
b TEXT
);
CREATE TABLE T2 (
a INTEGER,
b TEXT
);
INSERT INTO T1 VALUES (1,'a'),(2,'b');
INSERT INTO T2 VALUES (1,'c'),(1,'d');
SELECT T1.b,
(
SELECT GROUP_CONCAT(b,',')
FROM T2
WHERE T2.a=T1.a
) AS c
FROM T1;
INSERT INTO T1 VALUES (NULL, NULL);
ANALYZE;
SELECT LAG(a, 2, a) OVER (ORDER BY a RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T;
WITH a AS (SELECT * FROM T WHERE b IS NOT NULL), b AS (SELECT * FROM a WHERE b > 0), c AS (SELECT * FROM b LIMIT 10) SELECT * FROM c;
ANALYZE T;
DELETE FROM T2 WHERE 0;
END TRANSACTION;
INSERT INTO T DEFAULT VALUES;
SELECT LEAD(b, 0) OVER (ORDER BY b RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T2;
INSERT INTO T1 SELECT * FROM T1;
SELECT MIN(a) FROM T2;
SELECT 0x0ACB29BM205381;
SELECT sqlite_compileoption_used('我的天你是怎么了');
SELECT 1 >> -999999999999999999999999999;
SELECT sqlite_compileoption_get($1);
SELECT sqlite_version();
SELECT COUNT(*) FROM T1;
SELECT TOTAL(b) OVER (PARTITION BY b ORDER BY b) FROM t1;
DETACH DATABASE aux61;
ANALYZE T1;
WITH cte AS (SELECT a, COUNT(*) AS cnt FROM T1 GROUP BY a) SELECT * FROM cte;
UPDATE T2 SET b = 'x' RETURNING *;
INSERT INTO T DEFAULT VALUES;
SELECT MAX(b) FROM T1;
SELECT GROUP_CONCAT(b, '|') FROM t1;
INSERT INTO T1 SELECT * FROM T1;
ROLLBACK;
INSERT INTO T2 VALUES (NULL, NULL);
DROP INDEX IF EXISTS T1;
ALTER TABLE t1 DROP COLUMN b;
ALTER TABLE T1 DROP COLUMN a;
ALTER TABLE t1 DROP COLUMN a;
CREATE TABLE T (
a INTEGER,
b TEXT,
c REAL
);
INSERT INTO T VALUES (CAST(CAST(1 AS INT2) AS FLOA),'a',1.25), (2,'b',-3.5), (3,'c',9e999);
WITH d AS (SELECT * FROM T) SELECT * FROM d WHERE c > 0;
BEGIN;
PRAGMA vdbe_addoptrace = TRUE;
ATTACH DATABASE ':memory:' AS aux61;
-- PRAGMA automatic_index = 0;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (jsonb_extract(json_remove(cosh(ifnull(glob('**[0-9]+>)!<(K!@AD++****)))', CAST(CAST(-(-(1)) AS UNSIGNED BIG INT) AS INT)), 2)), '$.key'), '$.key'), ('Wernher' || ''), 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
BEGIN DEFERRED;
SELECT 0x0ACB29BM205381;
SELECT sqlite_compileoption_used('我的天你是怎么了');
CREATE TABLE T (
a INTEGER,
b REAL,
c REAL
);
INSERT INTO T VALUES (1,2.0,10.5), (1,-3.5,20.25), (2,9e999,-1.0);
WITH d AS (SELECT a,SUM(b*c) AS e FROM T GROUP BY a) SELECT * FROM d;
SELECT 1 >> -999999999999999999999999999;
SELECT sqlite_compileoption_get($1);
SELECT sqlite_version();
.version
ATTACH DATABASE ':memory:' AS aux56;
CREATE TABLE `T` (
a CLOB,
b REAL,
c REAL
);
INSERT INTO T VALUES ((likelihood(x'f6b69ceac2e03792bbc0fe1eae45', 0.0) -> '$[0]' * 1),1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
SELECT * FROM T WHERE b < 2.0 ORDER BY b;
INSERT INTO T SELECT * FROM T;
DETACH DATABASE aux56;
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_4076 AS SELECT c FROM T;
CREATE TABLE T1 (
a INTEGER,
b TEXT
);
CREATE TABLE T2 (
a INTEGER,
b TEXT
);
INSERT INTO T1 VALUES (1,'a'),(2,'b');
INSERT INTO T2 VALUES (1,'c'),(1,'d');
SELECT T1.b,
(
SELECT GROUP_CONCAT(b,',')
FROM T2
WHERE T2.a=T1.a
) AS c
FROM T1;
INSERT INTO T1 VALUES (NULL, NULL);
ANALYZE;
SELECT LAG(a, 2, a) OVER (ORDER BY a RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T;
WITH a AS (SELECT * FROM T WHERE b IS NOT NULL), b AS (SELECT * FROM a WHERE b > 0), c AS (SELECT * FROM b LIMIT 10) SELECT * FROM c;
ANALYZE T;
DELETE FROM T2 WHERE 0;
END TRANSACTION;
INSERT INTO T DEFAULT VALUES;
SELECT LEAD(b, 0) OVER (ORDER BY b RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T2;
INSERT INTO T1 SELECT * FROM T1;
SELECT MIN(a) FROM T2;
SELECT 0x0ACB29BM205381;
SELECT sqlite_compileoption_used('我的天你是怎么了');
SELECT 1 >> -999999999999999999999999999;
SELECT sqlite_compileoption_get($1);
SELECT sqlite_version();
SELECT COUNT(*) FROM T1;
SELECT TOTAL(b) OVER (PARTITION BY b ORDER BY b) FROM t1;
DETACH DATABASE aux61;
ANALYZE T1;
WITH cte AS (SELECT a, COUNT(*) AS cnt FROM T1 GROUP BY a) SELECT * FROM cte;
UPDATE T2 SET b = 'x' RETURNING *;
INSERT INTO T DEFAULT VALUES;
SELECT MAX(b) FROM T1;
SELECT GROUP_CONCAT(b, '|') FROM t1;
INSERT INTO T1 SELECT * FROM T1;
ROLLBACK;
INSERT INTO T2 VALUES (NULL, NULL);
DROP INDEX IF EXISTS T1;
ALTER TABLE t1 DROP COLUMN b;
ALTER TABLE T1 DROP COLUMN a;
ALTER TABLE t1 DROP COLUMN a;
CREATE TABLE T (
a INTEGER,
b TEXT,
c REAL
);
INSERT INTO T VALUES (CAST(CAST(1 AS INT2) AS FLOA),'a',1.25), (2,'b',-3.5), (3,'c',9e999);
WITH d AS (SELECT * FROM T) SELECT * FROM d WHERE c > 0;
BEGIN;
PRAGMA vdbe_addoptrace = TRUE;
ATTACH DATABASE ':memory:' AS aux61;
-- PRAGMA automatic_index = 0;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (jsonb_extract(json_remove(cosh(ifnull(glob('**[0-9]+>)!<(K!@AD++****)))', CAST(CAST(-(-(1)) AS UNSIGNED BIG INT) AS INT)), 2)), '$.key'), '$.key'), ('Wernher' || ''), 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
BEGIN DEFERRED;
SELECT 0x0ACB29BM205381;
SELECT sqlite_compileoption_used('我的天你是怎么了');
CREATE TABLE T (
a INTEGER,
b REAL,
c REAL
);
INSERT INTO T VALUES (1,2.0,10.5), (1,-3.5,20.25), (2,9e999,-1.0);
WITH d AS (SELECT a,SUM(b*c) AS e FROM T GROUP BY a) SELECT * FROM d;
SELECT 1 >> -999999999999999999999999999;
SELECT sqlite_compileoption_get($1);
SELECT sqlite_version();
.version
ATTACH DATABASE ':memory:' AS aux56;
CREATE TABLE `T` (
a CLOB,
b REAL,
c REAL
);
INSERT INTO T VALUES ((likelihood(x'f6b69ceac2e03792bbc0fe1eae45', 0.0) -> '$[0]' * 1),1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
SELECT * FROM T WHERE b < 2.0 ORDER BY b;
INSERT INTO T SELECT * FROM T;
DETACH DATABASE aux56;
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_4076 AS SELECT c FROM T;
CREATE TABLE T1 (
a INTEGER,
b TEXT
);
CREATE TABLE T2 (
a INTEGER,
b TEXT
);
INSERT INTO T1 VALUES (1,'a'),(2,'b');
INSERT INTO T2 VALUES (1,'c'),(1,'d');
SELECT T1.b,
(
SELECT GROUP_CONCAT(b,',')
FROM T2
WHERE T2.a=T1.a
) AS c
FROM T1;
INSERT INTO T1 VALUES (NULL, NULL);
ANALYZE;
SELECT LAG(a, 2, a) OVER (ORDER BY a RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T;
WITH a AS (SELECT * FROM T WHERE b IS NOT NULL), b AS (SELECT * FROM a WHERE b > 0), c AS (SELECT * FROM b LIMIT 10) SELECT * FROM c;
ANALYZE T;
DELETE FROM T2 WHERE 0;
END TRANSACTION;
INSERT INTO T DEFAULT VALUES;
SELECT LEAD(b, 0) OVER (ORDER BY b RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T2;
INSERT INTO T1 SELECT * FROM T1;
SELECT MIN(a) FROM T2;
SELECT 0x0ACB29BM205381;
SELECT sqlite_compileoption_used('我的天你是怎么了');
SELECT 1 >> -999999999999999999999999999;
SELECT sqlite_compileoption_get($1);
SELECT sqlite_version();
SELECT COUNT(*) FROM T1;
SELECT TOTAL(b) OVER (PARTITION BY b ORDER BY b) FROM t1;
DETACH DATABASE aux61;
ANALYZE T1;
WITH cte AS (SELECT a, COUNT(*) AS cnt FROM T1 GROUP BY a) SELECT * FROM cte;
UPDATE T2 SET b = 'x' RETURNING *;
INSERT INTO T DEFAULT VALUES;
SELECT MAX(b) FROM T1;
SELECT GROUP_CONCAT(b, '|') FROM t1;
INSERT INTO T1 SELECT * FROM T1;
ROLLBACK;
INSERT INTO T2 VALUES (NULL, NULL);
DROP INDEX IF EXISTS T1;
ALTER TABLE t1 DROP COLUMN b;
ALTER TABLE T1 DROP COLUMN a;
ALTER TABLE t1 DROP COLUMN a;
CREATE TABLE T (
a INTEGER,
b TEXT,
c REAL
);
INSERT INTO T VALUES (CAST(CAST(1 AS INT2) AS FLOA),'a',1.25), (2,'b',-3.5), (3,'c',9e999);
WITH d AS (SELECT * FROM T) SELECT * FROM d WHERE c > 0;
BEGIN;
PRAGMA vdbe_addoptrace = TRUE;
ATTACH DATABASE ':memory:' AS aux61;
-- PRAGMA automatic_index = 0;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (jsonb_extract(json_remove(cosh(ifnull(glob('**[0-9]+>)!<(K!@AD++****)))', CAST(CAST(-(-(1)) AS UNSIGNED BIG INT) AS INT)), 2)), '$.key'), '$.key'), ('Wernher' || ''), 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
BEGIN DEFERRED;
SELECT 0x0ACB29BM205381;
SELECT sqlite_compileoption_used('我的天你是怎么了');
CREATE TABLE T (
a INTEGER,
b REAL,
c REAL
);
INSERT INTO T VALUES (1,2.0,10.5), (1,-3.5,20.25), (2,9e999,-1.0);
WITH d AS (SELECT a,SUM(b*c) AS e FROM T GROUP BY a) SELECT * FROM d;
SELECT 1 >> -999999999999999999999999999;
SELECT sqlite_compileoption_get($1);
SELECT sqlite_version();
.version
ATTACH DATABASE ':memory:' AS aux56;
CREATE TABLE `T` (
a CLOB,
b REAL,
c REAL
);
INSERT INTO T VALUES ((likelihood(x'f6b69ceac2e03792bbc0fe1eae45', 0.0) -> '$[0]' * 1),1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
SELECT * FROM T WHERE b < 2.0 ORDER BY b;
INSERT INTO T SELECT * FROM T;
DETACH DATABASE aux56;
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_4076 AS SELECT c FROM T;
CREATE TABLE T1 (
a INTEGER,
b TEXT
);
CREATE TABLE T2 (
a INTEGER,
b TEXT
);
INSERT INTO T1 VALUES (1,'a'),(2,'b');
INSERT INTO T2 VALUES (1,'c'),(1,'d');
SELECT T1.b,
(
SELECT GROUP_CONCAT(b,',')
FROM T2
WHERE T2.a=T1.a
) AS c
FROM T1;
INSERT INTO T1 VALUES (NULL, NULL);
ANALYZE;
SELECT LAG(a, 2, a) OVER (ORDER BY a RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T;
WITH a AS (SELECT * FROM T WHERE b IS NOT NULL), b AS (SELECT * FROM a WHERE b > 0), c AS (SELECT * FROM b LIMIT 10) SELECT * FROM c;
ANALYZE T;
DELETE FROM T2 WHERE 0;
END TRANSACTION;
INSERT INTO T DEFAULT VALUES;
SELECT LEAD(b, 0) OVER (ORDER BY b RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T2;
INSERT INTO T1 SELECT * FROM T1;
SELECT MIN(a) FROM T2;
SELECT 0x0ACB29BM205381;
SELECT sqlite_compileoption_used('我的天你是怎么了');
SELECT 1 >> -999999999999999999999999999;
SELECT sqlite_compileoption_get($1);
SELECT sqlite_version();
SELECT COUNT(*) FROM T1;
SELECT TOTAL(b) OVER (PARTITION BY b ORDER BY b) FROM t1;
DETACH DATABASE aux61;
ANALYZE T1;
WITH cte AS (SELECT a, COUNT(*) AS cnt FROM T1 GROUP BY a) SELECT * FROM cte;
UPDATE T2 SET b = 'x' RETURNING *;
INSERT INTO T DEFAULT VALUES;
SELECT MAX(b) FROM T1;
SELECT GROUP_CONCAT(b, '|') FROM t1;
INSERT INTO T1 SELECT * FROM T1;
ROLLBACK;
INSERT INTO T2 VALUES (NULL, NULL);
DROP INDEX IF EXISTS T1;
ALTER TABLE t1 DROP COLUMN b;
ALTER TABLE T1 DROP COLUMN a;
ALTER TABLE t1 DROP COLUMN a;
CREATE TABLE T (
a INTEGER,
b TEXT,
c REAL
);
INSERT INTO T VALUES (CAST(CAST(1 AS INT2) AS FLOA),'a',1.25), (2,'b',-3.5), (3,'c',9e999);
WITH d AS (SELECT * FROM T) SELECT * FROM d WHERE c > 0;
BEGIN;
PRAGMA vdbe_addoptrace = TRUE;
ATTACH DATABASE ':memory:' AS aux61;
-- PRAGMA automatic_index = 0;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (jsonb_extract(json_remove(cosh(ifnull(glob('**[0-9]+>)!<(K!@AD++****)))', CAST(CAST(-(-(1)) AS UNSIGNED BIG INT) AS INT)), 2)), '$.key'), '$.key'), ('Wernher' || ''), 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
BEGIN DEFERRED;
SELECT 0x0ACB29BM205381;
SELECT sqlite_compileoption_used('我的天你是怎么了');
CREATE TABLE T (
a INTEGER,
b REAL,
c REAL
);
INSERT INTO T VALUES (1,2.0,10.5), (1,-3.5,20.25), (2,9e999,-1.0);
WITH d AS (SELECT a,SUM(b*c) AS e FROM T GROUP BY a) SELECT * FROM d;
SELECT 1 >> -999999999999999999999999999;
SELECT sqlite_compileoption_get($1);
SELECT sqlite_version();
.version
ATTACH DATABASE ':memory:' AS aux56;
CREATE TABLE `T` (
a CLOB,
b REAL,
c REAL
);
INSERT INTO T VALUES ((likelihood(x'f6b69ceac2e03792bbc0fe1eae45', 0.0) -> '$[0]' * 1),1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
SELECT * FROM T WHERE b < 2.0 ORDER BY b;
INSERT INTO T SELECT * FROM T;
DETACH DATABASE aux56;
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_4076 AS SELECT c FROM T;
CREATE TABLE T1 (
a INTEGER,
b TEXT
);
CREATE TABLE T2 (
a INTEGER,
b TEXT
);
INSERT INTO T1 VALUES (1,'a'),(2,'b');
INSERT INTO T2 VALUES (1,'c'),(1,'d');
SELECT T1.b,
(
SELECT GROUP_CONCAT(b,',')
FROM T2
WHERE T2.a=T1.a
) AS c
FROM T1;
INSERT INTO T1 VALUES (NULL, NULL);
ANALYZE;
SELECT LAG(a, 2, a) OVER (ORDER BY a RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T;
WITH a AS (SELECT * FROM T WHERE b IS NOT NULL), b AS (SELECT * FROM a WHERE b > 0), c AS (SELECT * FROM b LIMIT 10) SELECT * FROM c;
ANALYZE T;
DELETE FROM T2 WHERE 0;
END TRANSACTION;
INSERT INTO T DEFAULT VALUES;
SELECT LEAD(b, 0) OVER (ORDER BY b RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T2;
INSERT INTO T1 SELECT * FROM T1;
SELECT MIN(a) FROM T2;
SELECT 0x0ACB29BM205381;
SELECT sqlite_compileoption_used('我的天你是怎么了');
SELECT 1 >> -999999999999999999999999999;
SELECT sqlite_compileoption_get($1);
SELECT sqlite_version();
SELECT COUNT(*) FROM T1;
SELECT TOTAL(b) OVER (PARTITION BY b ORDER BY b) FROM t1;
DETACH DATABASE aux61;
ANALYZE T1;
WITH cte AS (SELECT a, COUNT(*) AS cnt FROM T1 GROUP BY a) SELECT * FROM cte;
UPDATE T2 SET b = 'x' RETURNING *;
INSERT INTO T DEFAULT VALUES;
SELECT MAX(b) FROM T1;
SELECT GROUP_CONCAT(b, '|') FROM t1;
INSERT INTO T1 SELECT * FROM T1;
ROLLBACK;
INSERT INTO T2 VALUES (NULL, NULL);
DROP INDEX IF EXISTS T1;
ALTER TABLE t1 DROP COLUMN b;
ALTER TABLE T1 DROP COLUMN a;
ALTER TABLE t1 DROP COLUMN a;
CREATE TABLE T (
a INTEGER,
b TEXT,
c REAL
);
INSERT INTO T VALUES (CAST(CAST(1 AS INT2) AS FLOA),'a',1.25), (2,'b',-3.5), (3,'c',9e999);
WITH d AS (SELECT * FROM T) SELECT * FROM d WHERE c > 0;
BEGIN;
PRAGMA vdbe_addoptrace = TRUE;
ATTACH DATABASE ':memory:' AS aux61;
-- PRAGMA automatic_index = 0;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (jsonb_extract(json_remove(cosh(ifnull(glob('**[0-9]+>)!<(K!@AD++****)))', CAST(CAST(-(-(1)) AS UNSIGNED BIG INT) AS INT)), 2)), '$.key'), '$.key'), ('Wernher' || ''), 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
BEGIN DEFERRED;
SELECT 0x0ACB29BM205381;
SELECT sqlite_compileoption_used('我的天你是怎么了');
CREATE TABLE T (
a INTEGER,
b REAL,
c REAL
);
INSERT INTO T VALUES (1,2.0,10.5), (1,-3.5,20.25), (2,9e999,-1.0);
WITH d AS (SELECT a,SUM(b*c) AS e FROM T GROUP BY a) SELECT * FROM d;
SELECT 1 >> -999999999999999999999999999;
SELECT sqlite_compileoption_get($1);
SELECT sqlite_version();
.version
ATTACH DATABASE ':memory:' AS aux56;
CREATE TABLE `T` (
a CLOB,
b REAL,
c REAL
);
INSERT INTO T VALUES ((likelihood(x'f6b69ceac2e03792bbc0fe1eae45', 0.0) -> '$[0]' * 1),1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
SELECT * FROM T WHERE b < 2.0 ORDER BY b;
INSERT INTO T SELECT * FROM T;
DETACH DATABASE aux56;
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_4076 AS SELECT c FROM T;
CREATE TABLE T1 (
a INTEGER,
b TEXT
);
CREATE TABLE T2 (
a INTEGER,
b TEXT
);
INSERT INTO T1 VALUES (1,'a'),(2,'b');
INSERT INTO T2 VALUES (1,'c'),(1,'d');
SELECT T1.b,
(
SELECT GROUP_CONCAT(b,',')
FROM T2
WHERE T2.a=T1.a
) AS c
FROM T1;
INSERT INTO T1 VALUES (NULL, NULL);
ANALYZE;
SELECT LAG(a, 2, a) OVER (ORDER BY a RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T;
WITH a AS (SELECT * FROM T WHERE b IS NOT NULL), b AS (SELECT * FROM a WHERE b > 0), c AS (SELECT * FROM b LIMIT 10) SELECT * FROM c;
ANALYZE T;
DELETE FROM T2 WHERE 0;
END TRANSACTION;
INSERT INTO T DEFAULT VALUES;
SELECT LEAD(b, 0) OVER (ORDER BY b RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T2;
INSERT INTO T1 SELECT * FROM T1;
SELECT MIN(a) FROM T2;
SELECT 0x0ACB29BM205381;
SELECT sqlite_compileoption_used('我的天你是怎么了');
SELECT 1 >> -999999999999999999999999999;
SELECT sqlite_compileoption_get($1);
SELECT sqlite_version();
SELECT COUNT(*) FROM T1;
SELECT TOTAL(b) OVER (PARTITION BY b ORDER BY b) FROM t1;
DETACH DATABASE aux61;
ANALYZE T1;
WITH cte AS (SELECT a, COUNT(*) AS cnt FROM T1 GROUP BY a) SELECT * FROM cte;
UPDATE T2 SET b = 'x' RETURNING *;
INSERT INTO T DEFAULT VALUES;
SELECT MAX(b) FROM T1;
SELECT GROUP_CONCAT(b, '|') FROM t1;
INSERT INTO T1 SELECT * FROM T1;
ROLLBACK;
INSERT INTO T2 VALUES (NULL, NULL);
DROP INDEX IF EXISTS T1;
ALTER TABLE t1 DROP COLUMN b;
ALTER TABLE T1 DROP COLUMN a;
ALTER TABLE t1 DROP COLUMN a;
CREATE TABLE T (
a INTEGER,
b TEXT,
c REAL
);
INSERT INTO T VALUES (CAST(CAST(1 AS INT2) AS FLOA),'a',1.25), (2,'b',-3.5), (3,'c',9e999);
WITH d AS (SELECT * FROM T) SELECT * FROM d WHERE c > 0;
BEGIN;
PRAGMA vdbe_addoptrace = TRUE;
ATTACH DATABASE ':memory:' AS aux61;
-- PRAGMA automatic_index = 0;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (jsonb_extract(json_remove(cosh(ifnull(glob('**[0-9]+>)!<(K!@AD++****)))', CAST(CAST(-(-(1)) AS UNSIGNED BIG INT) AS INT)), 2)), '$.key'), '$.key'), ('Wernher' || ''), 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
BEGIN DEFERRED;
SELECT 0x0ACB29BM205381;
SELECT sqlite_compileoption_used('我的天你是怎么了');
CREATE TABLE T (
a INTEGER,
b REAL,
c REAL
);
INSERT INTO T VALUES (1,2.0,10.5), (1,-3.5,20.25), (2,9e999,-1.0);
WITH d AS (SELECT a,SUM(b*c) AS e FROM T GROUP BY a) SELECT * FROM d;
SELECT 1 >> -999999999999999999999999999;
SELECT sqlite_compileoption_get($1);
SELECT sqlite_version();
.version
ATTACH DATABASE ':memory:' AS aux56;
CREATE TABLE `T` (
a CLOB,
b REAL,
c REAL
);
INSERT INTO T VALUES ((likelihood(x'f6b69ceac2e03792bbc0fe1eae45', 0.0) -> '$[0]' * 1),1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
SELECT * FROM T WHERE b < 2.0 ORDER BY b;
INSERT INTO T SELECT * FROM T;
DETACH DATABASE aux56;
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_4076 AS SELECT c FROM T;
CREATE TABLE T1 (
a INTEGER,
b TEXT
);
CREATE TABLE T2 (
a INTEGER,
b TEXT
);
INSERT INTO T1 VALUES (1,'a'),(2,'b');
INSERT INTO T2 VALUES (1,'c'),(1,'d');
SELECT T1.b,
(
SELECT GROUP_CONCAT(b,',')
FROM T2
WHERE T2.a=T1.a
) AS c
FROM T1;
INSERT INTO T1 VALUES (NULL, NULL);
ANALYZE;
SELECT LAG(a, 2, a) OVER (ORDER BY a RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T;
WITH a AS (SELECT * FROM T WHERE b IS NOT NULL), b AS (SELECT * FROM a WHERE b > 0), c AS (SELECT * FROM b LIMIT 10) SELECT * FROM c;
ANALYZE T;
DELETE FROM T2 WHERE 0;
END TRANSACTION;
INSERT INTO T DEFAULT VALUES;
SELECT LEAD(b, 0) OVER (ORDER BY b RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T2;
INSERT INTO T1 SELECT * FROM T1;
SELECT MIN(a) FROM T2;
SELECT 0x0ACB29BM205381;
SELECT sqlite_compileoption_used('我的天你是怎么了');
SELECT 1 >> -999999999999999999999999999;
SELECT sqlite_compileoption_get($1);
SELECT sqlite_version();
SELECT COUNT(*) FROM T1;
SELECT TOTAL(b) OVER (PARTITION BY b ORDER BY b) FROM t1;
DETACH DATABASE aux61;
ANALYZE T1;
WITH cte AS (SELECT a, COUNT(*) AS cnt FROM T1 GROUP BY a) SELECT * FROM cte;
UPDATE T2 SET b = 'x' RETURNING *;
INSERT INTO T DEFAULT VALUES;
SELECT MAX(b) FROM T1;
SELECT GROUP_CONCAT(b, '|') FROM t1;
INSERT INTO T1 SELECT * FROM T1;
ROLLBACK;
INSERT INTO T2 VALUES (NULL, NULL);
DROP INDEX IF EXISTS T1;
ALTER TABLE t1 DROP COLUMN b;
ALTER TABLE T1 DROP COLUMN a;
ALTER TABLE t1 DROP COLUMN a;
CREATE TABLE T (
a INTEGER,
b TEXT,
c REAL
);
INSERT INTO T VALUES (CAST(CAST(1 AS INT2) AS FLOA),'a',1.25), (2,'b',-3.5), (3,'c',9e999);
WITH d AS (SELECT * FROM T) SELECT * FROM d WHERE c > 0;
BEGIN;
PRAGMA vdbe_addoptrace = TRUE;
ATTACH DATABASE ':memory:' AS aux61;
-- PRAGMA automatic_index = 0;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (jsonb_extract(json_remove(cosh(ifnull(glob('**[0-9]+>)!<(K!@AD++****)))', CAST(CAST(-(-(1)) AS UNSIGNED BIG INT) AS INT)), 2)), '$.key'), '$.key'), ('Wernher' || ''), 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
BEGIN DEFERRED;
SELECT 0x0ACB29BM205381;
SELECT sqlite_compileoption_used('我的天你是怎么了');
CREATE TABLE T (
a INTEGER,
b REAL,
c REAL
);
INSERT INTO T VALUES (1,2.0,10.5), (1,-3.5,20.25), (2,9e999,-1.0);
WITH d AS (SELECT a,SUM(b*c) AS e FROM T GROUP BY a) SELECT * FROM d;
SELECT 1 >> -999999999999999999999999999;
SELECT sqlite_compileoption_get($1);
SELECT sqlite_version();
.version
ATTACH DATABASE ':memory:' AS aux56;
CREATE TABLE `T` (
a CLOB,
b REAL,
c REAL
);
INSERT INTO T VALUES ((likelihood(x'f6b69ceac2e03792bbc0fe1eae45', 0.0) -> '$[0]' * 1),1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
SELECT * FROM T WHERE b < 2.0 ORDER BY b;
INSERT INTO T SELECT * FROM T;
DETACH DATABASE aux56;
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_4076 AS SELECT c FROM T;
CREATE TABLE T1 (
a INTEGER,
b TEXT
);
CREATE TABLE T2 (
a INTEGER,
b TEXT
);
INSERT INTO T1 VALUES (1,'a'),(2,'b');
INSERT INTO T2 VALUES (1,'c'),(1,'d');
SELECT T1.b,
(
SELECT GROUP_CONCAT(b,',')
FROM T2
WHERE T2.a=T1.a
) AS c
FROM T1;
INSERT INTO T1 VALUES (NULL, NULL);
ANALYZE;
SELECT LAG(a, 2, a) OVER (ORDER BY a RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T;
WITH a AS (SELECT * FROM T WHERE b IS NOT NULL), b AS (SELECT * FROM a WHERE b > 0), c AS (SELECT * FROM b LIMIT 10) SELECT * FROM c;
ANALYZE T;
DELETE FROM T2 WHERE 0;
END TRANSACTION;
INSERT INTO T DEFAULT VALUES;
SELECT LEAD(b, 0) OVER (ORDER BY b RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T2;
INSERT INTO T1 SELECT * FROM T1;
SELECT MIN(a) FROM T2;
SELECT 0x0ACB29BM205381;
SELECT sqlite_compileoption_used('我的天你是怎么了');
SELECT 1 >> -999999999999999999999999999;
SELECT sqlite_compileoption_get($1);
SELECT sqlite_version();
SELECT COUNT(*) FROM T1;
SELECT TOTAL(b) OVER (PARTITION BY b ORDER BY b) FROM t1;
DETACH DATABASE aux61;
ANALYZE T1;
WITH cte AS (SELECT a, COUNT(*) AS cnt FROM T1 GROUP BY a) SELECT * FROM cte;
UPDATE T2 SET b = 'x' RETURNING *;
INSERT INTO T DEFAULT VALUES;
SELECT MAX(b) FROM T1;
SELECT GROUP_CONCAT(b, '|') FROM t1;
INSERT INTO T1 SELECT * FROM T1;
ROLLBACK;
INSERT INTO T2 VALUES (NULL, NULL);
DROP INDEX IF EXISTS T1;
ALTER TABLE t1 DROP COLUMN b;
ALTER TABLE T1 DROP COLUMN a;
ALTER TABLE t1 DROP COLUMN a;
DROP INDEX IF EXISTS T2;
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 T1;
ALTER TABLE T RENAME TO T_r4249;
```
## Actual output
```sql
1|a|1.25
3|c|Inf
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
Braun|30|3
von|20|2
Braun|30
von|20
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,72 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
PRAGMA writable_schema = 0;
ATTACH DATABASE (':memory:' || '') AS aux12;
PRAGMA checkpoint_fullsync = OFF;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
CREATE TABLE t1(x);
INSERT INTO t1 VALUES(99);
SELECT sum((SELECT 1 FROM (SELECT 2 WHERE x IS NULL) WHERE 0)) FROM t1;
DELETE FROM t1 WHERE x IS NULL;
INSERT INTO t1 VALUES (NULL);
SELECT COUNT(*) FROM t1;
DETACH DATABASE aux12;
INSERT INTO t1 VALUES (NULL);
UPDATE t1 SET x = CURRENT_TIMESTAMP WHERE x IS NOT NULL RETURNING *;
ALTER TABLE t1 ADD COLUMN extra_5709 FLOAT;
SELECT COUNT(*) FILTER (WHERE x IS NOT NULL), SUM(rowid) FILTER (WHERE x > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(x) FILTER (WHERE x > 0 AND x < 100), COUNT(*) FILTER (WHERE typeof(x) = "text") FROM t1;
CREATE INDEX IF NOT EXISTS idx_t1_6962 ON t1(x COLLATE NOCASE) WHERE x > 0;
SELECT COUNT(*) FILTER (WHERE x IS NOT NULL), SUM(rowid) FILTER (WHERE x > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(x) FILTER (WHERE x > 0 AND x < 100), COUNT(*) FILTER (WHERE typeof(x) = "text") FROM t1;
ALTER TABLE t1 ADD COLUMN extra_9323 NATIVE CHARACTER(70)NVARCHAR(100) COLLATE RTRIM;
```
## Actual output
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
Braun|30|3
Wernher|10|1
von|20|2
Braun|30
Wernher|10
von|20
```
## Expectation
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
Braun|30|3
Wernher|10|1
von|20|2
Braun|30
Wernher|10
von|20
```
## Flag
```
```
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,47 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
BEGIN TRANSACTION;
-- format('%f', {v})
-- sign({v})
CREATE TABLE [T] (
a SMALLINT,
b REAL
);
INSERT INTO T VALUES ('a',octet_length(NULL)), ('b',-time(min(1, 2, 3, 4, 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;
INSERT INTO T SELECT * FROM T;
END TRANSACTION;
WITH cte AS (SELECT * FROM T), cte2 AS (SELECT * FROM cte) SELECT * FROM cte2;
SELECT * FROM T;
CREATE TEMP VIEW IF NOT EXISTS v_T_8602 AS SELECT a FROM T;
PRAGMA temp_store_directory;
```
## Actual output
```sql
Parse error near line 10: no such function: octet_length
INSERT INTO T VALUES ('a',octet_length(NULL)), ('b',-time(min(1, 2, 3, 4, 5)))
error here ---^
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,243 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
.log stderr
PRAGMA secure_delete = 'FAST';
BEGIN IMMEDIATE TRANSACTION;
SAVEPOINT sp4568;
ATTACH DATABASE ':memory:' AS aux38;
ATTACH DATABASE ':memory:' AS aux69;
PRAGMA empty_result_callbacks = TRUE;
PRAGMA vdbe_trace = NO;
PRAGMA foreign_key_check;
.dbconfig
PRAGMA encoding = 'utf-16';
CREATE TABLE [t1](abcd, efgh);
INSERT INTO t1 VALUES (x'f1', timediff(-randomblob(-(-(-(-(CAST(0 AS INTEGER)))))), 0));
CREATE VIEW v1 AS SELECT * FROM t1 WHERE NOT NOT (abcd>efgh) ;
DETACH DATABASE aux69;
DETACH DATABASE aux38;
ROLLBACK TO sp4568;
RELEASE sp4568;
COMMIT TRANSACTION;
PRAGMA secure_delete = 'FAST';
BEGIN IMMEDIATE TRANSACTION;
SAVEPOINT sp4568;
ATTACH DATABASE ':memory:' AS aux38;
ATTACH DATABASE ':memory:' AS aux69;
PRAGMA empty_result_callbacks = TRUE;
PRAGMA vdbe_trace = NO;
PRAGMA foreign_key_check;
.dbconfig
PRAGMA encoding = 'utf-16';
CREATE TABLE [t1](abcd, efgh);
INSERT INTO t1 VALUES (x'f1', timediff(-randomblob(-(-(-(-(CAST(0 AS INTEGER)))))), 0));
CREATE VIEW v1 AS SELECT * FROM t1 WHERE abcd>efgh;
DETACH DATABASE aux69;
DETACH DATABASE aux38;
ROLLBACK TO sp4568;
RELEASE sp4568;
COMMIT TRANSACTION;
PRAGMA secure_delete = 'FAST';
BEGIN IMMEDIATE TRANSACTION;
SAVEPOINT sp4568;
ATTACH DATABASE ':memory:' AS aux38;
ATTACH DATABASE ':memory:' AS aux69;
PRAGMA empty_result_callbacks = TRUE;
PRAGMA vdbe_trace = NO;
PRAGMA foreign_key_check;
.dbconfig
PRAGMA encoding = 'utf-16';
CREATE TABLE [t1](abcd, efgh);
INSERT INTO t1 VALUES (x'f1', timediff(-randomblob(-(-(-(-(CAST(0 AS INTEGER)))))), 0));
CREATE VIEW v1 AS SELECT * FROM t1 WHERE abcd>efgh;
DETACH DATABASE aux69;
DETACH DATABASE aux38;
ROLLBACK TO sp4568;
RELEASE sp4568;
COMMIT TRANSACTION;
PRAGMA secure_delete = 'FAST';
BEGIN IMMEDIATE TRANSACTION;
SAVEPOINT sp4568;
ATTACH DATABASE ':memory:' AS aux38;
ATTACH DATABASE ':memory:' AS aux69;
PRAGMA empty_result_callbacks = TRUE;
PRAGMA vdbe_trace = NO;
PRAGMA foreign_key_check;
.dbconfig
PRAGMA encoding = 'utf-16';
CREATE TABLE [t1](abcd, efgh);
INSERT INTO t1 VALUES (x'f1', timediff(-randomblob(-(-(-(-(CAST(0 AS INTEGER)))))), 0));
CREATE VIEW v1 AS SELECT * FROM t1 WHERE abcd>efgh;
DETACH DATABASE aux69;
DETACH DATABASE aux38;
ROLLBACK TO sp4568;
RELEASE sp4568;
COMMIT TRANSACTION;
PRAGMA secure_delete = 'FAST';
BEGIN IMMEDIATE TRANSACTION;
SAVEPOINT sp4568;
ATTACH DATABASE ':memory:' AS aux38;
ATTACH DATABASE ':memory:' AS aux69;
PRAGMA empty_result_callbacks = TRUE;
PRAGMA vdbe_trace = NO;
PRAGMA foreign_key_check;
.dbconfig
PRAGMA encoding = 'utf-16';
CREATE TABLE [t1](abcd, efgh);
INSERT INTO t1 VALUES (x'f1', timediff(-randomblob(-(-(-(-(CAST(0 AS INTEGER)))))), 0));
CREATE VIEW v1 AS SELECT * FROM t1 WHERE abcd>efgh;
DETACH DATABASE aux69;
DETACH DATABASE aux38;
ROLLBACK TO sp4568;
RELEASE sp4568;
COMMIT TRANSACTION;
PRAGMA secure_delete = 'FAST';
BEGIN IMMEDIATE TRANSACTION;
SAVEPOINT sp4568;
ATTACH DATABASE ':memory:' AS aux38;
ATTACH DATABASE ':memory:' AS aux69;
PRAGMA empty_result_callbacks = TRUE;
PRAGMA vdbe_trace = NO;
PRAGMA foreign_key_check;
.dbconfig
PRAGMA encoding = 'utf-16';
CREATE TABLE [t1](abcd, efgh);
INSERT INTO t1 VALUES (x'f1', timediff(-randomblob(-(-(-(-(CAST(0 AS INTEGER)))))), 0));
CREATE VIEW v1 AS SELECT * FROM t1 WHERE abcd>efgh;
DETACH DATABASE aux69;
DETACH DATABASE aux38;
ROLLBACK TO sp4568;
RELEASE sp4568;
COMMIT TRANSACTION;
```
## Actual output
```sql
2
defensive off
dqs_ddl on
dqs_dml on
enable_fkey off
enable_qpsg off
enable_trigger on
enable_view on
fts3_tokenizer off
legacy_alter_table off
legacy_file_format off
load_extension on
no_ckpt_on_close off
reset_database off
trigger_eqp off
trusted_schema on
writable_schema off
2
defensive off
dqs_ddl on
dqs_dml on
enable_fkey off
enable_qpsg off
enable_trigger on
enable_view on
fts3_tokenizer off
legacy_alter_table off
legacy_file_format off
load_extension on
no_ckpt_on_close off
reset_database off
trigger_eqp off
trusted_schema on
writable_schema off
2
defensive off
dqs_ddl on
dqs_dml on
enable_fkey off
enable_qpsg off
enable_trigger on
enable_view on
fts3_tokenizer off
legacy_alter_table off
legacy_file_format off
load_extension on
no_ckpt_on_close off
reset_database off
trigger_eqp off
trusted_schema on
writable_schema off
2
defensive off
dqs_ddl on
dqs_dml on
enable_fkey off
enable_qpsg off
enable_trigger on
enable_view on
fts3_tokenizer off
legacy_alter_table off
legacy_file_format off
load_extension on
no_ckpt_on_close off
reset_database off
trigger_eqp off
trusted_schema on
writable_schema off
2
defensive off
dqs_ddl on
dqs_dml on
enable_fkey off
enable_qpsg off
enable_trigger on
enable_view on
fts3_tokenizer off
legacy_alter_table off
legacy_file_format off
load_extension on
no_ckpt_on_close off
reset_database off
trigger_eqp off
trusted_schema on
writable_schema off
2
defensive off
dqs_ddl on
dqs_dml on
enable_fkey off
enable_qpsg off
enable_trigger on
enable_view on
fts3_tokenizer off
legacy_alter_table off
legacy_file_format off
load_extension on
no_ckpt_on_close off
reset_database off
trigger_eqp off
trusted_schema on
writable_schema off
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,923 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
PRAGMA wal_checkpoint('NOOP');
BEGIN EXCLUSIVE;
.eqp full
.vfsinfo
creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z");
DROP TABLE t0;
PRAGMA automatic_index = OFF;
CREATE TABLE T (
a TEXT,
b INTEGER,
c REAL
);
INSERT INTO T VALUES ('a',-(-(exp(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;
SELECT COUNT(*) OVER (PARTITION BY c ORDER BY c) FROM T;
SELECT * FROM (SELECT * FROM (SELECT * FROM T) AS inner1) AS inner2;
END;
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T WHERE +c > 0);
```
## Actual output
```sql
0|-1|-1
vfs.zName = "unix"
vfs.iVersion = 3
vfs.szOsFile = 120
vfs.mxPathname = 512
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 31 0 0 Start at 31
1 VBegin 0 0 0 0
2 ReadCookie 0 3 2 0
3 If 3 6 0 0
4 SetCookie 0 2 4 0
5 SetCookie 0 5 1 0
6 Integer 0 2 0 0 r[2]=0
7 OpenWrite 0 1 0 5 0 root=1 iDb=0
8 NewRowid 0 1 0 0 r[1]=rowid
9 Blob 6 3 0  0 r[3]= (len=6)
10 Insert 0 3 1 8 intkey=r[1] data=r[3]
11 Close 0 0 0 0
12 Null 0 4 5 0 r[4..5]=NULL
13 Noop 2 0 4 0
14 OpenWrite 1 1 0 5 0 root=1 iDb=0; sqlite_master
15 SeekRowid 1 17 1 0 intkey=r[1]
16 Rowid 1 5 0 0 r[5]=[P2]=PX rowid of P1
17 IsNull 5 25 0 0 if r[5]==NULL goto 25
18 String8 0 6 0 table 0 r[6]='table'
19 String8 0 7 0 t0 0 r[7]='t0'
20 String8 0 8 0 t0 0 r[8]='t0'
21 Integer 0 9 0 0 r[9]=0
22 String8 0 10 0 CREATE VIRTUAL TABLE t0 USING fts3("x", "y", "z") 0 r[10]='CREATE VIRTUAL TABLE t0 USING fts3("x", "y", "z")'
23 MakeRecord 6 5 4 BBBDB 0 r[4]=mkrec(r[6..10])
24 Insert 1 4 5 0 intkey=r[5] data=r[4]
25 SetCookie 0 1 1 0
26 Expire 0 0 0 0
27 ParseSchema 0 0 0 name='t0' AND sql='CREATE VIRTUAL TABLE t0 USING fts3("x", "y", "z")' 0
28 String8 0 12 0 t0 0 r[12]='t0'
29 VCreate 0 12 0 0
30 Halt 0 0 0 0
31 Transaction 0 1 0 0 1 usesStmtJournal=1
32 Goto 0 1 0 0
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 16 0 0 Start at 16
1 VBegin 0 0 0 0
2 Null 0 1 0 0 r[1]=NULL
3 OpenWrite 0 1 0 5 0 root=1 iDb=0; sqlite_master
4 Rewind 0 12 0 0
5 Column 0 2 2 0 r[2]=sqlite_master.tbl_name
6 Ne 3 11 2 BINARY-8 82 if r[2]!=r[3] goto 11
7 Column 0 0 2 0 r[2]=sqlite_master.type
8 Eq 4 11 2 BINARY-8 82 if r[2]==r[4] goto 11
9 Rowid 0 5 0 0 r[5]=sqlite_master.rowid
10 Delete 0 0 0 2
11 Next 0 5 0 1
12 VDestroy 0 0 0 t0 0
13 DropTable 0 0 0 t0 0
14 SetCookie 0 1 5 0
15 Halt 0 0 0 0
16 Transaction 0 1 4 0 1 usesStmtJournal=1
17 String8 0 3 0 t0 0 r[3]='t0'
18 String8 0 4 0 trigger 0 r[4]='trigger'
19 Goto 0 1 0 0
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 1 0 0 Start at 1
1 Expire 1 1 0 0
2 Expire 0 0 0 0
3 Halt 0 0 0 0
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 28 0 0 Start at 28
1 ReadCookie 0 3 2 0
2 If 3 5 0 0
3 SetCookie 0 2 4 0
4 SetCookie 0 5 1 0
5 CreateBtree 0 2 1 0 r[2]=root iDb=0 flags=1
6 OpenWrite 0 1 0 5 0 root=1 iDb=0
7 NewRowid 0 1 0 0 r[1]=rowid
8 Blob 6 3 0  0 r[3]= (len=6)
9 Insert 0 3 1 8 intkey=r[1] data=r[3]
10 Close 0 0 0 0
11 Close 0 0 0 0
12 Null 0 4 5 0 r[4..5]=NULL
13 Noop 2 0 4 0
14 OpenWrite 1 1 0 5 0 root=1 iDb=0; sqlite_master
15 SeekRowid 1 17 1 0 intkey=r[1]
16 Rowid 1 5 0 0 r[5]=[P2]=PX rowid of P1
17 IsNull 5 25 0 0 if r[5]==NULL goto 25
18 String8 0 6 0 table 0 r[6]='table'
19 String8 0 7 0 T 0 r[7]='T'
20 String8 0 8 0 T 0 r[8]='T'
21 SCopy 2 9 0 0 r[9]=r[2]
22 String8 0 10 0 CREATE TABLE T (
a TEXT,
b INTEGER,
c REAL
) 0 r[10]='CREATE TABLE T (
a TEXT,
b INTEGER,
c REAL
)'
23 MakeRecord 6 5 4 BBBDB 0 r[4]=mkrec(r[6..10])
24 Insert 1 4 5 0 intkey=r[5] data=r[4]
25 SetCookie 0 1 6 0
26 ParseSchema 0 0 0 tbl_name='T' AND type!='trigger' 0
27 Halt 0 0 0 0
28 Transaction 0 1 5 0 1 usesStmtJournal=1
29 Goto 0 1 0 0
QUERY PLAN
`--SCAN 3 CONSTANT ROWS
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 27 0 0 Start at 27
1 InitCoroutine 5 20 2 0
2 String8 0 2 0 a 0 r[2]='a'
3 Once 0 8 0 0
4 Integer 0 8 0 0 r[8]=0
5 Integer 1 10 0 0 r[10]=1
6 Function 1 10 9 exp(1) 0 r[9]=func(r[10])
7 Subtract 9 8 7 0 r[7]=r[8]-r[9]
8 Subtract 7 6 3 0 r[3]=r[6]-r[7]
9 Real 0 4 0 2 0 r[4]=2
10 Yield 5 0 0 0
11 String8 0 2 0 a 0 r[2]='a'
12 Integer 2 3 0 0 r[3]=2
13 Real 0 4 0 -3 0 r[4]=-3
14 Yield 5 0 0 0
15 String8 0 2 0 b 0 r[2]='b'
16 Integer 1 3 0 0 r[3]=1
17 Real 0 4 0 4.5 0 r[4]=4.5
18 Yield 5 0 0 0
19 EndCoroutine 5 0 0 0
20 OpenWrite 0 2 0 3 0 root=2 iDb=0; T
21 Yield 5 26 0 0
22 NewRowid 0 1 0 0 r[1]=rowid
23 MakeRecord 2 3 11 BDE 0 r[11]=mkrec(r[2..4])
24 Insert 0 11 1 T 57 intkey=r[1] data=r[11]
25 Goto 0 21 0 0
26 Halt 0 0 0 0
27 Transaction 0 1 6 0 1 usesStmtJournal=0
28 Integer 0 6 0 0 r[6]=0
29 Goto 0 1 0 0
QUERY PLAN
|--CO-ROUTINE (subquery-2)
| |--SCAN T
| `--USE TEMP B-TREE FOR ORDER BY
`--SCAN (subquery-2)
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 112 0 0 Start at 112
1 Null 0 1 0 0 r[1]=NULL
2 InitCoroutine 3 29 3 0 (subquery-2)
3 SorterOpen 6 9 0 k(2,B,B) 0
4 OpenRead 0 2 0 3 0 root=2 iDb=0; T
5 Rewind 0 17 0 0
6 Column 0 0 6 0 r[6]=T.a
7 Column 0 1 7 0 r[7]=T.b
8 Column 0 2 8 0 r[8]=T.c
9 RealAffinity 8 0 0 0
10 Column 0 2 9 0 r[9]=T.c
11 RealAffinity 9 0 0 0
12 Column 0 0 4 0 r[4]=T.a
13 Column 0 1 5 0 r[5]=T.b
14 MakeRecord 4 6 12 0 r[12]=mkrec(r[4..9])
15 SorterInsert 6 12 4 6 0 key=r[12]
16 Next 0 6 0 1
17 OpenPseudo 7 13 9 0 9 columns in r[13]
18 SorterSort 6 28 0 0
19 SorterData 6 13 7 0 r[13]=data
20 Column 7 5 11 0 r[11]=[P3]=PX cursor P1 column P2
21 Column 7 1 10 0 r[10]=[P3]=PX cursor P1 column P2
22 Column 7 0 9 0 r[9]=[P3]=PX cursor P1 column P2
23 Column 7 4 8 0 r[8]=[P3]=PX cursor P1 column P2
24 Column 7 3 7 0 r[7]=[P3]=PX cursor P1 column P2
25 Column 7 2 6 0 r[6]=[P3]=PX cursor P1 column P2
26 Yield 3 0 0 0
27 SorterNext 6 19 0 0
28 EndCoroutine 3 0 0 0
29 OpenEphemeral 1 6 0 0 nColumn=6
30 OpenDup 2 1 0 0
31 OpenDup 3 1 0 0
32 OpenDup 4 1 0 0
33 Null 0 14 14 0 r[14..14]=NULL
34 Integer 1 15 0 0 r[15]=1
35 InitCoroutine 3 0 3 0
36 Yield 3 80 0 0 next row of
37 Copy 6 17 0 0 r[17]=r[6]
38 Copy 7 18 0 0 r[18]=r[7]
39 Copy 8 19 0 0 r[19]=r[8]
40 Copy 9 20 0 0 r[20]=r[9]
41 Copy 10 21 0 0 r[21]=r[10]
42 Copy 11 22 0 0 r[22]=r[11]
43 MakeRecord 17 6 23 0 r[23]=mkrec(r[17..22])
44 Compare 20 14 1 k(1,B) 0 r[20] <-> r[14]
45 Jump 46 48 46 0
46 Gosub 29 81 0 0 call flush_partition
47 Copy 20 14 0 0 r[14]=r[20]
48 NewRowid 2 24 0 0 r[24]=rowid
49 Insert 2 23 24 0 intkey=r[24] data=r[23]
50 Ne 15 59 24 0 if r[24]!=r[15] goto 59
51 Null 0 1 0 0 r[1]=NULL
52 Rewind 1 1 0 0
53 Rewind 4 1 0 0
54 Copy 21 25 0 0 r[25]=r[21]
55 Copy 25 26 0 0 r[26]=r[25]
56 Copy 25 27 0 0 r[27]=r[25]
57 Copy 25 28 0 0 r[28]=r[25]
58 Goto 0 79 0 0
59 Compare 25 21 1 k(1,B) 0 r[25] <-> r[21]
60 Jump 61 79 61 0
61 Copy 21 25 0 0 r[25]=r[21]
62 Column 4 5 30 0 r[30]=[P3]=PX cursor P1 column P2
63 AggStep 0 30 1 sum(1) 1 accum=r[1] step(r[30])
64 Next 4 66 0 0
65 Goto 0 70 0 0
66 Column 4 4 31 0 r[31]=[P3]=PX cursor P1 column P2
67 Compare 28 31 1 k(1,B) 0 r[28] <-> r[31]
68 Jump 69 62 69 0
69 Copy 31 28 0 0 r[28]=r[31]
70 AggValue 1 1 2 sum(1) 0 r[2]=value N=1
71 Gosub 16 103 0 0
72 Delete 1 0 0 2
73 Next 1 75 0 0
74 Goto 0 79 0 0
75 Column 1 4 31 0 r[31]=[P3]=PX cursor P1 column P2
76 Compare 27 31 1 k(1,B) 0 r[27] <-> r[31]
77 Jump 78 71 78 0
78 Copy 31 27 0 0 r[27]=r[31]
79 Goto 0 36 0 0
80 Integer 101 29 0 0 r[29]=101
81 Rewind 2 100 0 0
82 Column 4 5 30 0 r[30]=[P3]=PX cursor P1 column P2
83 AggStep 0 30 1 sum(1) 1 accum=r[1] step(r[30])
84 Next 4 86 0 0
85 Goto 0 90 0 0
86 Column 4 4 31 0 r[31]=[P3]=PX cursor P1 column P2
87 Compare 28 31 1 k(1,B) 0 r[28] <-> r[31]
88 Jump 89 82 89 0
89 Copy 31 28 0 0 r[28]=r[31]
90 AggValue 1 1 2 sum(1) 0 r[2]=value N=1
91 Gosub 16 103 0 0
92 Delete 1 0 0 2
93 Next 1 95 0 0
94 Goto 0 100 0 0
95 Column 1 4 31 0 r[31]=[P3]=PX cursor P1 column P2
96 Compare 27 31 1 k(1,B) 0 r[27] <-> r[31]
97 Jump 98 91 98 0
98 Copy 31 27 0 0 r[27]=r[31]
99 Goto 0 90 0 0
100 ResetSorter 1 0 0 0
101 Return 29 0 0 0
102 Goto 0 111 0 0
103 Noop 0 0 0 0 inner-loop subroutine
104 Column 1 0 32 0 r[32]=.a
105 Column 1 1 33 0 r[33]=.b
106 Column 1 2 34 0 r[34]=.c
107 RealAffinity 34 0 0 0
108 Copy 2 35 0 0 r[35]=r[2]
109 ResultRow 32 4 0 0 output=r[32..35]
110 Return 16 0 0 0 end inner-loop subroutine
111 Halt 0 0 0 0
112 Transaction 0 0 6 0 1 usesStmtJournal=0
113 Goto 0 1 0 0
a|2|-3.0|-3.0
a|2.71828182845905|2.0|-1.0
b|1|4.5|4.5
QUERY PLAN
|--CO-ROUTINE (subquery-2)
| |--SCAN T
| `--USE TEMP B-TREE FOR ORDER BY
`--SCAN (subquery-2)
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 96 0 0 Start at 96
1 Null 0 1 0 0 r[1]=NULL
2 InitCoroutine 3 23 3 0 (subquery-2)
3 SorterOpen 6 5 0 k(2,B,B) 0
4 OpenRead 0 2 0 3 0 root=2 iDb=0; T
5 Rewind 0 15 0 0
6 Column 0 2 6 0 r[6]=T.c
7 RealAffinity 6 0 0 0
8 Column 0 2 4 0 r[4]=T.c
9 RealAffinity 4 0 0 0
10 Column 0 2 5 0 r[5]=T.c
11 RealAffinity 5 0 0 0
12 MakeRecord 4 3 8 0 r[8]=mkrec(r[4..6])
13 SorterInsert 6 8 4 3 0 key=r[8]
14 Next 0 6 0 1
15 OpenPseudo 7 9 5 0 5 columns in r[9]
16 SorterSort 6 22 0 0
17 SorterData 6 9 7 0 r[9]=data
18 Column 7 1 7 0 r[7]=[P3]=PX cursor P1 column P2
19 Column 7 2 6 0 r[6]=[P3]=PX cursor P1 column P2
20 Yield 3 0 0 0
21 SorterNext 6 17 0 0
22 EndCoroutine 3 0 0 0
23 OpenEphemeral 1 2 0 0 nColumn=2
24 OpenDup 2 1 0 0
25 OpenDup 3 1 0 0
26 OpenDup 4 1 0 0
27 Null 0 10 10 0 r[10..10]=NULL
28 Integer 1 11 0 0 r[11]=1
29 InitCoroutine 3 0 3 0
30 Yield 3 69 0 0 next row of
31 Copy 6 13 0 0 r[13]=r[6]
32 Copy 7 14 0 0 r[14]=r[7]
33 MakeRecord 13 2 15 0 r[15]=mkrec(r[13..14])
34 Compare 13 10 1 k(1,B) 0 r[13] <-> r[10]
35 Jump 36 38 36 0
36 Gosub 21 70 0 0 call flush_partition
37 Copy 13 10 0 0 r[10]=r[13]
38 NewRowid 2 16 0 0 r[16]=rowid
39 Insert 2 15 16 0 intkey=r[16] data=r[15]
40 Ne 11 49 16 0 if r[16]!=r[11] goto 49
41 Null 0 1 0 0 r[1]=NULL
42 Rewind 1 1 0 0
43 Rewind 4 1 0 0
44 Copy 14 17 0 0 r[17]=r[14]
45 Copy 17 18 0 0 r[18]=r[17]
46 Copy 17 19 0 0 r[19]=r[17]
47 Copy 17 20 0 0 r[20]=r[17]
48 Goto 0 68 0 0
49 Compare 17 14 1 k(1,B) 0 r[17] <-> r[14]
50 Jump 51 68 51 0
51 Copy 14 17 0 0 r[17]=r[14]
52 AggStep 0 22 1 count(0) 0 accum=r[1] step(r[22])
53 Next 4 55 0 0
54 Goto 0 59 0 0
55 Column 4 1 22 0 r[22]=[P3]=PX cursor P1 column P2
56 Compare 20 22 1 k(1,B) 0 r[20] <-> r[22]
57 Jump 58 52 58 0
58 Copy 22 20 0 0 r[20]=r[22]
59 AggValue 1 0 2 count(0) 0 r[2]=value N=0
60 Gosub 12 91 0 0
61 Delete 1 0 0 2
62 Next 1 64 0 0
63 Goto 0 68 0 0
64 Column 1 1 22 0 r[22]=[P3]=PX cursor P1 column P2
65 Compare 19 22 1 k(1,B) 0 r[19] <-> r[22]
66 Jump 67 60 67 0
67 Copy 22 19 0 0 r[19]=r[22]
68 Goto 0 30 0 0
69 Integer 89 21 0 0 r[21]=89
70 Rewind 2 88 0 0
71 AggStep 0 22 1 count(0) 0 accum=r[1] step(r[22])
72 Next 4 74 0 0
73 Goto 0 78 0 0
74 Column 4 1 22 0 r[22]=[P3]=PX cursor P1 column P2
75 Compare 20 22 1 k(1,B) 0 r[20] <-> r[22]
76 Jump 77 71 77 0
77 Copy 22 20 0 0 r[20]=r[22]
78 AggValue 1 0 2 count(0) 0 r[2]=value N=0
79 Gosub 12 91 0 0
80 Delete 1 0 0 2
81 Next 1 83 0 0
82 Goto 0 88 0 0
83 Column 1 1 22 0 r[22]=[P3]=PX cursor P1 column P2
84 Compare 19 22 1 k(1,B) 0 r[19] <-> r[22]
85 Jump 86 79 86 0
86 Copy 22 19 0 0 r[19]=r[22]
87 Goto 0 78 0 0
88 ResetSorter 1 0 0 0
89 Return 21 0 0 0
90 Goto 0 95 0 0
91 Noop 0 0 0 0 inner-loop subroutine
92 Copy 2 23 0 0 r[23]=r[2]
93 ResultRow 23 1 0 0 output=r[23]
94 Return 12 0 0 0 end inner-loop subroutine
95 Halt 0 0 0 0
96 Transaction 0 0 6 0 1 usesStmtJournal=0
97 Goto 0 1 0 0
1
1
1
QUERY PLAN
`--SCAN T
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 10 0 0 Start at 10
1 OpenRead 2 2 0 3 0 root=2 iDb=0; T
2 Rewind 2 9 0 0
3 Column 2 0 1 0 r[1]=T.a
4 Column 2 1 2 0 r[2]=T.b
5 Column 2 2 3 0 r[3]=T.c
6 RealAffinity 3 0 0 0
7 ResultRow 1 3 0 0 output=r[1..3]
8 Next 2 3 0 1
9 Halt 0 0 0 0
10 Transaction 0 0 6 0 1 usesStmtJournal=0
11 Goto 0 1 0 0
a|2.71828182845905|2.0
a|2|-3.0
b|1|4.5
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 1 0 0 Start at 1
1 AutoCommit 1 0 0 0
2 Halt 0 0 0 0
QUERY PLAN
|--SCAN T
`--SCALAR SUBQUERY 1
`--SCAN T
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 24 0 0 Start at 24
1 OpenRead 0 2 0 3 0 root=2 iDb=0; T
2 Rewind 0 23 0 0
3 BeginSubrtn 0 2 0 0 r[2]=NULL
4 Once 0 15 0 0
5 Integer 0 3 0 0 r[3]=0; Init EXISTS result
6 Integer 1 4 0 0 r[4]=1; LIMIT counter
7 OpenRead 1 2 0 3 0 root=2 iDb=0; T
8 Rewind 1 15 0 0
9 Column 1 2 5 0 r[5]=T.c
10 RealAffinity 5 0 0 0
11 Le 6 14 5 BINARY-8 80 if r[5]<=r[6] goto 14
12 Integer 1 3 0 0 r[3]=1
13 DecrJumpZero 4 15 0 0 if (--r[4])==0 goto 15
14 Next 1 9 0 1
15 Return 2 4 1 0
16 IfNot 3 22 1 0
17 Column 0 0 8 0 r[8]=T.a
18 Column 0 1 9 0 r[9]=T.b
19 Column 0 2 10 0 r[10]=T.c
20 RealAffinity 10 0 0 0
21 ResultRow 8 3 0 0 output=r[8..10]
22 Next 0 3 0 1
23 Halt 0 0 0 0
24 Transaction 0 0 6 0 1 usesStmtJournal=0
25 Integer 0 6 0 0 r[6]=0
26 Goto 0 1 0 0
a|2.71828182845905|2.0
a|2|-3.0
b|1|4.5
```
## Expectation
```sql
0|-1|-1
vfs.zName = "unix"
vfs.iVersion = 3
vfs.szOsFile = 120
vfs.mxPathname = 512
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 31 0 0 Start at 31
1 VBegin 0 0 0 0
2 ReadCookie 0 3 2 0
3 If 3 6 0 0
4 SetCookie 0 2 4 0
5 SetCookie 0 5 1 0
6 Integer 0 2 0 0 r[2]=0
7 OpenWrite 0 1 0 5 0 root=1 iDb=0
8 NewRowid 0 1 0 0 r[1]=rowid
9 Blob 6 3 0  0 r[3]= (len=6)
10 Insert 0 3 1 8 intkey=r[1] data=r[3]
11 Close 0 0 0 0
12 Null 0 4 5 0 r[4..5]=NULL
13 Noop 2 0 4 0
14 OpenWrite 1 1 0 5 0 root=1 iDb=0; sqlite_master
15 SeekRowid 1 17 1 0 intkey=r[1]
16 Rowid 1 5 0 0 r[5]= rowid of 1
17 IsNull 5 25 0 0 if r[5]==NULL goto 25
18 String8 0 6 0 table 0 r[6]='table'
19 String8 0 7 0 t0 0 r[7]='t0'
20 String8 0 8 0 t0 0 r[8]='t0'
21 Integer 0 9 0 0 r[9]=0
22 String8 0 10 0 CREATE VIRTUAL TABLE t0 USING fts3("x", "y", "z") 0 r[10]='CREATE VIRTUAL TABLE t0 USING fts3("x", "y", "z")'
23 MakeRecord 6 5 4 BBBDB 0 r[4]=mkrec(r[6..10])
24 Insert 1 4 5 0 intkey=r[5] data=r[4]
25 SetCookie 0 1 1 0
26 Expire 0 0 0 0
27 ParseSchema 0 0 0 name='t0' AND sql='CREATE VIRTUAL TABLE t0 USING fts3("x", "y", "z")' 0
28 String8 0 12 0 t0 0 r[12]='t0'
29 VCreate 0 12 0 0
30 Halt 0 0 0 0
31 Transaction 0 1 0 0 1 usesStmtJournal=1
32 Goto 0 1 0 0
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 16 0 0 Start at 16
1 VBegin 0 0 0 0
2 Null 0 1 0 0 r[1]=NULL
3 OpenWrite 0 1 0 5 0 root=1 iDb=0; sqlite_master
4 Rewind 0 12 0 0
5 Column 0 2 2 0 r[2]= cursor 0 column 2
6 Ne 3 11 2 BINARY-8 82 if r[2]!=r[3] goto 11
7 Column 0 0 2 0 r[2]= cursor 0 column 0
8 Eq 4 11 2 BINARY-8 82 if r[2]==r[4] goto 11
9 Rowid 0 5 0 0 r[5]=sqlite_master.rowid
10 Delete 0 0 0 2
11 Next 0 5 0 1
12 VDestroy 0 0 0 t0 0
13 DropTable 0 0 0 t0 0
14 SetCookie 0 1 5 0
15 Halt 0 0 0 0
16 Transaction 0 1 4 0 1 usesStmtJournal=1
17 String8 0 3 0 t0 0 r[3]='t0'
18 String8 0 4 0 trigger 0 r[4]='trigger'
19 Goto 0 1 0 0
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 4 0 0 Start at 4
1 Expire 1 1 0 0
2 Expire 0 0 0 0
3 Halt 0 0 0 0
4 Goto 0 1 0 0
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 28 0 0 Start at 28
1 ReadCookie 0 3 2 0
2 If 3 5 0 0
3 SetCookie 0 2 4 0
4 SetCookie 0 5 1 0
5 CreateBtree 0 2 1 0 r[2]=root iDb=0 flags=1
6 OpenWrite 0 1 0 5 0 root=1 iDb=0
7 NewRowid 0 1 0 0 r[1]=rowid
8 Blob 6 3 0  0 r[3]= (len=6)
9 Insert 0 3 1 8 intkey=r[1] data=r[3]
10 Close 0 0 0 0
11 Close 0 0 0 0
12 Null 0 4 5 0 r[4..5]=NULL
13 Noop 2 0 4 0
14 OpenWrite 1 1 0 5 0 root=1 iDb=0; sqlite_master
15 SeekRowid 1 17 1 0 intkey=r[1]
16 Rowid 1 5 0 0 r[5]= rowid of 1
17 IsNull 5 25 0 0 if r[5]==NULL goto 25
18 String8 0 6 0 table 0 r[6]='table'
19 String8 0 7 0 T 0 r[7]='T'
20 String8 0 8 0 T 0 r[8]='T'
21 Copy 2 9 0 0 r[9]=r[2]
22 String8 0 10 0 CREATE TABLE T (
a TEXT,
b INTEGER,
c REAL
) 0 r[10]='CREATE TABLE T (
a TEXT,
b INTEGER,
c REAL
)'
23 MakeRecord 6 5 4 BBBDB 0 r[4]=mkrec(r[6..10])
24 Insert 1 4 5 0 intkey=r[5] data=r[4]
25 SetCookie 0 1 6 0
26 ParseSchema 0 0 0 tbl_name='T' AND type!='trigger' 0
27 Halt 0 0 0 0
28 Transaction 0 1 5 0 1 usesStmtJournal=1
29 Goto 0 1 0 0
QUERY PLAN
`--SCAN 3-ROW VALUES CLAUSE
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 28 0 0 Start at 28
1 InitCoroutine 1 20 2 0
2 String8 0 4 0 a 0 r[4]='a'
3 Once 0 8 0 0
4 Integer 0 12 0 0 r[12]=0
5 Integer 1 14 0 0 r[14]=1
6 Function 1 14 13 exp(1) 0 r[13]=func(r[14])
7 Subtract 13 12 11 0 r[11]=r[12]-r[13]
8 Subtract 11 10 5 0 r[5]=r[10]-r[11]
9 Real 0 6 0 2 0 r[6]=2
10 Yield 1 0 0 0
11 String8 0 4 0 a 0 r[4]='a'
12 Integer 2 5 0 0 r[5]=2
13 Real 0 6 0 -3 0 r[6]=-3
14 Yield 1 0 0 0
15 String8 0 4 0 b 0 r[4]='b'
16 Integer 1 5 0 0 r[5]=1
17 Real 0 6 0 4.5 0 r[6]=4.5
18 Yield 1 0 0 0
19 EndCoroutine 1 0 0 0
20 Explain 20 0 0 SCAN 3-ROW VALUES CLAUSE 0
21 OpenWrite 0 2 0 3 0 root=2 iDb=0; T
22 Yield 1 27 0 0
23 NewRowid 0 3 0 0 r[3]=rowid
24 MakeRecord 4 3 19 BDE 0 r[19]=mkrec(r[4..6])
25 Insert 0 19 3 T 57 intkey=r[3] data=r[19]
26 Goto 0 22 0 0
27 Halt 0 0 0 0
28 Transaction 0 1 6 0 1 usesStmtJournal=1
29 Integer 0 10 0 0 r[10]=0
30 Goto 0 1 0 0
QUERY PLAN
|--CO-ROUTINE (subquery-2)
| |--SCAN T
| `--USE TEMP B-TREE FOR ORDER BY
`--SCAN (subquery-2)
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 116 0 0 Start at 116
1 Null 0 1 0 0 r[1]=NULL
2 InitCoroutine 3 32 3 0 (subquery-2)
3 Explain 3 0 0 CO-ROUTINE (subquery-2) 0
4 SorterOpen 6 9 0 k(2,B,B) 0
5 OpenRead 0 2 0 3 0 root=2 iDb=0; T
6 Explain 6 3 216 SCAN T 0
7 Rewind 0 19 0 0
8 Column 0 0 6 0 r[6]= cursor 0 column 0
9 Column 0 1 7 0 r[7]= cursor 0 column 1
10 Column 0 2 8 0 r[8]= cursor 0 column 2
11 RealAffinity 8 0 0 0
12 Column 0 2 9 0 r[9]= cursor 0 column 2
13 RealAffinity 9 0 0 0
14 Column 0 0 4 0 r[4]= cursor 0 column 0
15 Column 0 1 5 0 r[5]= cursor 0 column 1
16 MakeRecord 4 6 12 0 r[12]=mkrec(r[4..9])
17 SorterInsert 6 12 4 6 0 key=r[12]
18 Next 0 8 0 1
19 Explain 19 3 0 USE TEMP B-TREE FOR ORDER BY 0
20 OpenPseudo 7 13 9 0 9 columns in r[13]
21 SorterSort 6 31 0 0
22 SorterData 6 13 7 0 r[13]=data
23 Column 7 5 11 0 r[11]= cursor 7 column 5;
24 Column 7 1 10 0 r[10]= cursor 7 column 1;
25 Column 7 0 9 0 r[9]= cursor 7 column 0;
26 Column 7 4 8 0 r[8]= cursor 7 column 4;
27 Column 7 3 7 0 r[7]= cursor 7 column 3;
28 Column 7 2 6 0 r[6]= cursor 7 column 2;
29 Yield 3 0 0 0
30 SorterNext 6 22 0 0
31 EndCoroutine 3 0 0 0 end (subquery-2)
32 OpenEphemeral 1 6 0 0 nColumn=6
33 OpenDup 2 1 0 0
34 OpenDup 3 1 0 0
35 OpenDup 4 1 0 0
36 Null 0 14 14 0 r[14..14]=NULL
37 Integer 1 15 0 0 r[15]=1
38 Explain 38 0 216 SCAN (subquery-2) 0
39 InitCoroutine 3 0 3 0
40 Yield 3 84 0 0 next row of
41 Copy 6 17 0 2 r[17]=r[6]
42 Copy 7 18 0 2 r[18]=r[7]
43 Copy 8 19 0 2 r[19]=r[8]
44 Copy 9 20 0 2 r[20]=r[9]
45 Copy 10 21 0 2 r[21]=r[10]
46 Copy 11 22 0 2 r[22]=r[11]
47 MakeRecord 17 6 23 0 r[23]=mkrec(r[17..22])
48 Compare 20 14 1 k(1,B) 0 r[20] <-> r[14]
49 Jump 50 52 50 0
50 Gosub 29 85 0 0 call flush_partition
51 Copy 20 14 0 0 r[14]=r[20]
52 NewRowid 2 24 0 0 r[24]=rowid
53 Insert 2 23 24 0 intkey=r[24] data=r[23]
54 Ne 15 63 24 0 if r[24]!=r[15] goto 63
55 Null 0 1 0 0 r[1]=NULL
56 Rewind 1 0 0 0
57 Rewind 4 0 0 0
58 Copy 21 25 0 0 r[25]=r[21]
59 Copy 25 26 0 0 r[26]=r[25]
60 Copy 25 27 0 0 r[27]=r[25]
61 Copy 25 28 0 0 r[28]=r[25]
62 Goto 0 83 0 0
63 Compare 25 21 1 k(1,B) 0 r[25] <-> r[21]
64 Jump 65 83 65 0
65 Copy 21 25 0 0 r[25]=r[21]
66 Column 4 5 30 0 r[30]= cursor 4 column 5
67 AggStep 0 30 1 sum(1) 1 accum=r[1] step(r[30])
68 Next 4 70 0 0
69 Goto 0 74 0 0
70 Column 4 4 31 0 r[31]= cursor 4 column 4
71 Compare 28 31 1 k(1,B) 0 r[28] <-> r[31]
72 Jump 73 66 73 0
73 Copy 31 28 0 0 r[28]=r[31]
74 AggValue 1 1 2 sum(1) 0 r[2]=value N=1
75 Gosub 16 107 0 0
76 Delete 1 0 0 2
77 Next 1 79 0 0
78 Goto 0 83 0 0
79 Column 1 4 31 0 r[31]= cursor 1 column 4
80 Compare 27 31 1 k(1,B) 0 r[27] <-> r[31]
81 Jump 82 75 82 0
82 Copy 31 27 0 0 r[27]=r[31]
83 Goto 0 40 0 0
84 Integer 105 29 0 0 r[29]=105
85 Rewind 2 104 0 0
86 Column 4 5 30 0 r[30]= cursor 4 column 5
87 AggStep 0 30 1 sum(1) 1 accum=r[1] step(r[30])
88 Next 4 90 0 0
89 Goto 0 94 0 0
90 Column 4 4 31 0 r[31]= cursor 4 column 4
91 Compare 28 31 1 k(1,B) 0 r[28] <-> r[31]
92 Jump 93 86 93 0
93 Copy 31 28 0 0 r[28]=r[31]
94 AggValue 1 1 2 sum(1) 0 r[2]=value N=1
95 Gosub 16 107 0 0
96 Delete 1 0 0 2
97 Next 1 99 0 0
98 Goto 0 104 0 0
99 Column 1 4 31 0 r[31]= cursor 1 column 4
100 Compare 27 31 1 k(1,B) 0 r[27] <-> r[31]
101 Jump 102 95 102 0
102 Copy 31 27 0 0 r[27]=r[31]
103 Goto 0 94 0 0
104 ResetSorter 1 0 0 0
105 Return 29 0 0 0
106 Goto 0 115 0 0
107 Noop 0 0 0 0 inner-loop subroutine
108 Column 1 0 32 0 r[32]= cursor 1 column 0
109 Column 1 1 33 0 r[33]= cursor 1 column 1
110 Column 1 2 34 0 r[34]= cursor 1 column 2
111 RealAffinity 34 0 0 0
112 Copy 2 35 0 0 r[35]=r[2]
113 ResultRow 32 4 0 0 output=r[32..35]
114 Return 16 0 0 0 end inner-loop subroutine
115 Halt 0 0 0 0
116 Transaction 0 0 6 0 1 usesStmtJournal=0
117 Goto 0 1 0 0
a|2|-3.0|-3.0
a|2.71828182845905|2.0|-1.0
b|1|4.5|4.5
QUERY PLAN
|--CO-ROUTINE (subquery-2)
| |--SCAN T
| `--USE TEMP B-TREE FOR ORDER BY
`--SCAN (subquery-2)
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 100 0 0 Start at 100
1 Null 0 1 0 0 r[1]=NULL
2 InitCoroutine 3 26 3 0 (subquery-2)
3 Explain 3 0 0 CO-ROUTINE (subquery-2) 0
4 SorterOpen 6 5 0 k(2,B,B) 0
5 OpenRead 0 2 0 3 0 root=2 iDb=0; T
6 Explain 6 3 216 SCAN T 0
7 Rewind 0 17 0 0
8 Column 0 2 6 0 r[6]= cursor 0 column 2
9 RealAffinity 6 0 0 0
10 Column 0 2 4 0 r[4]= cursor 0 column 2
11 RealAffinity 4 0 0 0
12 Column 0 2 5 0 r[5]= cursor 0 column 2
13 RealAffinity 5 0 0 0
14 MakeRecord 4 3 8 0 r[8]=mkrec(r[4..6])
15 SorterInsert 6 8 4 3 0 key=r[8]
16 Next 0 8 0 1
17 Explain 17 3 0 USE TEMP B-TREE FOR ORDER BY 0
18 OpenPseudo 7 9 5 0 5 columns in r[9]
19 SorterSort 6 25 0 0
20 SorterData 6 9 7 0 r[9]=data
21 Column 7 1 7 0 r[7]= cursor 7 column 1;
22 Column 7 2 6 0 r[6]= cursor 7 column 2;
23 Yield 3 0 0 0
24 SorterNext 6 20 0 0
25 EndCoroutine 3 0 0 0 end (subquery-2)
26 OpenEphemeral 1 2 0 0 nColumn=2
27 OpenDup 2 1 0 0
28 OpenDup 3 1 0 0
29 OpenDup 4 1 0 0
30 Null 0 10 10 0 r[10..10]=NULL
31 Integer 1 11 0 0 r[11]=1
32 Explain 32 0 216 SCAN (subquery-2) 0
33 InitCoroutine 3 0 3 0
34 Yield 3 73 0 0 next row of
35 Copy 6 13 0 2 r[13]=r[6]
36 Copy 7 14 0 2 r[14]=r[7]
37 MakeRecord 13 2 15 0 r[15]=mkrec(r[13..14])
38 Compare 13 10 1 k(1,B) 0 r[13] <-> r[10]
39 Jump 40 42 40 0
40 Gosub 21 74 0 0 call flush_partition
41 Copy 13 10 0 0 r[10]=r[13]
42 NewRowid 2 16 0 0 r[16]=rowid
43 Insert 2 15 16 0 intkey=r[16] data=r[15]
44 Ne 11 53 16 0 if r[16]!=r[11] goto 53
45 Null 0 1 0 0 r[1]=NULL
46 Rewind 1 0 0 0
47 Rewind 4 0 0 0
48 Copy 14 17 0 0 r[17]=r[14]
49 Copy 17 18 0 0 r[18]=r[17]
50 Copy 17 19 0 0 r[19]=r[17]
51 Copy 17 20 0 0 r[20]=r[17]
52 Goto 0 72 0 0
53 Compare 17 14 1 k(1,B) 0 r[17] <-> r[14]
54 Jump 55 72 55 0
55 Copy 14 17 0 0 r[17]=r[14]
56 AggStep 0 22 1 count(0) 0 accum=r[1] step(r[22])
57 Next 4 59 0 0
58 Goto 0 63 0 0
59 Column 4 1 22 0 r[22]= cursor 4 column 1
60 Compare 20 22 1 k(1,B) 0 r[20] <-> r[22]
61 Jump 62 56 62 0
62 Copy 22 20 0 0 r[20]=r[22]
63 AggValue 1 0 2 count(0) 0 r[2]=value N=0
64 Gosub 12 95 0 0
65 Delete 1 0 0 2
66 Next 1 68 0 0
67 Goto 0 72 0 0
68 Column 1 1 22 0 r[22]= cursor 1 column 1
69 Compare 19 22 1 k(1,B) 0 r[19] <-> r[22]
70 Jump 71 64 71 0
71 Copy 22 19 0 0 r[19]=r[22]
72 Goto 0 34 0 0
73 Integer 93 21 0 0 r[21]=93
74 Rewind 2 92 0 0
75 AggStep 0 22 1 count(0) 0 accum=r[1] step(r[22])
76 Next 4 78 0 0
77 Goto 0 82 0 0
78 Column 4 1 22 0 r[22]= cursor 4 column 1
79 Compare 20 22 1 k(1,B) 0 r[20] <-> r[22]
80 Jump 81 75 81 0
81 Copy 22 20 0 0 r[20]=r[22]
82 AggValue 1 0 2 count(0) 0 r[2]=value N=0
83 Gosub 12 95 0 0
84 Delete 1 0 0 2
85 Next 1 87 0 0
86 Goto 0 92 0 0
87 Column 1 1 22 0 r[22]= cursor 1 column 1
88 Compare 19 22 1 k(1,B) 0 r[19] <-> r[22]
89 Jump 90 83 90 0
90 Copy 22 19 0 0 r[19]=r[22]
91 Goto 0 82 0 0
92 ResetSorter 1 0 0 0
93 Return 21 0 0 0
94 Goto 0 99 0 0
95 Noop 0 0 0 0 inner-loop subroutine
96 Copy 2 23 0 0 r[23]=r[2]
97 ResultRow 23 1 0 0 output=r[23]
98 Return 12 0 0 0 end inner-loop subroutine
99 Halt 0 0 0 0
100 Transaction 0 0 6 0 1 usesStmtJournal=0
101 Goto 0 1 0 0
1
1
1
QUERY PLAN
`--SCAN T
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 11 0 0 Start at 11
1 OpenRead 2 2 0 3 0 root=2 iDb=0; T
2 Explain 2 0 216 SCAN T 0
3 Rewind 2 10 0 0
4 Column 2 0 1 0 r[1]= cursor 2 column 0
5 Column 2 1 2 0 r[2]= cursor 2 column 1
6 Column 2 2 3 0 r[3]= cursor 2 column 2
7 RealAffinity 3 0 0 0
8 ResultRow 1 3 0 0 output=r[1..3]
9 Next 2 4 0 1
10 Halt 0 0 0 0
11 Transaction 0 0 6 0 1 usesStmtJournal=0
12 Goto 0 1 0 0
a|2.71828182845905|2.0
a|2|-3.0
b|1|4.5
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 3 0 0 Start at 3
1 AutoCommit 1 0 0 0
2 Halt 0 0 0 0
3 Goto 0 1 0 0
QUERY PLAN
|--SCAN T
`--SCAN T EXISTS
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 20 0 0 Start at 20
1 IfNot 1 19 1 0
2 OpenRead 0 2 0 3 0 root=2 iDb=0; T
3 OpenRead 1 2 0 3 0 root=2 iDb=0; T
4 Explain 4 0 216 SCAN T 0
5 Rewind 0 19 0 0
6 Explain 6 0 216 SCAN T EXISTS 0
7 Rewind 1 19 0 0
8 Column 1 2 2 0 r[2]= cursor 1 column 2
9 RealAffinity 2 0 0 0
10 Le 3 17 2 BINARY-8 80 if r[2]<=r[3] goto 17
11 Column 0 0 4 0 r[4]= cursor 0 column 0
12 Column 0 1 5 0 r[5]= cursor 0 column 1
13 Column 0 2 6 0 r[6]= cursor 0 column 2
14 RealAffinity 6 0 0 0
15 ResultRow 4 3 0 0 output=r[4..6]
16 Goto 0 18 0 0 EXISTS break
17 Next 1 8 0 1
18 Next 0 6 0 1
19 Halt 0 0 0 0
20 Transaction 0 0 6 0 1 usesStmtJournal=0
21 Integer 1 1 0 0 r[1]=1
22 Integer 0 3 0 0 r[3]=0
23 Goto 0 1 0 0
a|2.71828182845905|2.0
a|2|-3.0
b|1|4.5
```
## Flag
```
```
@@ -0,0 +1,243 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
SAVEPOINT sp2029;
-- PRAGMA foreign_key_check;
CREATE TABLE t1(a TEXT PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST(substr(NULL, 5114149768938225792, 1) AS TEXT), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
ROLLBACK TRANSACTION TO SAVEPOINT sp2029;
RELEASE SAVEPOINT sp2029;
SELECT COUNT(*) FILTER (WHERE a IS NOT NULL), SUM(rowid) FILTER (WHERE a > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(a) FILTER (WHERE a > 0 AND a < 100), COUNT(*) FILTER (WHERE typeof(a) = "text") FROM t1;
SAVEPOINT sp2029;
-- PRAGMA foreign_key_check;
CREATE TABLE t1(a TEXT PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
ROLLBACK TRANSACTION TO SAVEPOINT sp2029;
RELEASE SAVEPOINT sp2029;
SELECT COUNT(*) FILTER (WHERE a IS NOT NULL), SUM(rowid) FILTER (WHERE a > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(a) FILTER (WHERE a > 0 AND a < 100), COUNT(*) FILTER (WHERE typeof(a) = "text") FROM t1;
SAVEPOINT sp2029;
-- PRAGMA foreign_key_check;
CREATE TABLE t1(a TEXT PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
ROLLBACK TRANSACTION TO SAVEPOINT sp2029;
RELEASE SAVEPOINT sp2029;
SELECT COUNT(*) FILTER (WHERE a IS NOT NULL), SUM(rowid) FILTER (WHERE a > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(a) FILTER (WHERE a > 0 AND a < 100), COUNT(*) FILTER (WHERE typeof(a) = "text") FROM t1;
SAVEPOINT sp2029;
-- PRAGMA foreign_key_check;
CREATE TABLE t1(a TEXT PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
ROLLBACK TRANSACTION TO SAVEPOINT sp2029;
RELEASE SAVEPOINT sp2029;
SELECT COUNT(*) FILTER (WHERE a IS NOT NULL), SUM(rowid) FILTER (WHERE a > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(a) FILTER (WHERE a > 0 AND a < 100), COUNT(*) FILTER (WHERE typeof(a) = "text") FROM t1;
SAVEPOINT sp2029;
-- PRAGMA foreign_key_check;
CREATE TABLE t1(a TEXT PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
ROLLBACK TRANSACTION TO SAVEPOINT sp2029;
RELEASE SAVEPOINT sp2029;
SELECT COUNT(*) FILTER (WHERE a IS NOT NULL), SUM(rowid) FILTER (WHERE a > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(a) FILTER (WHERE a > 0 AND a < 100), COUNT(*) FILTER (WHERE typeof(a) = "text") FROM t1;
SAVEPOINT sp2029;
-- PRAGMA foreign_key_check;
CREATE TABLE t1(a TEXT PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
ROLLBACK TRANSACTION TO SAVEPOINT sp2029;
RELEASE SAVEPOINT sp2029;
SELECT COUNT(*) FILTER (WHERE a IS NOT NULL), SUM(rowid) FILTER (WHERE a > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(a) FILTER (WHERE a > 0 AND a < 100), COUNT(*) FILTER (WHERE typeof(a) = "text") FROM t1;
SAVEPOINT sp2029;
-- PRAGMA foreign_key_check;
CREATE TABLE t1(a TEXT PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
ROLLBACK TRANSACTION TO SAVEPOINT sp2029;
RELEASE SAVEPOINT sp2029;
SELECT COUNT(*) FILTER (WHERE a IS NOT NULL), SUM(rowid) FILTER (WHERE a > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(a) FILTER (WHERE a > 0 AND a < 100), COUNT(*) FILTER (WHERE typeof(a) = "text") FROM t1;
SAVEPOINT sp2029;
-- PRAGMA foreign_key_check;
CREATE TABLE t1(a TEXT PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
ROLLBACK TRANSACTION TO SAVEPOINT sp2029;
RELEASE SAVEPOINT sp2029;
SELECT COUNT(*) FILTER (WHERE a IS NOT NULL), SUM(rowid) FILTER (WHERE a > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(a) FILTER (WHERE a > 0 AND a < 100), COUNT(*) FILTER (WHERE typeof(a) = "text") FROM t1;
SAVEPOINT sp2029;
-- PRAGMA foreign_key_check;
CREATE TABLE t1(a TEXT PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
ROLLBACK TRANSACTION TO SAVEPOINT sp2029;
RELEASE SAVEPOINT sp2029;
SELECT COUNT(*) FILTER (WHERE a IS NOT NULL), SUM(rowid) FILTER (WHERE a > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(a) FILTER (WHERE a > 0 AND a < 100), COUNT(*) FILTER (WHERE typeof(a) = "text") FROM t1;
INSERT INTO t1 DEFAULT VALUES;
INSERT INTO t1 VALUES (1, 1, 1, NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
SELECT LAG(c, 0) OVER (ORDER BY c ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1;
ANALYZE t1;
UPDATE t1 SET c = CURRENT_TIMESTAMP WHERE 1;
```
## Actual output
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
Braun|30|3
Wernher|10|1
von|20|2
Braun|30
Wernher|10
von|20
```
## Expectation
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
Braun|30|3
Wernher|10|1
von|20|2
Braun|30
Wernher|10
von|20
```
## Flag
```
```
@@ -0,0 +1,236 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
BEGIN DEFERRED TRANSACTION;
.timeout concat(999999, NULL, 999999)
.once log.txt
SAVEPOINT sp895;
PRAGMA reverse_unordered_selects;
PRAGMA reverse_unordered_selects = YES;
PRAGMA cache_spill;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
.changes on
PRAGMA page_size='false';
CREATE TABLE /* PRAGMA max_page_count = 5000000; */ t1(a INT PRIMARY KEY, b BLOB, c INT) WITHOUT ROWID;
WITH RECURSIVE c(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM c WHERE NOT NOT (NOT x<100) INSERT INTO t1(a,b,c) SELECT x*2, zeroblob(100), x FROM c) ;
UPDATE t1 SET b=zeroblob(1000) WHERE a=198;
CREATE TABLE t2(x INTEGER PRIMARY KEY, y INT);
CREATE TABLE T (
A VARCHAR(20),
B VARCHAR(10),
C INTEGER,
PRIMARY KEY (A, B)
);
INSERT INTO T VALUES ('a', 'p', -2147483648);
INSERT INTO T VALUES ('b', 'q', 100);
INSERT INTO T VALUES ('b', 'r', 200);
INSERT INTO T VALUES ('c', 's', 300);
INSERT INTO T VALUES ('d', 't', 2147483647);
INSERT INTO T VALUES ('b', 't', 50);
SELECT A, COUNT(*) AS D, SUM(C) AS E FROM T GROUP BY A HAVING COUNT(*) > 1;
INSERT INTO t2(y) VALUES(198),(187),(100);
SELECT y, c FROM t2 LEFT JOIN t1 ON y=a ORDER BY x;
SELECT y, c FROM t1 RIGHT JOIN t2 ON y=a ORDER BY x;
SELECT * FROM t1 NATURAL JOIN t1;
DROP INDEX IF EXISTS t2;
SELECT COUNT(*) FROM t2;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t2_5905 ON t2((y + 1));
CREATE UNIQUE INDEX IF NOT EXISTS idx_t2_7184 ON t2((x + 1)) WHERE x > 0;
VACUUM;
CREATE TABLE T (
a TEXT,
b REAL
);
INSERT INTO T VALUES ('a',100.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;
ANALYZE T;
RELEASE sp895;
ALTER TABLE T RENAME TO T_r129;
SELECT STRING_AGG(B) FROM T;
WITH cte AS (SELECT B, COUNT(*) AS cnt FROM T GROUP BY B) SELECT * FROM cte;
INSERT INTO t2 SELECT * FROM t2;
SELECT * FROM T NATURAL JOIN t2;
SELECT COUNT(*) FROM t1;
ALTER TABLE t2 RENAME TO t2_r2071;
.once log.txt
SAVEPOINT sp895;
PRAGMA reverse_unordered_selects;
PRAGMA reverse_unordered_selects = YES;
PRAGMA cache_spill;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
.changes on
PRAGMA page_size='false';
CREATE TABLE /* PRAGMA max_page_count = 5000000; */ t1(a INT PRIMARY KEY, b BLOB, c INT) WITHOUT ROWID;
WITH RECURSIVE c(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM c WHERE NOT NOT (NOT x<100) INSERT INTO t1(a,b,c) SELECT x*2, zeroblob(100), x FROM c) ;
UPDATE t1 SET b=zeroblob(1000) WHERE a=198;
CREATE TABLE t2(x INTEGER PRIMARY KEY, y INT);
CREATE TABLE T (
A VARCHAR(20),
B VARCHAR(10),
C INTEGER,
PRIMARY KEY (A, B)
);
INSERT INTO T VALUES ('a', 'p', -2147483648);
INSERT INTO T VALUES ('b', 'q', 100);
INSERT INTO T VALUES ('b', 'r', 200);
INSERT INTO T VALUES ('c', 's', 300);
INSERT INTO T VALUES ('d', 't', 2147483647);
INSERT INTO T VALUES ('b', 't', 50);
SELECT A, COUNT(*) AS D, SUM(C) AS E FROM T GROUP BY A HAVING COUNT(*) > 1;
INSERT INTO t2(y) VALUES(198),(187),(100);
SELECT y, c FROM t2 LEFT JOIN t1 ON y=a ORDER BY x;
SELECT y, c FROM t1 RIGHT JOIN t2 ON y=a ORDER BY x;
SELECT * FROM t1 NATURAL JOIN t1;
DROP INDEX IF EXISTS t2;
SELECT COUNT(*) FROM t2;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t2_5905 ON t2((y + 1));
CREATE UNIQUE INDEX IF NOT EXISTS idx_t2_7184 ON t2((x + 1)) WHERE x > 0;
VACUUM;
CREATE TABLE T (
a TEXT,
b REAL
);
INSERT INTO T VALUES ('a',100.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;
ANALYZE T;
RELEASE sp895;
ALTER TABLE T RENAME TO T_r129;
SELECT STRING_AGG(B) FROM T;
WITH cte AS (SELECT B, COUNT(*) AS cnt FROM T GROUP BY B) SELECT * FROM cte;
INSERT INTO t2 SELECT * FROM t2;
SELECT * FROM T NATURAL JOIN t2;
SELECT COUNT(*) FROM t1;
ALTER TABLE t2 RENAME TO t2_r2071;
.once log.txt
SAVEPOINT sp895;
PRAGMA reverse_unordered_selects;
PRAGMA reverse_unordered_selects = YES;
PRAGMA cache_spill;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
.changes on
PRAGMA page_size='false';
CREATE TABLE /* PRAGMA max_page_count = 5000000; */ t1(a INT PRIMARY KEY, b BLOB, c INT) WITHOUT ROWID;
WITH RECURSIVE c(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM c WHERE NOT NOT (NOT x<100) INSERT INTO t1(a,b,c) SELECT x*2, zeroblob(100), x FROM c) ;
UPDATE t1 SET b=zeroblob(1000) WHERE a=198;
CREATE TABLE t2(x INTEGER PRIMARY KEY, y INT);
CREATE TABLE T (
A VARCHAR(20),
B VARCHAR(10),
C INTEGER,
PRIMARY KEY (A, B)
);
INSERT INTO T VALUES ('a', 'p', -2147483648);
INSERT INTO T VALUES ('b', 'q', 100);
INSERT INTO T VALUES ('b', 'r', 200);
INSERT INTO T VALUES ('c', 's', 300);
INSERT INTO T VALUES ('d', 't', 2147483647);
INSERT INTO T VALUES ('b', 't', 50);
SELECT A, COUNT(*) AS D, SUM(C) AS E FROM T GROUP BY A HAVING COUNT(*) > 1;
INSERT INTO t2(y) VALUES(198),(187),(100);
SELECT y, c FROM t2 LEFT JOIN t1 ON y=a ORDER BY x;
SELECT y, c FROM t1 RIGHT JOIN t2 ON y=a ORDER BY x;
SELECT * FROM t1 NATURAL JOIN t1;
DROP INDEX IF EXISTS t2;
SELECT COUNT(*) FROM t2;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t2_5905 ON t2((y + 1));
CREATE UNIQUE INDEX IF NOT EXISTS idx_t2_7184 ON t2((x + 1)) WHERE x > 0;
VACUUM;
CREATE TABLE T (
a TEXT,
b REAL
);
INSERT INTO T VALUES ('a',100.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;
ANALYZE T;
RELEASE sp895;
ALTER TABLE T RENAME TO T_r129;
SELECT STRING_AGG(B) FROM T;
WITH cte AS (SELECT B, COUNT(*) AS cnt FROM T GROUP BY B) SELECT * FROM cte;
INSERT INTO t2 SELECT * FROM t2;
SELECT * FROM T NATURAL JOIN t2;
SELECT COUNT(*) FROM t1;
ALTER TABLE t2 RENAME TO t2_r2071;
REINDEX t2;
SELECT a FROM T EXCEPT SELECT a FROM (SELECT * FROM T) AS sub;
ALTER TABLE t2 RENAME TO t2_r5083;
COMMIT;
```
## Actual output
```sql
0
483
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
von|20|2
Wernher|10|1
Braun|30|3
Braun|30
Wernher|10
von|20
```
## Expectation
```sql
0
483
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
von|20|2
Wernher|10|1
Braun|30|3
Braun|30
Wernher|10
von|20
```
## Flag
```
```
@@ -0,0 +1,70 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
.limit
BEGIN EXCLUSIVE TRANSACTION;
PRAGMA case_sensitive_like = 0;
PRAGMA encoding = 'UTF-8';
PRAGMA case_sensitive_like = TRUE;
.progress
CREATE TABLE t1(x);
INSERT INTO t1 VALUES(99);
SELECT sum((SELECT 1 FROM (SELECT 2 WHERE x IS NULL) WHERE 0)) FROM t1;
COMMIT TRANSACTION;
```
## Actual output
```sql
length 1000000000
sql_length 1000000000
column 2000
expr_depth 1000
compound_select 500
vdbe_op 250000000
function_arg 127
attached 10
like_pattern_length 50000
variable_number 32766
trigger_depth 1000
worker_threads 0
+---------------------------------------------------------+
| sum((SELECT 1 FROM (SELECT 2 WHERE x IS NULL) WHERE 0)) |
+---------------------------------------------------------+
| |
+---------------------------------------------------------+
```
## Expectation
```sql
length 1000000000
sql_length 1000000000
column 2000
expr_depth 1000
compound_select 500
vdbe_op 250000000
function_arg 1000
attached 10
like_pattern_length 50000
variable_number 32766
trigger_depth 1000
worker_threads 0
+---------------------------------------------------------+
| sum((SELECT 1 FROM (SELECT 2 WHERE x IS NULL) WHERE 0)) |
+---------------------------------------------------------+
| |
+---------------------------------------------------------+
```
## Flag
```
-table
```
@@ -0,0 +1,455 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
.echo on
.stats stmt
PRAGMA optimize;
PRAGMA journal_mode = 'MEMORY';
BEGIN EXCLUSIVE;
SAVEPOINT sp8818;
SAVEPOINT sp9957;
.exit -(pi() + acos(1.7976931348623157e+308))
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
CREATE TABLE T (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15) NOT NULL,
C INTEGER,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', -2147483648);
INSERT INTO T VALUES ('b', 'q', 700);
INSERT INTO T VALUES ('c', 'r', 0);
INSERT INTO T VALUES ('d', 's', 2147483647);
INSERT INTO T VALUES ('e', 't', -1);
INSERT INTO T VALUES ('f', 'u', 1);
SELECT * FROM T WHERE NOT C BETWEEN -1000 AND 1000 ORDER BY C ASC;
DROP TABLE t0;
PRAGMA temp_store = '2';
PRAGMA fullsync = FALSE;
PRAGMA read_uncommitted = round(9223372036854775807);
.cd bugs
CREATE TABLE customer (id UNSIGNED BIG INT PRIMARY KEY);
CREATE TABLE apr (id INT PRIMARY KEY, apr REAL);
CREATE VIEW v1 AS SELECT c.id, i.apr FROM customer c LEFT JOIN apr i ON i.id=c.id;
CREATE VIEW v1rj AS SELECT c.id, i.apr FROM apr i RIGHT JOIN customer c ON i.id=c.id;
CREATE VIEW v2 AS SELECT c.id, v1.apr FROM customer c LEFT JOIN v1 ON v1.id=c.id;
CREATE VIEW v2rj AS SELECT c.id, v1.apr FROM v1 RIGHT JOIN customer c ON v1.id=c.id;
CREATE VIEW v2rjrj AS SELECT c.id, v1rj.apr FROM v1rj RIGHT JOIN customer c ON v1rj.id=c.id;
INSERT INTO customer (id) VALUES (1);
INSERT INTO apr (id, apr) VALUES (1, 12);
INSERT INTO customer (id) VALUES (2);
INSERT INTO apr (id, apr) VALUES (2, 12.01);
PRAGMA automatic_index=ON;
SELECT id, (apr / 100), typeof(apr) apr_type FROM v1;
SELECT * FROM customer WHERE id IN (SELECT id FROM customer LIMIT 0);
SELECT * FROM (SELECT * FROM customer) AS sub;
SELECT * FROM apr WHERE EXISTS (SELECT 1 FROM apr WHERE EXISTS (SELECT 1 FROM apr));
CREATE TRIGGER IF NOT EXISTS trg_customer_998 AFTER DELETE ON customer BEGIN INSERT INTO customer(id) VALUES (NULL); END;
SELECT * FROM customer WHERE id <> ANY (SELECT id FROM customer);
SELECT * FROM apr WHERE EXISTS (SELECT 1 FROM apr t2 WHERE t2.id = apr.id);
INSERT OR REPLACE INTO customer VALUES (NULL);
SELECT COUNT(*) FILTER (WHERE apr IS NOT NULL), SUM(rowid) FILTER (WHERE apr > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(apr) FILTER (WHERE apr > 0 AND apr < 100), COUNT(*) FILTER (WHERE typeof(apr) = "text") FROM apr;
UPDATE customer SET id = 52 WHERE rowid = 1;
INSERT INTO apr DEFAULT VALUES;
UPDATE apr SET id = CURRENT_TIMESTAMP;
ROLLBACK TRANSACTION TO SAVEPOINT sp9957;
RELEASE SAVEPOINT sp9957;
WITH cte AS (SELECT * FROM customer) SELECT * FROM cte;
INSERT INTO customer VALUES ('x') ON CONFLICT(id) DO UPDATE SET id = excluded.id;
SELECT * FROM customer;
SELECT STRING_AGG(id) FROM customer;
ROLLBACK TRANSACTION TO SAVEPOINT sp8818;
RELEASE SAVEPOINT sp8818;
SELECT COUNT(*) FILTER (WHERE apr IS NOT NULL), SUM(rowid) FILTER (WHERE apr > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(apr) FILTER (WHERE apr > 0 AND apr < 100), COUNT(*) FILTER (WHERE typeof(apr) = "text") FROM apr;
ANALYZE customer;
DELETE FROM customer WHERE rowid = 55 RETURNING *;
COMMIT;
INSERT INTO apr VALUES (NULL, NULL);
REINDEX;
INSERT INTO apr VALUES (NULL, NULL);
ANALYZE;
CREATE TABLE T (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15) NOT NULL,
C INTEGER,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', -2147483648);
INSERT INTO T VALUES ('b', 'q', 700);
INSERT INTO T VALUES ('c', 'r', 0);
INSERT INTO T VALUES ('d', 's', 2147483647);
INSERT INTO T VALUES ('e', 't', -1);
INSERT INTO T VALUES ('f', 'u', 1);
SELECT * FROM T WHERE C BETWEEN -1000 AND 1000 ORDER BY C ASC;
INSERT INTO apr VALUES (1, 'x') ON CONFLICT(id) DO UPDATE SET id = excluded.id, apr = excluded.apr;
INSERT INTO T DEFAULT VALUES;
WITH a AS (SELECT id FROM customer), b AS (SELECT COUNT(*) AS cnt FROM a) SELECT * FROM b;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_651 ON T(A COLLATE NOCASE) WHERE A > 0;
ANALYZE;
CREATE TEMPORARY VIEW IF NOT EXISTS v_customer_2839 AS SELECT id FROM customer;
SELECT * FROM T CROSS JOIN customer;
SELECT * FROM apr;
INSERT OR FAIL INTO customer VALUES (NULL);
SELECT * FROM customer AS a FULL OUTER JOIN customer AS b ON a.rowid = b.rowid;
SELECT COUNT(*) FILTER (WHERE id IS NOT NULL), SUM(rowid) FILTER (WHERE id > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(id) FILTER (WHERE id > 0 AND id < 100), COUNT(*) FILTER (WHERE typeof(id) = "text") FROM apr;
SELECT * FROM customer;
```
## Actual output
```sql
.stats stmt
PRAGMA optimize;
Number of output columns: 1
Column 0 name: optimize
Column 0 declared type: (null)
Memory Used: 67720 (max 67720) bytes
Number of Outstanding Allocations: 141 (max 141)
Number of Pcache Overflow Bytes: 8464 (max 8464) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4360 bytes
Lookaside Slots Used: 37 (max 75)
Successful lookaside attempts: 86
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 9248 bytes
Page cache hits: 1
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Schema Heap Usage: 736 bytes
Statement Heap/Lookaside Usage: 2784 bytes
Fullscan Steps: 0
Sort Operations: 0
Autoindex Inserts: 0
Virtual Machine Steps: 6
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 2784
Bytes received by read(): 10409
Bytes sent to write(): 12
Read() system calls: 13
Write() system calls: 1
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
PRAGMA journal_mode = 'MEMORY';
memory
Number of output columns: 1
Column 0 name: journal_mode
Column 0 declared type: (null)
Memory Used: 67720 (max 67760) bytes
Number of Outstanding Allocations: 141 (max 142)
Number of Pcache Overflow Bytes: 8464 (max 8464) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4360 bytes
Lookaside Slots Used: 36 (max 75)
Successful lookaside attempts: 92
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 9248 bytes
Page cache hits: 0
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Schema Heap Usage: 736 bytes
Statement Heap/Lookaside Usage: 2656 bytes
Fullscan Steps: 0
Sort Operations: 0
Autoindex Inserts: 0
Virtual Machine Steps: 5
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 2656
Bytes received by read(): 10505
Bytes sent to write(): 1447
Read() system calls: 15
Write() system calls: 2
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
BEGIN EXCLUSIVE;
Number of output columns: 0
Memory Used: 69272 (max 69272) bytes
Number of Outstanding Allocations: 143 (max 143)
Number of Pcache Overflow Bytes: 8464 (max 8464) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4360 bytes
Lookaside Slots Used: 35 (max 75)
Successful lookaside attempts: 95
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 9248 bytes
Page cache hits: 1
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Schema Heap Usage: 736 bytes
Statement Heap/Lookaside Usage: 2528 bytes
Fullscan Steps: 0
Sort Operations: 0
Autoindex Inserts: 0
Virtual Machine Steps: 4
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 2528
Bytes received by read(): 10859
Bytes sent to write(): 2910
Read() system calls: 18
Write() system calls: 3
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
SAVEPOINT sp8818;
Number of output columns: 0
Memory Used: 69272 (max 69272) bytes
Number of Outstanding Allocations: 143 (max 143)
Number of Pcache Overflow Bytes: 8464 (max 8464) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4360 bytes
Lookaside Slots Used: 37 (max 75)
Successful lookaside attempts: 100
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 9248 bytes
Page cache hits: 0
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Schema Heap Usage: 736 bytes
Statement Heap/Lookaside Usage: 2656 bytes
Fullscan Steps: 0
Sort Operations: 0
Autoindex Inserts: 0
Virtual Machine Steps: 3
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 2656
Bytes received by read(): 10957
Bytes sent to write(): 4257
Read() system calls: 20
Write() system calls: 4
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
SAVEPOINT sp9957;
Number of output columns: 0
Memory Used: 69272 (max 69272) bytes
Number of Outstanding Allocations: 143 (max 143)
Number of Pcache Overflow Bytes: 8464 (max 8464) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4360 bytes
Lookaside Slots Used: 38 (max 75)
Successful lookaside attempts: 105
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 9248 bytes
Page cache hits: 0
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Schema Heap Usage: 736 bytes
Statement Heap/Lookaside Usage: 2656 bytes
Fullscan Steps: 0
Sort Operations: 0
Autoindex Inserts: 0
Virtual Machine Steps: 3
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 2656
Bytes received by read(): 11055
Bytes sent to write(): 5606
Read() system calls: 22
Write() system calls: 5
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
.exit -(pi() + acos(1.7976931348623157e+308))
```
## Expectation
```sql
.stats stmt
PRAGMA optimize;
Number of output columns: 1
Column 0 name: optimize
Column 0 declared type: (null)
Memory Used: 68416 (max 68416) bytes
Number of Outstanding Allocations: 151 (max 151)
Number of Pcache Overflow Bytes: 8472 (max 8472) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4368 bytes
Lookaside Slots Used: 53 (max 86)
Successful lookaside attempts: 97
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 9256 bytes
Page cache hits: 1
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Temporary data spilled to disk: 0
Schema Heap Usage: 632 bytes
Statement Heap/Lookaside Usage: 2784 bytes
Fullscan Steps: 0
Sort Operations: 0
Autoindex Inserts: 0
Virtual Machine Steps: 6
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 2784
Bytes received by read(): 11185
Bytes sent to write(): 29
Read() system calls: 14
Write() system calls: 2
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
PRAGMA journal_mode = 'MEMORY';
memory
Number of output columns: 1
Column 0 name: journal_mode
Column 0 declared type: (null)
Memory Used: 68416 (max 68448) bytes
Number of Outstanding Allocations: 151 (max 152)
Number of Pcache Overflow Bytes: 8472 (max 8472) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4368 bytes
Lookaside Slots Used: 52 (max 86)
Successful lookaside attempts: 103
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 9256 bytes
Page cache hits: 0
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Temporary data spilled to disk: 0
Schema Heap Usage: 632 bytes
Statement Heap/Lookaside Usage: 2656 bytes
Fullscan Steps: 0
Sort Operations: 0
Autoindex Inserts: 0
Virtual Machine Steps: 6
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 2656
Bytes received by read(): 11281
Bytes sent to write(): 1518
Read() system calls: 16
Write() system calls: 4
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
BEGIN EXCLUSIVE;
Number of output columns: 0
Memory Used: 69952 (max 69952) bytes
Number of Outstanding Allocations: 153 (max 153)
Number of Pcache Overflow Bytes: 8472 (max 8472) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4368 bytes
Lookaside Slots Used: 51 (max 86)
Successful lookaside attempts: 106
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 9256 bytes
Page cache hits: 1
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Temporary data spilled to disk: 0
Schema Heap Usage: 632 bytes
Statement Heap/Lookaside Usage: 2528 bytes
Fullscan Steps: 0
Sort Operations: 0
Autoindex Inserts: 0
Virtual Machine Steps: 5
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 2528
Bytes received by read(): 11379
Bytes sent to write(): 3006
Read() system calls: 18
Write() system calls: 6
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
SAVEPOINT sp8818;
Number of output columns: 0
Memory Used: 69952 (max 69952) bytes
Number of Outstanding Allocations: 153 (max 153)
Number of Pcache Overflow Bytes: 8472 (max 8472) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4368 bytes
Lookaside Slots Used: 53 (max 86)
Successful lookaside attempts: 111
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 9256 bytes
Page cache hits: 0
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Temporary data spilled to disk: 0
Schema Heap Usage: 632 bytes
Statement Heap/Lookaside Usage: 2656 bytes
Fullscan Steps: 0
Sort Operations: 0
Autoindex Inserts: 0
Virtual Machine Steps: 4
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 2656
Bytes received by read(): 11477
Bytes sent to write(): 4394
Read() system calls: 20
Write() system calls: 8
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
SAVEPOINT sp9957;
Number of output columns: 0
Memory Used: 69952 (max 69952) bytes
Number of Outstanding Allocations: 153 (max 153)
Number of Pcache Overflow Bytes: 8472 (max 8472) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4368 bytes
Lookaside Slots Used: 54 (max 86)
Successful lookaside attempts: 116
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 9256 bytes
Page cache hits: 0
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Temporary data spilled to disk: 0
Schema Heap Usage: 632 bytes
Statement Heap/Lookaside Usage: 2656 bytes
Fullscan Steps: 0
Sort Operations: 0
Autoindex Inserts: 0
Virtual Machine Steps: 4
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 2656
Bytes received by read(): 11575
Bytes sent to write(): 5782
Read() system calls: 22
Write() system calls: 10
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
.exit -(pi() + acos(1.7976931348623157e+308))
```
## Flag
```
```
@@ -0,0 +1,149 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
PRAGMA auto_vacuum = 2;
.timer on
PRAGMA defer_foreign_keys = FALSE;
BEGIN DEFERRED TRANSACTION;
-- glob('[!0-9]', 'a')
ATTACH DATABASE (':memory:' || '') AS aux25;
-- sqlite_compileoption_used({v})
-- NOCASE
CREATE VIRTUAL TABLE t0 USING /**/ fts4("x", "y", "z");
DROP TABLE t0;
DETACH DATABASE aux25;
END TRANSACTION;
PRAGMA defer_foreign_keys = FALSE;
BEGIN DEFERRED TRANSACTION;
-- glob('[!0-9]', 'a')
ATTACH DATABASE (':memory:' || '') AS aux25;
-- sqlite_compileoption_used({v})
-- NOCASE
CREATE VIRTUAL TABLE t0 USING /**/ fts4("x", "y", "z");
DROP TABLE t0;
DETACH DATABASE aux25;
END TRANSACTION;
PRAGMA defer_foreign_keys = FALSE;
BEGIN DEFERRED TRANSACTION;
-- glob('[!0-9]', 'a')
ATTACH DATABASE (':memory:' || '') AS aux25;
-- sqlite_compileoption_used({v})
-- NOCASE
CREATE VIRTUAL TABLE t0 USING /**/ fts4("x", "y", "z");
DROP TABLE t0;
DETACH DATABASE aux25;
END TRANSACTION;
CREATE TABLE T1 (
a INTEGER,
b TEXT
);
CREATE TABLE T2 (
a INTEGER,
b TEXT
);
INSERT INTO T1 VALUES (-(-(1)),'a'),(2,'b');
INSERT INTO T2 VALUES (1,'c'),(1,'d');
SELECT T1.b,
(
SELECT GROUP_CONCAT(b,',')
FROM T2
WHERE T2.a=T1.a
) AS c
FROM T1;
SELECT * FROM T1 WHERE (a, a) IN (SELECT a, a FROM T1);
ALTER TABLE T2 DROP COLUMN b;
```
## Actual output
```sql
Run Time: real 0.000 user 0.000017 sys 0.000000
Run Time: real 0.000 user 0.000003 sys 0.000000
Run Time: real 0.000 user 0.000052 sys 0.000000
Run Time: real 0.000 user 0.000516 sys 0.000000
Run Time: real 0.001 user 0.000340 sys 0.000000
Run Time: real 0.000 user 0.000008 sys 0.000000
Run Time: real 0.000 user 0.000007 sys 0.000000
Run Time: real 0.000 user 0.000004 sys 0.000000
Run Time: real 0.000 user 0.000002 sys 0.000000
Run Time: real 0.000 user 0.000040 sys 0.000000
Run Time: real 0.000 user 0.000393 sys 0.000000
Run Time: real 0.000 user 0.000243 sys 0.000000
Run Time: real 0.000 user 0.000006 sys 0.000000
Run Time: real 0.000 user 0.000005 sys 0.000000
Run Time: real 0.000 user 0.000003 sys 0.000000
Run Time: real 0.000 user 0.000002 sys 0.000000
Run Time: real 0.001 user 0.000032 sys 0.000000
Run Time: real 0.000 user 0.000369 sys 0.000000
Run Time: real 0.000 user 0.000257 sys 0.000000
Run Time: real 0.000 user 0.000006 sys 0.000000
Run Time: real 0.000 user 0.000021 sys 0.000000
Run Time: real 0.000 user 0.000140 sys 0.000000
Run Time: real 0.000 user 0.000065 sys 0.000000
Run Time: real 0.000 user 0.000030 sys 0.000000
Run Time: real 0.000 user 0.000012 sys 0.000000
a|c,d
b|
Run Time: real 0.000 user 0.000062 sys 0.000000
1|a
2|b
Run Time: real 0.000 user 0.000055 sys 0.000000
Run Time: real 0.001 user 0.000580 sys 0.000000
```
## Expectation
```sql
Run Time: real 0.000003 user 0.000017 sys 0.000000
Run Time: real 0.000002 user 0.000002 sys 0.000000
Run Time: real 0.000036 user 0.000036 sys 0.000000
Run Time: real 0.000316 user 0.000317 sys 0.000000
Run Time: real 0.000221 user 0.000222 sys 0.000000
Run Time: real 0.000006 user 0.000006 sys 0.000000
Run Time: real 0.000004 user 0.000004 sys 0.000000
Run Time: real 0.000002 user 0.000003 sys 0.000000
Run Time: real 0.000002 user 0.000002 sys 0.000000
Run Time: real 0.000023 user 0.000024 sys 0.000000
Run Time: real 0.000195 user 0.000196 sys 0.000000
Run Time: real 0.000135 user 0.000135 sys 0.000000
Run Time: real 0.000003 user 0.000004 sys 0.000000
Run Time: real 0.000002 user 0.000003 sys 0.000000
Run Time: real 0.000002 user 0.000002 sys 0.000000
Run Time: real 0.000001 user 0.000001 sys 0.000000
Run Time: real 0.000014 user 0.000015 sys 0.000000
Run Time: real 0.000166 user 0.000167 sys 0.000000
Run Time: real 0.000111 user 0.000112 sys 0.000000
Run Time: real 0.000002 user 0.000002 sys 0.000000
Run Time: real 0.000002 user 0.000002 sys 0.000000
Run Time: real 0.000026 user 0.000027 sys 0.000000
Run Time: real 0.000022 user 0.000022 sys 0.000000
Run Time: real 0.000015 user 0.000016 sys 0.000000
Run Time: real 0.000007 user 0.000007 sys 0.000000
a|c,d
b|
Run Time: real 0.000034 user 0.000035 sys 0.000000
1|a
2|b
Run Time: real 0.000035 user 0.000035 sys 0.000000
Run Time: real 0.000292 user 0.000293 sys 0.000000
```
## Flag
```
```
@@ -0,0 +1,52 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
.stats
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
VACUUM main;
```
## Actual output
```sql
Memory Used: 0 (max 64) bytes
Number of Outstanding Allocations: 0 (max 2)
Number of Pcache Overflow Bytes: 0 (max 0) bytes
Largest Allocation: 40 bytes
Largest Pcache Allocation: 0 bytes
Bytes received by read(): 6398
Bytes sent to write(): 0
Read() system calls: 13
Write() system calls: 0
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
```
## Expectation
```sql
Memory Used: 0 (max 56) bytes
Number of Outstanding Allocations: 0 (max 2)
Number of Pcache Overflow Bytes: 0 (max 0) bytes
Largest Allocation: 40 bytes
Largest Pcache Allocation: 0 bytes
Bytes received by read(): 7174
Bytes sent to write(): 0
Read() system calls: 14
Write() system calls: 0
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
```
## Flag
```
```
@@ -0,0 +1,61 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
CREATE TABLE aa(a);
CREATE TABLE bb(b);
INSERT INTO aa VALUES(json_valid(1, 2));
INSERT INTO aa VALUES(3);
INSERT INTO bb VALUES(2);
INSERT INTO bb VALUES(4);
SELECT * FROM aa, bb WHERE max(a,b)>2;
INSERT INTO bb VALUES(0);
SELECT * FROM aa CROSS JOIN bb WHERE b;
SELECT * FROM aa, bb WHERE NOT min(a,b);
SELECT * FROM aa, bb WHERE CASE WHEN a=b-1 THEN 0 ELSE 1 END;
DELETE FROM bb WHERE b IS NULL RETURNING *;
CREATE TABLE T1 (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15) UNIQUE,
C INTEGER
);
CREATE TABLE T2 (
X VARCHAR(20) PRIMARY KEY,
A VARCHAR(10) NOT NULL UNIQUE,
FOREIGN KEY (A) REFERENCES T1(A)
);
INSERT INTO T1 VALUES (('a' || ''), 'p', -2147483648);
INSERT INTO T1 VALUES ('b', 'q', 2147483647);
INSERT INTO T2 VALUES ('m', 'a');
INSERT INTO T2 VALUES ('n', 'b');
SELECT T2.X, T1.B, T1.C FROM T2, T1 WHERE T2.A = T1.A AND T1.C >= 0;
```
## Actual output
```sql
3|2
3|4
3|2
3|4
3|0
3|2
3|0
n|q|2147483647
```
## Expectation
```sql
```
## Flag
```
```
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,58 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
.fullschema
CREATE TABLE T (
a TEXT,
b TEXT,
c REAL
);
INSERT INTO T VALUES ('a','b',x'682f554feb092cde0c4f302c570051'), ('a','c',-(-((mod(json_extract(5.0, '$.key'), 5.0) - 0)))), ('b','d',-8.25);
SELECT a,b,c,
RANK() OVER (PARTITION BY a ORDER BY c DESC) AS d FROM T;
INSERT INTO T SELECT * FROM T;
ALTER TABLE T DROP COLUMN a; /* pi() */ WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x>=83) SELECT MAX(x) FROM cnt;
WITH cte AS (SELECT * FROM T) SELECT * FROM cte;
```
## Actual output
```sql
/* No STAT tables available */
a|b|h/UOë ,Þ O0,W|1
a|c||2
b|d|-8.25|1
1
b|h/UOë ,Þ O0,W
c|
d|-8.25
b|h/UOë ,Þ O0,W
c|
d|-8.25
```
## Expectation
```sql
/* No STAT tables available */
a|b|h/UOë ,Þ^LO0,W|1
a|c||2
b|d|-8.25|1
1
b|h/UOë ,Þ^LO0,W
c|
d|-8.25
b|h/UOë ,Þ^LO0,W
c|
d|-8.25
```
## Flag
```
```
@@ -0,0 +1,647 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
.separator >_<
ATTACH DATABASE ':memory:' AS aux57;
ATTACH DATABASE ':memory:' AS aux7;
PRAGMA fullsync = OFF;
ATTACH DATABASE (':memory:' || '') AS aux91;
BEGIN EXCLUSIVE TRANSACTION;
.exit
((PRAGMA)) fullsync = YES;
SAVEPOINT sp2455;
ATTACH DATABASE (':memory:' || '') AS aux23;
PRAGMA wal_checkpoint('PASSIVE');
PRAGMA /* LEFT JOIN */ trusted_schema = ON;
PRAGMA parser_trace = YES;
.separator >_<
CREATE TABLE T1 (
A VARCHAR(json_array(nan, round(power(-(-(604050853143826937)), 604050853143826937), 2))),
X VARCHAR(10),
PRIMARY KEY (A, X)
);
CREATE TABLE main."T2" (
A VARCHAR(20),
Y VARCHAR(10),
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO /**/ T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 EXCEPT SELECT A /**/ FROM T2;
ANALYZE;
DETACH DATABASE aux23;
PRAGMA index_info(idx1);
INSERT INTO T2 DEFAULT VALUES;
CREATE VIEW IF NOT EXISTS v_T2_4813 AS SELECT A FROM T2;
INSERT INTO T1 DEFAULT VALUES;
RELEASE sp2455;
CREATE TRIGGER IF NOT EXISTS trg_T2_2918 AFTER INSERT ON T2 BEGIN SELECT RAISE(IGNORE); END;
WITH cte AS (SELECT * FROM T1 ORDER BY X LIMIT 5) SELECT * FROM cte;
SELECT 0x0ACB29BM205381;
SELECT sqlite_compileoption_used('我的天你是怎么了');
SELECT 1 >> -999999999999999999999999999;
SELECT sqlite_compileoption_get($1);
SELECT sqlite_version();
WITH cte(a, b) AS (SELECT X, X FROM T1) SELECT a, b FROM cte;
INSERT INTO T1 VALUES (NULL, NULL) ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
UPDATE T2 SET Y = Y + 1 RETURNING *;
ANALYZE T1;
DELETE FROM T1 WHERE NOT NOT (NOT NOT (NOT NOT (NOT NOT (rowid = 69)))) RETURNING *;
ANALYZE;
END TRANSACTION;
SELECT COUNT(*) FILTER (WHERE A IS NOT NULL), SUM(rowid) FILTER (WHERE +A > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(A) FILTER (WHERE A > 0 OR A < 100), COUNT(*) FILTER (WHERE typeof(A) = "text") FROM T2;
INSERT INTO T2 DEFAULT VALUES;
REINDEX T1;
WITH cte AS (SELECT DISTINCT A FROM T2) SELECT * FROM cte;
ANALYZE;
INSERT INTO T1 SELECT * FROM T1;
CREATE TEMP VIEW IF NOT EXISTS v_T2_6929 AS SELECT A FROM T2;
REINDEX;
SELECT NTH_VALUE(X, 2) OVER (PARTITION BY X ORDER BY X RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T1;
DETACH DATABASE aux91;
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (1,1.5), (2,-2.5), (3,0.0);
CREATE INDEX c
ON T(b);
SELECT * FROM T WHERE b >= -2.5 AND b < 2.0;
SELECT * FROM T1 NATURAL JOIN T1;
VACUUM;
SELECT * FROM T WHERE b = (SELECT COUNT(*) FROM T);
CREATE TEMP VIEW IF NOT EXISTS v_T2_3409 AS SELECT A FROM T2;
SELECT COUNT(*) FROM T1;
CREATE TABLE T1 (
A VARCHAR(20),
X VARCHAR(10),
PRIMARY KEY (A, X),
UNIQUE (X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10) UNIQUE,
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 UNION ALL SELECT A FROM T2 ORDER BY A;
SELECT * FROM T;
INSERT INTO T1 SELECT * FROM T1;
ALTER TABLE T DROP COLUMN a;
INSERT INTO T1 DEFAULT VALUES;
PRAGMA automatic_index = YES;
SELECT * FROM T1 AS a RIGHT JOIN T1 AS b ON a.rowid = b.rowid;
SELECT COUNT(Y) FILTER (WHERE NULL) OVER (ORDER BY Y GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T2;
VACUUM;
DETACH DATABASE aux7;
SELECT * FROM T1 AS a INNER JOIN T1 AS b ON a.rowid = b.rowid;
INSERT OR ABORT INTO T1 VALUES (3, '');
UPDATE T2 SET Y = NULL WHERE 1 RETURNING *;
ALTER TABLE T1 ADD COLUMN extra_151 NATIVE CHARACTER(70)NVARCHAR(100) DEFAULT 0;
CREATE VIEW IF NOT EXISTS v_T1_6888 AS SELECT A FROM T1;
INSERT OR REPLACE INTO T1 VALUES (NULL, 'x');
SELECT COUNT(*) FROM T2;
PRAGMA trusted_schema = FALSE;
CREATE TRIGGER IF NOT EXISTS trg_T2_5615 AFTER DELETE ON T2 BEGIN INSERT INTO T2(A) VALUES (NULL); END;
WITH RECURSIVE multi(a, b, c) AS (VALUES(1, 2, 3) UNION ALL SELECT a+1, b+1, c+1 FROM multi WHERE a<37) SELECT * FROM multi;
REINDEX T1;
SELECT MIN(a) FROM T;
CREATE TEMP VIEW IF NOT EXISTS v_T_2695 AS SELECT a FROM T;
CREATE TRIGGER IF NOT EXISTS trg_T1_2714 BEFORE UPDATE OF X ON T1 BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT * FROM (SELECT A FROM T2 WHERE A IS NOT NULL) AS sub;
SELECT * FROM T1 AS a FULL JOIN T1 AS b ON a.rowid = b.rowid;
ALTER TABLE T DROP COLUMN b;
INSERT INTO T2 SELECT * FROM T2;
WITH RECURSIVE cnt(x) AS (VALUES(0) UNION ALL SELECT x-1 FROM cnt WHERE x>-19) SELECT * FROM cnt;
ALTER TABLE T RENAME COLUMN a TO a_r3970;
UPDATE T2 SET Y = NULL WHERE rowid = 1 RETURNING *;
DETACH DATABASE aux57;
SELECT * FROM T1 WHERE A >= ALL (SELECT A FROM T1);
DROP VIEW IF EXISTS T1;
INSERT INTO T2 DEFAULT VALUES;
DROP TABLE IF EXISTS T1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_146 ON T(b COLLATE NOCASE) WHERE b > 0;
.separator >_<
ATTACH DATABASE ':memory:' AS aux57;
ATTACH DATABASE ':memory:' AS aux7;
PRAGMA fullsync = OFF;
ATTACH DATABASE (':memory:' || '') AS aux91;
BEGIN EXCLUSIVE TRANSACTION;
.exit
((PRAGMA)) fullsync = YES;
SAVEPOINT sp2455;
ATTACH DATABASE (':memory:' || '') AS aux23;
PRAGMA wal_checkpoint('PASSIVE');
PRAGMA /* LEFT JOIN */ trusted_schema = ON;
PRAGMA parser_trace = YES;
.separator >_<
CREATE TABLE T1 (
A VARCHAR(json_array(nan, round(power(-(-(604050853143826937)), 604050853143826937), 2))),
X VARCHAR(10),
PRIMARY KEY (A, X)
);
CREATE TABLE main."T2" (
A VARCHAR(20),
Y VARCHAR(10),
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO /**/ T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 EXCEPT SELECT A /**/ FROM T2;
ANALYZE;
DETACH DATABASE aux23;
PRAGMA index_info(idx1);
INSERT INTO T2 DEFAULT VALUES;
CREATE VIEW IF NOT EXISTS v_T2_4813 AS SELECT A FROM T2;
INSERT INTO T1 DEFAULT VALUES;
RELEASE sp2455;
CREATE TRIGGER IF NOT EXISTS trg_T2_2918 AFTER INSERT ON T2 BEGIN SELECT RAISE(IGNORE); END;
WITH cte AS (SELECT * FROM T1 ORDER BY X LIMIT 5) SELECT * FROM cte;
SELECT 0x0ACB29BM205381;
SELECT sqlite_compileoption_used('我的天你是怎么了');
SELECT 1 >> -999999999999999999999999999;
SELECT sqlite_compileoption_get($1);
SELECT sqlite_version();
WITH cte(a, b) AS (SELECT X, X FROM T1) SELECT a, b FROM cte;
INSERT INTO T1 VALUES (NULL, NULL) ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
UPDATE T2 SET Y = Y + 1 RETURNING *;
ANALYZE T1;
DELETE FROM T1 WHERE NOT NOT (NOT NOT (NOT NOT (NOT NOT (rowid = 69)))) RETURNING *;
ANALYZE;
END TRANSACTION;
SELECT COUNT(*) FILTER (WHERE A IS NOT NULL), SUM(rowid) FILTER (WHERE +A > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(A) FILTER (WHERE A > 0 OR A < 100), COUNT(*) FILTER (WHERE typeof(A) = "text") FROM T2;
INSERT INTO T2 DEFAULT VALUES;
REINDEX T1;
WITH cte AS (SELECT DISTINCT A FROM T2) SELECT * FROM cte;
ANALYZE;
INSERT INTO T1 SELECT * FROM T1;
CREATE TEMP VIEW IF NOT EXISTS v_T2_6929 AS SELECT A FROM T2;
REINDEX;
SELECT NTH_VALUE(X, 2) OVER (PARTITION BY X ORDER BY X RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T1;
DETACH DATABASE aux91;
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (1,1.5), (2,-2.5), (3,0.0);
CREATE INDEX c
ON T(b);
SELECT * FROM T WHERE b >= -2.5 AND b < 2.0;
SELECT * FROM T1 NATURAL JOIN T1;
VACUUM;
SELECT * FROM T WHERE b = (SELECT COUNT(*) FROM T);
CREATE TEMP VIEW IF NOT EXISTS v_T2_3409 AS SELECT A FROM T2;
SELECT COUNT(*) FROM T1;
CREATE TABLE T1 (
A VARCHAR(20),
X VARCHAR(10),
PRIMARY KEY (A, X),
UNIQUE (X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10) UNIQUE,
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 UNION ALL SELECT A FROM T2 ORDER BY A;
SELECT * FROM T;
INSERT INTO T1 SELECT * FROM T1;
ALTER TABLE T DROP COLUMN a;
INSERT INTO T1 DEFAULT VALUES;
PRAGMA automatic_index = YES;
SELECT * FROM T1 AS a RIGHT JOIN T1 AS b ON a.rowid = b.rowid;
SELECT COUNT(Y) FILTER (WHERE NULL) OVER (ORDER BY Y GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T2;
VACUUM;
DETACH DATABASE aux7;
SELECT * FROM T1 AS a INNER JOIN T1 AS b ON a.rowid = b.rowid;
INSERT OR ABORT INTO T1 VALUES (3, '');
UPDATE T2 SET Y = NULL WHERE 1 RETURNING *;
ALTER TABLE T1 ADD COLUMN extra_151 NATIVE CHARACTER(70)NVARCHAR(100) DEFAULT 0;
CREATE VIEW IF NOT EXISTS v_T1_6888 AS SELECT A FROM T1;
INSERT OR REPLACE INTO T1 VALUES (NULL, 'x');
SELECT COUNT(*) FROM T2;
PRAGMA trusted_schema = FALSE;
CREATE TRIGGER IF NOT EXISTS trg_T2_5615 AFTER DELETE ON T2 BEGIN INSERT INTO T2(A) VALUES (NULL); END;
WITH RECURSIVE multi(a, b, c) AS (VALUES(1, 2, 3) UNION ALL SELECT a+1, b+1, c+1 FROM multi WHERE a<37) SELECT * FROM multi;
REINDEX T1;
SELECT MIN(a) FROM T;
CREATE TEMP VIEW IF NOT EXISTS v_T_2695 AS SELECT a FROM T;
CREATE TRIGGER IF NOT EXISTS trg_T1_2714 BEFORE UPDATE OF X ON T1 BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT * FROM (SELECT A FROM T2 WHERE A IS NOT NULL) AS sub;
SELECT * FROM T1 AS a FULL JOIN T1 AS b ON a.rowid = b.rowid;
ALTER TABLE T DROP COLUMN b;
INSERT INTO T2 SELECT * FROM T2;
WITH RECURSIVE cnt(x) AS (VALUES(0) UNION ALL SELECT x-1 FROM cnt WHERE x>-19) SELECT * FROM cnt;
ALTER TABLE T RENAME COLUMN a TO a_r3970;
UPDATE T2 SET Y = NULL WHERE rowid = 1 RETURNING *;
DETACH DATABASE aux57;
SELECT * FROM T1 WHERE A >= ALL (SELECT A FROM T1);
DROP VIEW IF EXISTS T1;
INSERT INTO T2 DEFAULT VALUES;
DROP TABLE IF EXISTS T1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_146 ON T(b COLLATE NOCASE) WHERE b > 0;
.separator >_<
ATTACH DATABASE ':memory:' AS aux57;
ATTACH DATABASE ':memory:' AS aux7;
PRAGMA fullsync = OFF;
ATTACH DATABASE (':memory:' || '') AS aux91;
BEGIN EXCLUSIVE TRANSACTION;
.exit
((PRAGMA)) fullsync = YES;
SAVEPOINT sp2455;
ATTACH DATABASE (':memory:' || '') AS aux23;
PRAGMA wal_checkpoint('PASSIVE');
PRAGMA /* LEFT JOIN */ trusted_schema = ON;
PRAGMA parser_trace = YES;
.separator >_<
CREATE TABLE T1 (
A VARCHAR(json_array(nan, round(power(-(-(604050853143826937)), 604050853143826937), 2))),
X VARCHAR(10),
PRIMARY KEY (A, X)
);
CREATE TABLE main."T2" (
A VARCHAR(20),
Y VARCHAR(10),
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO /**/ T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 EXCEPT SELECT A /**/ FROM T2;
ANALYZE;
DETACH DATABASE aux23;
PRAGMA index_info(idx1);
INSERT INTO T2 DEFAULT VALUES;
CREATE VIEW IF NOT EXISTS v_T2_4813 AS SELECT A FROM T2;
INSERT INTO T1 DEFAULT VALUES;
RELEASE sp2455;
CREATE TRIGGER IF NOT EXISTS trg_T2_2918 AFTER INSERT ON T2 BEGIN SELECT RAISE(IGNORE); END;
WITH cte AS (SELECT * FROM T1 ORDER BY X LIMIT 5) SELECT * FROM cte;
SELECT 0x0ACB29BM205381;
SELECT sqlite_compileoption_used('我的天你是怎么了');
SELECT 1 >> -999999999999999999999999999;
SELECT sqlite_compileoption_get($1);
SELECT sqlite_version();
WITH cte(a, b) AS (SELECT X, X FROM T1) SELECT a, b FROM cte;
INSERT INTO T1 VALUES (NULL, NULL) ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
UPDATE T2 SET Y = Y + 1 RETURNING *;
ANALYZE T1;
DELETE FROM T1 WHERE NOT NOT (NOT NOT (NOT NOT (NOT NOT (rowid = 69)))) RETURNING *;
ANALYZE;
END TRANSACTION;
SELECT COUNT(*) FILTER (WHERE A IS NOT NULL), SUM(rowid) FILTER (WHERE +A > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(A) FILTER (WHERE A > 0 OR A < 100), COUNT(*) FILTER (WHERE typeof(A) = "text") FROM T2;
INSERT INTO T2 DEFAULT VALUES;
REINDEX T1;
WITH cte AS (SELECT DISTINCT A FROM T2) SELECT * FROM cte;
ANALYZE;
INSERT INTO T1 SELECT * FROM T1;
CREATE TEMP VIEW IF NOT EXISTS v_T2_6929 AS SELECT A FROM T2;
REINDEX;
SELECT NTH_VALUE(X, 2) OVER (PARTITION BY X ORDER BY X RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T1;
DETACH DATABASE aux91;
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (1,1.5), (2,-2.5), (3,0.0);
CREATE INDEX c
ON T(b);
SELECT * FROM T WHERE b >= -2.5 AND b < 2.0;
SELECT * FROM T1 NATURAL JOIN T1;
VACUUM;
SELECT * FROM T WHERE b = (SELECT COUNT(*) FROM T);
CREATE TEMP VIEW IF NOT EXISTS v_T2_3409 AS SELECT A FROM T2;
SELECT COUNT(*) FROM T1;
CREATE TABLE T1 (
A VARCHAR(20),
X VARCHAR(10),
PRIMARY KEY (A, X),
UNIQUE (X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10) UNIQUE,
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 UNION ALL SELECT A FROM T2 ORDER BY A;
SELECT * FROM T;
INSERT INTO T1 SELECT * FROM T1;
ALTER TABLE T DROP COLUMN a;
INSERT INTO T1 DEFAULT VALUES;
PRAGMA automatic_index = YES;
SELECT * FROM T1 AS a RIGHT JOIN T1 AS b ON a.rowid = b.rowid;
SELECT COUNT(Y) FILTER (WHERE NULL) OVER (ORDER BY Y GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T2;
VACUUM;
DETACH DATABASE aux7;
SELECT * FROM T1 AS a INNER JOIN T1 AS b ON a.rowid = b.rowid;
INSERT OR ABORT INTO T1 VALUES (3, '');
UPDATE T2 SET Y = NULL WHERE 1 RETURNING *;
ALTER TABLE T1 ADD COLUMN extra_151 NATIVE CHARACTER(70)NVARCHAR(100) DEFAULT 0;
CREATE VIEW IF NOT EXISTS v_T1_6888 AS SELECT A FROM T1;
INSERT OR REPLACE INTO T1 VALUES (NULL, 'x');
SELECT COUNT(*) FROM T2;
PRAGMA trusted_schema = FALSE;
CREATE TRIGGER IF NOT EXISTS trg_T2_5615 AFTER DELETE ON T2 BEGIN INSERT INTO T2(A) VALUES (NULL); END;
WITH RECURSIVE multi(a, b, c) AS (VALUES(1, 2, 3) UNION ALL SELECT a+1, b+1, c+1 FROM multi WHERE a<37) SELECT * FROM multi;
REINDEX T1;
SELECT MIN(a) FROM T;
CREATE TEMP VIEW IF NOT EXISTS v_T_2695 AS SELECT a FROM T;
CREATE TRIGGER IF NOT EXISTS trg_T1_2714 BEFORE UPDATE OF X ON T1 BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT * FROM (SELECT A FROM T2 WHERE A IS NOT NULL) AS sub;
SELECT * FROM T1 AS a FULL JOIN T1 AS b ON a.rowid = b.rowid;
ALTER TABLE T DROP COLUMN b;
INSERT INTO T2 SELECT * FROM T2;
WITH RECURSIVE cnt(x) AS (VALUES(0) UNION ALL SELECT x-1 FROM cnt WHERE x>-19) SELECT * FROM cnt;
ALTER TABLE T RENAME COLUMN a TO a_r3970;
UPDATE T2 SET Y = NULL WHERE rowid = 1 RETURNING *;
DETACH DATABASE aux57;
SELECT * FROM T1 WHERE A >= ALL (SELECT A FROM T1);
DROP VIEW IF EXISTS T1;
INSERT INTO T2 DEFAULT VALUES;
DROP TABLE IF EXISTS T1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_146 ON T(b COLLATE NOCASE) WHERE b > 0;
.separator >_<
ATTACH DATABASE ':memory:' AS aux57;
ATTACH DATABASE ':memory:' AS aux7;
PRAGMA fullsync = OFF;
ATTACH DATABASE (':memory:' || '') AS aux91;
BEGIN EXCLUSIVE TRANSACTION;
.exit
((PRAGMA)) fullsync = YES;
SAVEPOINT sp2455;
ATTACH DATABASE (':memory:' || '') AS aux23;
PRAGMA wal_checkpoint('PASSIVE');
PRAGMA /* LEFT JOIN */ trusted_schema = ON;
PRAGMA parser_trace = YES;
.separator >_<
CREATE TABLE T1 (
A VARCHAR(json_array(nan, round(power(-(-(604050853143826937)), 604050853143826937), 2))),
X VARCHAR(10),
PRIMARY KEY (A, X)
);
CREATE TABLE main."T2" (
A VARCHAR(20),
Y VARCHAR(10),
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO /**/ T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 EXCEPT SELECT A /**/ FROM T2;
ANALYZE;
DETACH DATABASE aux23;
PRAGMA index_info(idx1);
INSERT INTO T2 DEFAULT VALUES;
CREATE VIEW IF NOT EXISTS v_T2_4813 AS SELECT A FROM T2;
INSERT INTO T1 DEFAULT VALUES;
RELEASE sp2455;
CREATE TRIGGER IF NOT EXISTS trg_T2_2918 AFTER INSERT ON T2 BEGIN SELECT RAISE(IGNORE); END;
WITH cte AS (SELECT * FROM T1 ORDER BY X LIMIT 5) SELECT * FROM cte;
SELECT 0x0ACB29BM205381;
SELECT sqlite_compileoption_used('我的天你是怎么了');
SELECT 1 >> -999999999999999999999999999;
SELECT sqlite_compileoption_get($1);
SELECT sqlite_version();
WITH cte(a, b) AS (SELECT X, X FROM T1) SELECT a, b FROM cte;
INSERT INTO T1 VALUES (NULL, NULL) ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
UPDATE T2 SET Y = Y + 1 RETURNING *;
ANALYZE T1;
DELETE FROM T1 WHERE NOT NOT (NOT NOT (NOT NOT (NOT NOT (rowid = 69)))) RETURNING *;
ANALYZE;
END TRANSACTION;
SELECT COUNT(*) FILTER (WHERE A IS NOT NULL), SUM(rowid) FILTER (WHERE +A > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(A) FILTER (WHERE A > 0 OR A < 100), COUNT(*) FILTER (WHERE typeof(A) = "text") FROM T2;
INSERT INTO T2 DEFAULT VALUES;
REINDEX T1;
WITH cte AS (SELECT DISTINCT A FROM T2) SELECT * FROM cte;
ANALYZE;
INSERT INTO T1 SELECT * FROM T1;
CREATE TEMP VIEW IF NOT EXISTS v_T2_6929 AS SELECT A FROM T2;
REINDEX;
SELECT NTH_VALUE(X, 2) OVER (PARTITION BY X ORDER BY X RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T1;
DETACH DATABASE aux91;
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (1,1.5), (2,-2.5), (3,0.0);
CREATE INDEX c
ON T(b);
SELECT * FROM T WHERE b >= -2.5 AND b < 2.0;
SELECT * FROM T1 NATURAL JOIN T1;
VACUUM;
SELECT * FROM T WHERE b = (SELECT COUNT(*) FROM T);
CREATE TEMP VIEW IF NOT EXISTS v_T2_3409 AS SELECT A FROM T2;
SELECT COUNT(*) FROM T1;
CREATE TABLE T1 (
A VARCHAR(20),
X VARCHAR(10),
PRIMARY KEY (A, X),
UNIQUE (X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10) UNIQUE,
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 UNION ALL SELECT A FROM T2 ORDER BY A;
SELECT * FROM T;
INSERT INTO T1 SELECT * FROM T1;
ALTER TABLE T DROP COLUMN a;
INSERT INTO T1 DEFAULT VALUES;
PRAGMA automatic_index = YES;
SELECT * FROM T1 AS a RIGHT JOIN T1 AS b ON a.rowid = b.rowid;
SELECT COUNT(Y) FILTER (WHERE NULL) OVER (ORDER BY Y GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T2;
VACUUM;
DETACH DATABASE aux7;
SELECT * FROM T1 AS a INNER JOIN T1 AS b ON a.rowid = b.rowid;
INSERT OR ABORT INTO T1 VALUES (3, '');
UPDATE T2 SET Y = NULL WHERE 1 RETURNING *;
ALTER TABLE T1 ADD COLUMN extra_151 NATIVE CHARACTER(70)NVARCHAR(100) DEFAULT 0;
CREATE VIEW IF NOT EXISTS v_T1_6888 AS SELECT A FROM T1;
INSERT OR REPLACE INTO T1 VALUES (NULL, 'x');
SELECT COUNT(*) FROM T2;
PRAGMA trusted_schema = FALSE;
CREATE TRIGGER IF NOT EXISTS trg_T2_5615 AFTER DELETE ON T2 BEGIN INSERT INTO T2(A) VALUES (NULL); END;
WITH RECURSIVE multi(a, b, c) AS (VALUES(1, 2, 3) UNION ALL SELECT a+1, b+1, c+1 FROM multi WHERE a<37) SELECT * FROM multi;
REINDEX T1;
SELECT MIN(a) FROM T;
CREATE TEMP VIEW IF NOT EXISTS v_T_2695 AS SELECT a FROM T;
CREATE TRIGGER IF NOT EXISTS trg_T1_2714 BEFORE UPDATE OF X ON T1 BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT * FROM (SELECT A FROM T2 WHERE A IS NOT NULL) AS sub;
SELECT * FROM T1 AS a FULL JOIN T1 AS b ON a.rowid = b.rowid;
ALTER TABLE T DROP COLUMN b;
INSERT INTO T2 SELECT * FROM T2;
WITH RECURSIVE cnt(x) AS (VALUES(0) UNION ALL SELECT x-1 FROM cnt WHERE x>-19) SELECT * FROM cnt;
ALTER TABLE T RENAME COLUMN a TO a_r3970;
UPDATE T2 SET Y = NULL WHERE rowid = 1 RETURNING *;
DETACH DATABASE aux57;
SELECT * FROM T1 WHERE A >= ALL (SELECT A FROM T1);
DROP VIEW IF EXISTS T1;
INSERT INTO T2 DEFAULT VALUES;
DROP TABLE IF EXISTS T1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_146 ON T(b COLLATE NOCASE) WHERE b > 0;
.separator >_<
ATTACH DATABASE ':memory:' AS aux57;
ATTACH DATABASE ':memory:' AS aux7;
PRAGMA fullsync = OFF;
ATTACH DATABASE (':memory:' || '') AS aux91;
BEGIN EXCLUSIVE TRANSACTION;
.exit
((PRAGMA)) fullsync = YES;
SAVEPOINT sp2455;
ATTACH DATABASE (':memory:' || '') AS aux23;
PRAGMA wal_checkpoint('PASSIVE');
PRAGMA /* LEFT JOIN */ trusted_schema = ON;
PRAGMA parser_trace = YES;
.separator >_<
CREATE TABLE T1 (
A VARCHAR(json_array(nan, round(power(-(-(604050853143826937)), 604050853143826937), 2))),
X VARCHAR(10),
PRIMARY KEY (A, X)
);
CREATE TABLE main."T2" (
A VARCHAR(20),
Y VARCHAR(10),
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO /**/ T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 EXCEPT SELECT A /**/ FROM T2;
ANALYZE;
DETACH DATABASE aux23;
PRAGMA index_info(idx1);
INSERT INTO T2 DEFAULT VALUES;
CREATE VIEW IF NOT EXISTS v_T2_4813 AS SELECT A FROM T2;
INSERT INTO T1 DEFAULT VALUES;
RELEASE sp2455;
CREATE TRIGGER IF NOT EXISTS trg_T2_2918 AFTER INSERT ON T2 BEGIN SELECT RAISE(IGNORE); END;
WITH cte AS (SELECT * FROM T1 ORDER BY X LIMIT 5) SELECT * FROM cte;
SELECT 0x0ACB29BM205381;
SELECT sqlite_compileoption_used('我的天你是怎么了');
SELECT 1 >> -999999999999999999999999999;
SELECT sqlite_compileoption_get($1);
SELECT sqlite_version();
WITH cte(a, b) AS (SELECT X, X FROM T1) SELECT a, b FROM cte;
INSERT INTO T1 VALUES (NULL, NULL) ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
UPDATE T2 SET Y = Y + 1 RETURNING *;
ANALYZE T1;
DELETE FROM T1 WHERE NOT NOT (NOT NOT (NOT NOT (NOT NOT (rowid = 69)))) RETURNING *;
ANALYZE;
END TRANSACTION;
SELECT COUNT(*) FILTER (WHERE A IS NOT NULL), SUM(rowid) FILTER (WHERE +A > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(A) FILTER (WHERE A > 0 OR A < 100), COUNT(*) FILTER (WHERE typeof(A) = "text") FROM T2;
INSERT INTO T2 DEFAULT VALUES;
REINDEX T1;
WITH cte AS (SELECT DISTINCT A FROM T2) SELECT * FROM cte;
ANALYZE;
INSERT INTO T1 SELECT * FROM T1;
CREATE TEMP VIEW IF NOT EXISTS v_T2_6929 AS SELECT A FROM T2;
REINDEX;
SELECT NTH_VALUE(X, 2) OVER (PARTITION BY X ORDER BY X RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T1;
DETACH DATABASE aux91;
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (1,1.5), (2,-2.5), (3,0.0);
CREATE INDEX c
ON T(b);
SELECT * FROM T WHERE b >= -2.5 AND b < 2.0;
SELECT * FROM T1 NATURAL JOIN T1;
VACUUM;
SELECT * FROM T WHERE b = (SELECT COUNT(*) FROM T);
CREATE TEMP VIEW IF NOT EXISTS v_T2_3409 AS SELECT A FROM T2;
SELECT COUNT(*) FROM T1;
CREATE TABLE T1 (
A VARCHAR(20),
X VARCHAR(10),
PRIMARY KEY (A, X),
UNIQUE (X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10) UNIQUE,
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 UNION ALL SELECT A FROM T2 ORDER BY A;
SELECT * FROM T;
INSERT INTO T1 SELECT * FROM T1;
ALTER TABLE T DROP COLUMN a;
INSERT INTO T1 DEFAULT VALUES;
PRAGMA automatic_index = YES;
SELECT * FROM T1 AS a RIGHT JOIN T1 AS b ON a.rowid = b.rowid;
SELECT COUNT(Y) FILTER (WHERE NULL) OVER (ORDER BY Y GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T2;
VACUUM;
DETACH DATABASE aux7;
SELECT * FROM T1 AS a INNER JOIN T1 AS b ON a.rowid = b.rowid;
INSERT OR ABORT INTO T1 VALUES (3, '');
UPDATE T2 SET Y = NULL WHERE 1 RETURNING *;
ALTER TABLE T1 ADD COLUMN extra_151 NATIVE CHARACTER(70)NVARCHAR(100) DEFAULT 0;
CREATE VIEW IF NOT EXISTS v_T1_6888 AS SELECT A FROM T1;
INSERT OR REPLACE INTO T1 VALUES (NULL, 'x');
SELECT COUNT(*) FROM T2;
PRAGMA trusted_schema = FALSE;
CREATE TRIGGER IF NOT EXISTS trg_T2_5615 AFTER DELETE ON T2 BEGIN INSERT INTO T2(A) VALUES (NULL); END;
WITH RECURSIVE multi(a, b, c) AS (VALUES(1, 2, 3) UNION ALL SELECT a+1, b+1, c+1 FROM multi WHERE a<37) SELECT * FROM multi;
REINDEX T1;
SELECT MIN(a) FROM T;
CREATE TEMP VIEW IF NOT EXISTS v_T_2695 AS SELECT a FROM T;
CREATE TRIGGER IF NOT EXISTS trg_T1_2714 BEFORE UPDATE OF X ON T1 BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT * FROM (SELECT A FROM T2 WHERE A IS NOT NULL) AS sub;
SELECT * FROM T1 AS a FULL JOIN T1 AS b ON a.rowid = b.rowid;
ALTER TABLE T DROP COLUMN b;
INSERT INTO T2 SELECT * FROM T2;
WITH RECURSIVE cnt(x) AS (VALUES(0) UNION ALL SELECT x-1 FROM cnt WHERE x>-19) SELECT * FROM cnt;
ALTER TABLE T RENAME COLUMN a TO a_r3970;
UPDATE T2 SET Y = NULL WHERE rowid = 1 RETURNING *;
DETACH DATABASE aux57;
SELECT * FROM T1 WHERE A >= ALL (SELECT A FROM T1);
DROP VIEW IF EXISTS T1;
INSERT INTO T2 DEFAULT VALUES;
DROP TABLE IF EXISTS T1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_146 ON T(b COLLATE NOCASE) WHERE b > 0;
```
## Actual output
```sql
```
## Expectation
```sql
Page cache size increased to 1296 to accommodate the 272-byte headers
```
## Flag
```
-pagecache 1024 5
```
@@ -0,0 +1,77 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
.timeout -log(9223372036854775809, 9223372036854775809)
CREATE TABLE T (
a INTEGER,
b TEXT,
c REAL,
d REAL
);
INSERT INTO T VALUES (nullif(CAST(unixepoch(jsonb_replace(1, '$.key', 1)) AS REAL), 'same'),'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
SELECT b FROM T WHERE ABS(c) > 5 AND ABS(d) > 5;
CREATE TABLE t1(a INTEGER /* .schema !@#$%^&*()qwertyuiop[]\{}|asdfghjkl;':"zxcvbnm,./<>? */ PRIMARY KEY,R);
CREATE TABLE main.t2(x UNIQUE);
CREATE VIEW v1a(z,y) AS SELECT x IS NULL, x FROM t2;
SELECT a,(+a)b,(+a)b,(+a)b,NOT EXISTS(SELECT null FROM t2),CASE z WHEN max(json_type(487, '$.key'), 487) THEN 992 WHEN 391 THEN 203 WHEN 10 THEN '?k<D Q' END,'' FROM t1 LEFT JOIN v1a ON z=b;
PRAGMA short_column_names = 1;
SELECT LEAD(b) OVER (PARTITION BY b ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T;
WITH RECURSIVE fib(a,b,n) AS (VALUES(1,1,1) UNION ALL SELECT b, a+b, n+1 FROM fib WHERE n<7) SELECT a, n FROM fib;
UPDATE T SET b = b + 1 WHERE b IS NOT NULL;
CREATE INDEX IF NOT EXISTS idx_t1_565 ON t1(a COLLATE NOCASE) WHERE a IS NOT NULL;
DELETE FROM t1 WHERE 1;
INSERT INTO t2 VALUES (NULL) ON CONFLICT(x) DO UPDATE SET x = excluded.x;
UPDATE T SET c = NULL WHERE c BETWEEN 0 AND 100 RETURNING *;
CREATE INDEX IF NOT EXISTS idx_T_9869 ON T(c COLLATE NOCASE);
SELECT * FROM t2;
SELECT COUNT(*) FROM t1;
INSERT INTO T SELECT * FROM T;
INSERT INTO t2 DEFAULT VALUES;
DELETE FROM t1 WHERE a IS NULL RETURNING *;
SELECT COUNT(x) OVER (ORDER BY x ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM t2;
SELECT * FROM t1 WHERE a = (SELECT COUNT(*) FROM t1);
ALTER TABLE T RENAME COLUMN c TO c_r3754;
REINDEX T;
SELECT GROUP_CONCAT(b) FROM T;
WITH cte AS (SELECT COUNT(*) AS cnt FROM t2) SELECT * FROM cte WHERE cnt > 0;
SELECT * FROM t2 WHERE NOT EXISTS (SELECT 1 FROM t2 t2 WHERE t2.x = t2.x);
DELETE FROM t2 WHERE x IS NULL;
DROP INDEX IF EXISTS t1;
ALTER TABLE t2 RENAME TO t2_r4197;
```
## Actual output
```sql
1|1
1|2
2|3
3|4
5|5
8|6
13|7
0
0
0
2
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,263 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
.explain off
BEGIN EXCLUSIVE TRANSACTION;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (iif(CAST(0 AS CLOB), 9223372036854775807, 0, 9223372036854775807, 9223372036854775807), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
BEGIN;
.system echo "mwahaha i am root"
.backup main output.db
PRAGMA ignore_check_constraints = TRUE;
-- NTH_VALUE({c}, -1)
.exit json_valid(CAST(CAST('0' AS DOUB) AS CHARINT))
PRAGMA read_uncommitted = OFF;
-- PRAGMA query_only = ON;
PRAGMA read_uncommitted = NO;
PRAGMA threads;
PRAGMA page_size;
.vfsname
CREATE TABLE [t1](a, b TEXT);
CREATE UNIQUE INDEX IF NOT EXISTS x1 ON t1(b==glob('*', 'hello'));
CREATE INDEX
IF NOT EXISTS x2 ON t1(a || NULL) WHERE NOT NOT (b) ;
creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z");
DROP TABLE t0;
INSERT INTO t1(a,b) VALUES('a',json_quote(json_remove(CAST(-(-(x'c41d')) AS NCHAR(-(-(json_error_position(-(-(if(2147483646, 55, 0, 55, 0, 55, 55)))))))), '$'))),('a',0);
SELECT a, b, '|' FROM t1;
ALTER TABLE t1 ADD COLUMN extra_3799 VARCHAR(255);
PRAGMA reverse_unordered_selects = 0;
CREATE TRIGGER IF NOT EXISTS trg_t1_9377 AFTER DELETE ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT * FROM t1 AS a RIGHT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
ANALYZE t1;
SELECT COUNT(b) FILTER (WHERE b IS NOT NULL) OVER (PARTITION BY b ORDER BY b ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
ALTER TABLE t1 ADD COLUMN extra_4068 TEXT NOT NULL DEFAULT 0;
SELECT STRING_AGG(b) FROM 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 t1;
PRAGMA foreign_keys = OFF;
CREATE TRIGGER IF NOT EXISTS trg_t1_2882 AFTER UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
INSERT INTO t1 DEFAULT VALUES;
VACUUM;
SELECT COUNT(*) FROM t1;
ALTER TABLE t1 DROP COLUMN b;
INSERT INTO t1 SELECT * FROM t1;
INSERT INTO t1 VALUES (NULL, NULL);
SELECT COUNT(*) FROM t1;
SELECT GROUP_CONCAT(a) FROM t1;
PRAGMA ignore_check_constraints = TRUE;
.exit json_valid(CAST(CAST(9999 AS DATETIME) AS CHARINT))
PRAGMA read_uncommitted = OFF;
-- PRAGMA query_only = ON;
PRAGMA read_uncommitted = NO;
PRAGMA threads;
PRAGMA page_size;
.vfsname
CREATE TABLE t1(a, b TEXT);
CREATE UNIQUE INDEX IF NOT EXISTS x1 ON t1(b==glob('*', 'hello'));
CREATE INDEX
IF NOT EXISTS x2 ON t1(a || NULL) WHERE b;
INSERT INTO t1(a,b) VALUES('a',json_quote(json_remove(CAST(123 AS NCHAR(55)), '$'))),('a',0);
SELECT a, b, '|' FROM t1;
ALTER TABLE t1 ADD COLUMN extra_3799 VARCHAR(255);
PRAGMA reverse_unordered_selects = 0;
CREATE TRIGGER IF NOT EXISTS trg_t1_9377 AFTER DELETE ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
ANALYZE t1;
SELECT COUNT(b) FILTER (WHERE b IS NOT NULL) OVER (PARTITION BY b ORDER BY b ROWS BETWEEN 2 PRECEDING OR 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
ALTER TABLE t1 ADD COLUMN extra_4068 TEXT NOT NULL DEFAULT 0;
SELECT STRING_AGG(b) FROM 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 t1;
PRAGMA foreign_keys = OFF;
CREATE TRIGGER IF NOT EXISTS trg_t1_2882 AFTER UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
INSERT INTO t1 DEFAULT VALUES;
VACUUM;
SELECT COUNT(*) FROM t1;
ALTER TABLE t1 DROP COLUMN b;
INSERT INTO t1 SELECT * FROM t1;
INSERT INTO t1 VALUES (NULL, NULL);
SELECT COUNT(*) FROM t1;
SELECT GROUP_CONCAT(a) FROM t1;
PRAGMA ignore_check_constraints = TRUE;
.exit json_valid(CAST(CAST(9999 AS DATETIME) AS CHARINT))
PRAGMA read_uncommitted = OFF;
-- PRAGMA query_only = ON;
PRAGMA read_uncommitted = NO;
PRAGMA threads;
PRAGMA page_size;
.vfsname
CREATE TABLE t1(a, b TEXT);
CREATE UNIQUE INDEX IF NOT EXISTS x1 ON t1(b==glob('*', 'hello'));
CREATE INDEX
IF NOT EXISTS x2 ON t1(a || NULL) WHERE b;
INSERT INTO t1(a,b) VALUES('a',json_quote(json_remove(CAST(123 AS NCHAR(55)), '$'))),('a',0);
SELECT a, b, '|' FROM t1;
ALTER TABLE t1 ADD COLUMN extra_3799 VARCHAR(255);
PRAGMA reverse_unordered_selects = 0;
CREATE TRIGGER IF NOT EXISTS trg_t1_9377 AFTER DELETE ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
ANALYZE t1;
SELECT COUNT(b) FILTER (WHERE b IS NOT NULL) OVER (PARTITION BY b ORDER BY b ROWS BETWEEN 2 PRECEDING OR 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
ALTER TABLE t1 ADD COLUMN extra_4068 TEXT NOT NULL DEFAULT 0;
SELECT STRING_AGG(b) FROM 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 t1;
PRAGMA foreign_keys = OFF;
CREATE TRIGGER IF NOT EXISTS trg_t1_2882 AFTER UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
INSERT INTO t1 DEFAULT VALUES;
VACUUM;
SELECT COUNT(*) FROM t1;
ALTER TABLE t1 DROP COLUMN b;
INSERT INTO t1 SELECT * FROM t1;
INSERT INTO t1 VALUES (NULL, NULL);
SELECT COUNT(*) FROM t1;
SELECT GROUP_CONCAT(a) FROM t1;
PRAGMA ignore_check_constraints = TRUE;
.exit json_valid(CAST(CAST(9999 AS DATETIME) AS CHARINT))
PRAGMA read_uncommitted = OFF;
-- PRAGMA query_only = ON;
PRAGMA read_uncommitted = NO;
PRAGMA threads;
PRAGMA page_size;
.vfsname
CREATE TABLE t1(a, b TEXT);
CREATE UNIQUE INDEX IF NOT EXISTS x1 ON t1(b==glob('*', 'hello'));
CREATE INDEX
IF NOT EXISTS x2 ON t1(a || NULL) WHERE b;
INSERT INTO t1(a,b) VALUES('a',json_quote(json_remove(CAST(123 AS NCHAR(55)), '$'))),('a',0);
SELECT a, b, '|' FROM t1;
ALTER TABLE t1 ADD COLUMN extra_3799 VARCHAR(255);
PRAGMA reverse_unordered_selects = 0;
CREATE TRIGGER IF NOT EXISTS trg_t1_9377 AFTER DELETE ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
ANALYZE t1;
SELECT COUNT(b) FILTER (WHERE b IS NOT NULL) OVER (PARTITION BY b ORDER BY b ROWS BETWEEN 2 PRECEDING OR 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
ALTER TABLE t1 ADD COLUMN extra_4068 TEXT NOT NULL DEFAULT 0;
SELECT STRING_AGG(b) FROM 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 t1;
PRAGMA foreign_keys = OFF;
CREATE TRIGGER IF NOT EXISTS trg_t1_2882 AFTER UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
INSERT INTO t1 DEFAULT VALUES;
VACUUM;
SELECT COUNT(*) FROM t1;
ALTER TABLE t1 DROP COLUMN b;
INSERT INTO t1 SELECT * FROM t1;
INSERT INTO t1 VALUES (NULL, NULL);
SELECT COUNT(*) FROM t1;
SELECT GROUP_CONCAT(a) FROM t1;
PRAGMA ignore_check_constraints = TRUE;
.exit json_valid(CAST(CAST(9999 AS DATETIME) AS CHARINT))
PRAGMA read_uncommitted = OFF;
-- PRAGMA query_only = ON;
PRAGMA read_uncommitted = NO;
PRAGMA threads;
PRAGMA page_size;
.vfsname
CREATE TABLE t1(a, b TEXT);
CREATE UNIQUE INDEX IF NOT EXISTS x1 ON t1(b==glob('*', 'hello'));
CREATE INDEX
IF NOT EXISTS x2 ON t1(a || NULL) WHERE b;
INSERT INTO t1(a,b) VALUES('a',json_quote(json_remove(CAST(123 AS NCHAR(55)), '$'))),('a',0);
SELECT a, b, '|' FROM t1;
ALTER TABLE t1 ADD COLUMN extra_3799 VARCHAR(255);
PRAGMA reverse_unordered_selects = 0;
CREATE TRIGGER IF NOT EXISTS trg_t1_9377 AFTER DELETE ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
ANALYZE t1;
SELECT COUNT(b) FILTER (WHERE b IS NOT NULL) OVER (PARTITION BY b ORDER BY b ROWS BETWEEN 2 PRECEDING OR 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
ALTER TABLE t1 ADD COLUMN extra_4068 TEXT NOT NULL DEFAULT 0;
SELECT STRING_AGG(b) FROM 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 t1;
PRAGMA foreign_keys = OFF;
CREATE TRIGGER IF NOT EXISTS trg_t1_2882 AFTER UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
INSERT INTO t1 DEFAULT VALUES;
VACUUM;
SELECT COUNT(*) FROM t1;
ALTER TABLE t1 DROP COLUMN b;
INSERT INTO t1 SELECT * FROM t1;
INSERT INTO t1 VALUES (NULL, NULL);
SELECT COUNT(*) FROM t1;
SELECT GROUP_CONCAT(a) FROM t1;
SELECT * FROM t1 AS a JOIN t1 AS b ON a.rowid = b.rowid;
ANALYZE t1;
SELECT TOTAL(b) FROM t1;
SELECT * FROM t1 AS a FULL JOIN t1 AS b ON a.rowid = b.rowid;
ALTER TABLE t1 ADD COLUMN extra_7470 REAL UNIQUE;
INSERT INTO t1 SELECT * FROM t1;
SELECT COUNT(*) FROM t1;
SELECT * FROM t1;
SELECT RANK() OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
VACUUM;
REINDEX t1;
CREATE TRIGGER IF NOT EXISTS trg_t1_4926 AFTER UPDATE OF a ON t1 BEGIN SELECT RAISE(FAIL, 'no'); END;
INSERT INTO t1 DEFAULT VALUES;
DELETE FROM t1 WHERE rowid = 72 RETURNING *;
CREATE TRIGGER IF NOT EXISTS trg_t1_5958 BEFORE DELETE ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_6286 AS SELECT b FROM t1;
VACUUM;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_1170 ON t1(b) WHERE b > 0;
INSERT INTO t1 DEFAULT VALUES;
SELECT COUNT(*) FROM t1;
DELETE FROM t1 WHERE 1 RETURNING *;
END TRANSACTION;
INSERT INTO t1 VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
ANALYZE t1;
INSERT INTO t1 VALUES (NULL, NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
SELECT * FROM t1 WHERE a > (SELECT COUNT(*) FROM t1);
SELECT * FROM t1;
CREATE INDEX IF NOT EXISTS idx_t1_9340 ON t1(a COLLATE NOCASE);
ANALYZE;
COMMIT;
ALTER TABLE t1 ADD COLUMN extra_4698 CHAR(10) NOT NULL DEFAULT 0;
SELECT * FROM t1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_9584 ON t1((a + 1)) WHERE a IS NOT NULL;
SELECT * FROM t1 AS a RIGHT JOIN t1 AS b ON a.rowid = b.rowid;
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;
```
## Actual output
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
Braun|30|3
von|20|2
Braun|30
von|20
```
## Expectation
```sql
```
## Flag
```
```
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,98 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
PRAGMA trusted_schema;
.system echo "mwahaha i am root"
BEGIN EXCLUSIVE;
.imposter off
ATTACH DATABASE ':memory:' AS aux0;
CREATE TABLE T (
a INTEGER,
b REAL,
c REAL
);
INSERT INTO T VALUES (cos(unistr_quote(CAST(log(1, 1) AS NONE))),1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
SELECT * FROM T WHERE b < 2.0 ORDER BY b;
PRAGMA secure_delete = NO;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, ('' || ('Wernher') || ''), 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
CREATE TABLE T (
a TEXT,
b TEXT,
c REAL
);
INSERT INTO T VALUES ('a','b',5.0), ('a','c',5.0), ('b','d',-8.25);
SELECT a,b,c,
RANK() OVER (PARTITION BY a ORDER BY c DESC) AS d FROM T;
DETACH DATABASE aux0;
WITH cte AS (SELECT b, COUNT(*) FROM T GROUP BY b) SELECT * FROM cte;
CREATE INDEX IF NOT EXISTS idx_t1_2751 ON t1(lower(b));
COMMIT TRANSACTION;
DELETE FROM t1 WHERE c IS NULL;
SELECT * FROM T AS a INNER JOIN T AS b ON a.rowid = b.rowid;
SELECT PERCENT_RANK() OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T;
SELECT * FROM t1 AS a RIGHT JOIN T AS b ON a.rowid = b.rowid;
SELECT * FROM t1 t1 RIGHT JOIN t1 t2 ON t1.c = (SELECT c FROM t1 WHERE c = t1.c);
SELECT MAX(c) OVER (PARTITION BY c ORDER BY c GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T;
ALTER TABLE T RENAME COLUMN a TO a_r7648;
CREATE INDEX IF NOT EXISTS idx_T_3011 ON T(lower(b)) WHERE b IS NOT NULL;
CREATE TABLE T (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15) NOT NULL,
C DOUBLE PRECISION
);
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
INSERT INTO T VALUES ('b', 'q', -0.000000001);
INSERT INTO T VALUES ('c', 'r', 0.0);
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
INSERT INTO T VALUES ('f', 't', 750.25);
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) AS F FROM T GROUP BY B;
INSERT OR IGNORE INTO t1 VALUES ('', '', NULL, 'x');
```
## Actual output
```sql
1
mwahaha i am root
0
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
Braun|30|3
Wernher|10|1
von|20|2
Braun|30
Wernher|10
von|20
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,886 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
ATTACH DATABASE ':memory:' AS aux54;
PRAGMA wal_checkpoint('NOOP');
.auth ON
PRAGMA empty_result_callbacks = FALSE;
PRAGMA parser_trace = TRUE;
ATTACH DATABASE '' || (':memory:') AS aux57;
CREATE TABLE T (
a TEXT,
b TEXT
);
INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01');
SELECT a,
CAST(
(julianday('now')-julianday(b))/round(-x'5ec538d0917842f96acf501f')
AS INTEGER
) AS c
FROM T;
PRAGMA vdbe_debug = OFF;
BEGIN IMMEDIATE;
CREATE TABLE [t1](a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO `t1` VALUES (-(-(timediff(-instr(NULL, NULL), rtrim('hello', NULL)))), 'Wernher', unistr('Hello\u0041'), tanh((-(-('%abc%')) - trim('xxxhelloxxx', 'x'))));
INSERT INTO t1 VALUES (-2147483647, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', /* if(0, {v}, 0, {v}) */ 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
((((PRAGMA)))) application_id = ',';
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (-NULL,json_valid(1.5, 6)), (2,-7.25), (3,0.0);
SELECT a,b FROM T WHERE NOT NOT NOT (a >= 2) ORDER BY b;
PRAGMA read_uncommitted = FALSE;
WITH cte AS (SELECT b FROM T unIOn SELECT b FROM T) SELECT * FROM cte;
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;
SELECT COUNT(*) FROM T;
INSERT INTO T VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
SELECT * FROM T;
PRAGMA query_only;
ALTER TABLE T RENAME TO T_r407;
UPDATE T SET a = NULL WHERE 1;
ALTER TABLE T RENAME COLUMN b TO b_r5239;
ALTER TABLE T DROP COLUMN b;
ALTER TABLE T ADD COLUMN extra_7854 DATETIME DEFAULT NULL;
SELECT * FROM (SELECT * FROM t1) AS t1 JOIN (SELECT * FROM t1) AS t2 ON t1.b = t2.b;
END;
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;
SELECT * FROM T WHERE b <= ANY (SELECT b FROM T);
VACUUM main;
ANALYZE T;
SELECT LAG(c, c) OVER (ORDER BY c ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
REINDEX T;
INSERT INTO T DEFAULT VALUES;
PRAGMA query_only = OFF;
WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_3010 ON /**/ t1(a) WHERE
a > 0;
ANALYZE;
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
VACUUM;
ALTER TABLE t1 RENAME TO t1_r1192;
DROP TRIGGER IF EXISTS T;
WITH cte AS (SELECT * FROM T WHERE c IN (SELECT c FROM T LIMIT 5)) SELECT * FROM cte;
DELETE FROM T WHERE a > (SELECT AVG(a) FROM T) RETURNING *;
SELECT * FROM (SELECT * FROM T ORDER BY b) AS sub LIMIT 10;
PRAGMA data_version;
CREATE TABLE T1 (
A VARCHAR(20),
X VARCHAR(10),
PRIMARY KEY (A, X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10),
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 EXCEPT SELECT A FROM T2;
ALTER TABLE T ADD COLUMN extra_7767 DOUB DEFAULT 0;
SELECT * FROM T2 CROSS JOIN T2;
UPDATE T1 SET X = 'x' WHERE 1;
ALTER TABLE T1 DROP COLUMN A;
CREATE TABLE T (
a TEXT,
b TEXT
);
INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01');
SELECT a,
CAST(
(julianday('now')-julianday(b))/round(-9223372036854775809)
AS INTEGER
) AS c
FROM T;
PRAGMA vdbe_debug = OFF;
BEGIN IMMEDIATE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (-(-(timediff(-instr(NULL, NULL), 6905746167837027873))), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', /* if(0, {v}, 0, {v}) */ 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
((((PRAGMA)))) application_id = ',';
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (-NULL,json_valid(1.5, 6)), (2,-7.25), (3,0.0);
SELECT a,b FROM T WHERE NOT NOT (a >= 2) ORDER BY b;
PRAGMA read_uncommitted = FALSE;
WITH cte AS (SELECT b FROM T UNION SELECT b FROM T) SELECT * FROM cte;
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;
SELECT COUNT(*) FROM T;
INSERT INTO T VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
SELECT * FROM T;
PRAGMA query_only;
ALTER TABLE T RENAME TO T_r407;
UPDATE T SET a = NULL WHERE 1;
ALTER TABLE T RENAME COLUMN b TO b_r5239;
ALTER TABLE T DROP COLUMN b;
ALTER TABLE T ADD COLUMN extra_7854 DATETIME DEFAULT NULL;
SELECT * FROM (SELECT * FROM t1) AS t1 JOIN (SELECT * FROM t1) AS t2 ON t1.b = t2.b;
END;
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;
SELECT * FROM T WHERE b <= ANY (SELECT b FROM T);
VACUUM main;
ANALYZE T;
SELECT LAG(c, c) OVER (ORDER BY c ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
REINDEX T;
INSERT INTO T DEFAULT VALUES;
PRAGMA query_only = OFF;
WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_3010 ON t1(a) WHERE
a > 0;
ANALYZE;
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
VACUUM;
ALTER TABLE t1 RENAME TO t1_r1192;
DROP TRIGGER IF EXISTS T;
WITH cte AS (SELECT * FROM T WHERE c IN (SELECT c FROM T LIMIT 5)) SELECT * FROM cte;
DELETE FROM T WHERE a > (SELECT AVG(a) FROM T) RETURNING *;
SELECT * FROM (SELECT * FROM T ORDER BY b) AS sub LIMIT 10;
PRAGMA data_version;
CREATE TABLE T1 (
A VARCHAR(20),
X VARCHAR(10),
PRIMARY KEY (A, X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10),
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 EXCEPT SELECT A FROM T2;
ALTER TABLE T ADD COLUMN extra_7767 DOUB DEFAULT 0;
SELECT * FROM T2 CROSS JOIN T2;
UPDATE T1 SET X = 'x' WHERE 1;
ALTER TABLE T1 DROP COLUMN A;
CREATE TABLE T (
a TEXT,
b TEXT
);
INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01');
SELECT a,
CAST(
(julianday('now')-julianday(b))/round(-9223372036854775809)
AS INTEGER
) AS c
FROM T;
PRAGMA vdbe_debug = OFF;
BEGIN IMMEDIATE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (-(-(timediff(-instr(NULL, NULL), 6905746167837027873))), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', /* if(0, {v}, 0, {v}) */ 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
((((PRAGMA)))) application_id = ',';
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (-NULL,json_valid(1.5, 6)), (2,-7.25), (3,0.0);
SELECT a,b FROM T WHERE NOT NOT (a >= 2) ORDER BY b;
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;
PRAGMA read_uncommitted = FALSE;
WITH cte AS (SELECT b FROM T UNION SELECT b FROM T) SELECT * FROM cte;
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;
SELECT COUNT(*) FROM T;
INSERT INTO T VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
SELECT * FROM T;
PRAGMA query_only;
ALTER TABLE T RENAME TO T_r407;
UPDATE T SET a = NULL WHERE 1;
ALTER TABLE T RENAME COLUMN b TO b_r5239;
ALTER TABLE T DROP COLUMN b;
ALTER TABLE T ADD COLUMN extra_7854 DATETIME DEFAULT NULL;
SELECT * FROM (SELECT * FROM t1) AS t1 JOIN (SELECT * FROM t1) AS t2 ON t1.b = t2.b;
END;
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;
SELECT * FROM T WHERE b <= ANY (SELECT b FROM T);
VACUUM main;
ANALYZE T;
SELECT LAG(c, c) OVER (ORDER BY c ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
REINDEX T;
INSERT INTO T DEFAULT VALUES;
PRAGMA query_only = OFF;
WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_3010 ON t1(a) WHERE
a > 0;
ANALYZE;
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
VACUUM;
ALTER TABLE t1 RENAME TO t1_r1192;
DROP TRIGGER IF EXISTS T;
WITH cte AS (SELECT * FROM T WHERE c IN (SELECT c FROM T LIMIT 5)) SELECT * FROM cte;
DELETE FROM T WHERE a > (SELECT AVG(a) FROM T) RETURNING *;
SELECT * FROM (SELECT * FROM T ORDER BY b) AS sub LIMIT 10;
PRAGMA data_version;
CREATE TABLE T1 (
A VARCHAR(20),
X VARCHAR(10),
PRIMARY KEY (A, X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10),
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 EXCEPT SELECT A FROM T2;
ALTER TABLE T ADD COLUMN extra_7767 DOUB DEFAULT 0;
SELECT * FROM T2 CROSS JOIN T2;
UPDATE T1 SET X = 'x' WHERE 1;
ALTER TABLE T1 DROP COLUMN A;
CREATE TABLE T (
a TEXT,
b TEXT
);
INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01');
SELECT a,
CAST(
(julianday('now')-julianday(b))/round(-9223372036854775809)
AS INTEGER
) AS c
FROM T;
PRAGMA vdbe_debug = OFF;
BEGIN IMMEDIATE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (-(-(timediff(-instr(NULL, NULL), 6905746167837027873))), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', /* if(0, {v}, 0, {v}) */ 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
((((PRAGMA)))) application_id = ',';
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (-NULL,json_valid(1.5, 6)), (2,-7.25), (3,0.0);
SELECT a,b FROM T WHERE NOT NOT (a >= 2) ORDER BY b;
PRAGMA read_uncommitted = FALSE;
WITH cte AS (SELECT b FROM T UNION SELECT b FROM T) SELECT * FROM cte;
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;
SELECT COUNT(*) FROM T;
INSERT INTO T VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
SELECT * FROM T;
PRAGMA query_only;
ALTER TABLE T RENAME TO T_r407;
UPDATE T SET a = NULL WHERE 1;
ALTER TABLE T RENAME COLUMN b TO b_r5239;
ALTER TABLE T DROP COLUMN b;
ALTER TABLE T ADD COLUMN extra_7854 DATETIME DEFAULT NULL;
SELECT * FROM (SELECT * FROM t1) AS t1 JOIN (SELECT * FROM t1) AS t2 ON t1.b = t2.b;
END;
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;
SELECT * FROM T WHERE b <= ANY (SELECT b FROM T);
VACUUM main;
ANALYZE T;
SELECT LAG(c, c) OVER (ORDER BY c ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
REINDEX T;
INSERT INTO T DEFAULT VALUES;
PRAGMA query_only = OFF;
WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_3010 ON t1(a) WHERE
a > 0;
ANALYZE;
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
VACUUM;
ALTER TABLE t1 RENAME TO t1_r1192;
DROP TRIGGER IF EXISTS T;
WITH cte AS (SELECT * FROM T WHERE c IN (SELECT c FROM T LIMIT 5)) SELECT * FROM cte;
DELETE FROM T WHERE a > (SELECT AVG(a) FROM T) RETURNING *;
SELECT * FROM (SELECT * FROM T ORDER BY b) AS sub LIMIT 10;
PRAGMA data_version;
CREATE TABLE T1 (
A VARCHAR(20),
X VARCHAR(10),
PRIMARY KEY (A, X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10),
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 EXCEPT SELECT A FROM T2;
ALTER TABLE T ADD COLUMN extra_7767 DOUB DEFAULT 0;
SELECT * FROM T2 CROSS JOIN T2;
UPDATE T1 SET X = 'x' WHERE 1;
ALTER TABLE T1 DROP COLUMN A;
CREATE TABLE T (
a TEXT,
b TEXT
);
INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01');
SELECT a,
CAST(
(julianday('now')-julianday(b))/round(-9223372036854775809)
AS INTEGER
) AS c
FROM T;
PRAGMA vdbe_debug = OFF;
BEGIN IMMEDIATE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (-(-(timediff(-instr(NULL, NULL), 6905746167837027873))), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', /* if(0, {v}, 0, {v}) */ 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
((((PRAGMA)))) application_id = ',';
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (-NULL,json_valid(1.5, 6)), (2,-7.25), (3,0.0);
SELECT a,b FROM T WHERE NOT NOT (a >= 2) ORDER BY b;
PRAGMA read_uncommitted = FALSE;
WITH cte AS (SELECT b FROM T UNION SELECT b FROM T) SELECT * FROM cte;
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;
SELECT COUNT(*) FROM T;
INSERT INTO T VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
SELECT * FROM T;
PRAGMA query_only;
ALTER TABLE T RENAME TO T_r407;
UPDATE T SET a = NULL WHERE 1;
ALTER TABLE T RENAME COLUMN b TO b_r5239;
ALTER TABLE T DROP COLUMN b;
ALTER TABLE T ADD COLUMN extra_7854 DATETIME DEFAULT NULL;
SELECT * FROM (SELECT * FROM t1) AS t1 JOIN (SELECT * FROM t1) AS t2 ON t1.b = t2.b;
END;
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;
SELECT * FROM T WHERE b <= ANY (SELECT b FROM T);
VACUUM main;
ANALYZE T;
SELECT LAG(c, c) OVER (ORDER BY c ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
REINDEX T;
INSERT INTO T DEFAULT VALUES;
PRAGMA query_only = OFF;
WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_3010 ON t1(a) WHERE
a > 0;
ANALYZE;
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
VACUUM;
ALTER TABLE t1 RENAME TO t1_r1192;
DROP TRIGGER IF EXISTS T;
WITH cte AS (SELECT * FROM T WHERE c IN (SELECT c FROM T LIMIT 5)) SELECT * FROM cte;
DELETE FROM T WHERE a > (SELECT AVG(a) FROM T) RETURNING *;
SELECT * FROM (SELECT * FROM T ORDER BY b) AS sub LIMIT 10;
PRAGMA data_version;
CREATE TABLE T1 (
A VARCHAR(20),
X VARCHAR(10),
PRIMARY KEY (A, X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10),
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 EXCEPT SELECT A FROM T2;
ALTER TABLE T ADD COLUMN extra_7767 DOUB DEFAULT 0;
SELECT * FROM T2 CROSS JOIN T2;
UPDATE T1 SET X = 'x' WHERE 1;
ALTER TABLE T1 DROP COLUMN A;
CREATE TABLE T (
a TEXT,
b TEXT /* substr(randomblob(10), 1, 5) */ );
INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01');
SELECT a,
CAST(
(julianday('now')-julianday(b))/round(-9223372036854775809)
AS INTEGER
) AS c
FROM T;
PRAGMA vdbe_debug = OFF;
BEGIN IMMEDIATE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (-(-(timediff(-instr(NULL, NULL), 6905746167837027873))), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', /* if(0, {v}, 0, {v}) */ 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
((((PRAGMA)))) application_id = ',';
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (-NULL,json_valid(1.5, 6)), (2,-7.25), (3,0.0);
SELECT a,b FROM T WHERE NOT NOT (a >= 2) ORDER BY b;
PRAGMA read_uncommitted = FALSE;
WITH cte AS (SELECT b FROM T UNION SELECT b FROM T) SELECT * FROM cte;
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;
SELECT COUNT(*) FROM T;
INSERT INTO T VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
SELECT * FROM T;
PRAGMA query_only;
ALTER TABLE T RENAME TO T_r407;
UPDATE T SET a = NULL WHERE 1;
ALTER TABLE T RENAME COLUMN b TO b_r5239;
ALTER TABLE T DROP COLUMN b;
ALTER TABLE T ADD COLUMN extra_7854 DATETIME DEFAULT NULL;
SELECT * FROM (SELECT * FROM t1) AS t1 JOIN (SELECT * FROM t1) AS t2 ON t1.b = t2.b;
END;
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;
SELECT * FROM T WHERE b <= ANY (SELECT b FROM T);
VACUUM main;
ANALYZE T;
SELECT LAG(c, c) OVER (ORDER BY c ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
REINDEX T;
INSERT INTO T DEFAULT VALUES;
PRAGMA query_only = OFF;
WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_3010 ON t1(a) WHERE
a > 0;
ANALYZE;
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
VACUUM;
ALTER TABLE t1 RENAME TO t1_r1192;
DROP TRIGGER IF EXISTS T;
WITH cte AS (SELECT * FROM T WHERE c IN (SELECT c FROM T LIMIT 5)) SELECT * FROM cte;
DELETE FROM T WHERE a > (SELECT AVG(a) FROM T) RETURNING *;
SELECT * FROM (SELECT * FROM T ORDER BY b) AS sub LIMIT 10;
PRAGMA data_version;
CREATE TABLE T1 (
A VARCHAR(20),
X VARCHAR(10),
PRIMARY KEY (A, X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10),
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 EXCEPT SELECT A FROM T2;
ALTER TABLE T ADD COLUMN extra_7767 DOUB DEFAULT 0;
SELECT * FROM T2 CROSS JOIN T2;
UPDATE T1 SET X = 'x' WHERE 1;
ALTER TABLE T1 DROP COLUMN A;
CREATE TABLE T (
a TEXT,
b TEXT
);
INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01');
SELECT a,
CAST(
(julianday('now')-julianday(b))/round(-9223372036854775809)
AS INTEGER
) AS c
FROM T;
PRAGMA vdbe_debug = OFF;
BEGIN IMMEDIATE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (-(-(timediff(-instr(NULL, NULL), 6905746167837027873))), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', /* if(0, {v}, 0, {v}) */ 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
((((PRAGMA)))) application_id = ',';
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (-NULL,json_valid(1.5, 6)), (2,-7.25), (3,0.0);
SELECT a,b FROM T WHERE NOT NOT (a >= 2) ORDER BY b;
PRAGMA read_uncommitted = FALSE;
WITH cte AS (SELECT b FROM T UNION SELECT b FROM T) SELECT * FROM cte;
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;
SELECT COUNT(*) FROM T;
INSERT INTO T VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
SELECT * FROM T;
PRAGMA query_only;
ALTER TABLE T RENAME TO T_r407;
UPDATE T SET a = NULL WHERE 1;
ALTER TABLE T RENAME COLUMN b TO b_r5239;
ALTER TABLE T DROP COLUMN b;
ALTER TABLE T ADD COLUMN extra_7854 DATETIME DEFAULT NULL;
SELECT * FROM (SELECT * FROM t1) AS t1 JOIN (SELECT * FROM t1) AS t2 ON t1.b = t2.b;
END;
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;
SELECT * FROM T WHERE b <= ANY (SELECT b FROM T);
VACUUM main;
ANALYZE T;
SELECT LAG(c, c) OVER (ORDER BY c ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
REINDEX T;
INSERT INTO T DEFAULT VALUES;
PRAGMA query_only = OFF;
WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_3010 ON t1(a) WHERE
a > 0;
ANALYZE;
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
VACUUM;
ALTER TABLE t1 RENAME TO t1_r1192;
DROP TRIGGER IF EXISTS T;
WITH cte AS (SELECT * FROM T WHERE c IN (SELECT c FROM T LIMIT 5)) SELECT * FROM cte;
DELETE FROM T WHERE a > (SELECT AVG(a) FROM T) RETURNING *;
SELECT * FROM (SELECT * FROM T ORDER BY b) AS sub LIMIT 10;
PRAGMA data_version;
CREATE TABLE T1 (
A VARCHAR(20),
X VARCHAR(10),
PRIMARY KEY (A, X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10),
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 EXCEPT SELECT A FROM T2;
ALTER TABLE T ADD COLUMN extra_7767 DOUB DEFAULT 0;
SELECT * FROM T2 CROSS JOIN T2;
UPDATE T1 SET X = 'x' WHERE 1;
ALTER TABLE T1 DROP COLUMN A;
CREATE TABLE T (
a TEXT,
b TEXT
);
INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01');
SELECT a,
CAST(
(julianday('now')-julianday(b))/round(-9223372036854775809)
AS INTEGER
) AS c
FROM T;
PRAGMA vdbe_debug = OFF;
BEGIN IMMEDIATE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (-(-(timediff(-instr(NULL, NULL), 6905746167837027873))), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', /* if(0, {v}, 0, {v}) */ 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
((((PRAGMA)))) application_id = ',';
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (-NULL,json_valid(1.5, 6)), (2,-7.25), (3,0.0);
SELECT a,b FROM T WHERE NOT NOT (a >= 2) ORDER BY b;
PRAGMA read_uncommitted = FALSE;
WITH cte AS (SELECT b FROM T UNION SELECT b FROM T) SELECT * FROM cte;
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;
SELECT COUNT(*) FROM T;
INSERT INTO T VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
SELECT * FROM T;
PRAGMA query_only;
ALTER TABLE T RENAME TO T_r407;
UPDATE T SET a = NULL WHERE 1;
ALTER TABLE T RENAME COLUMN b TO b_r5239;
ALTER TABLE T DROP COLUMN b;
ALTER TABLE T ADD COLUMN extra_7854 DATETIME DEFAULT NULL;
SELECT * FROM (SELECT * FROM t1) AS t1 JOIN (SELECT * FROM t1) AS t2 ON t1.b = t2.b;
END;
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;
SELECT * FROM T WHERE b <= ANY (SELECT b FROM T);
VACUUM main;
ANALYZE T;
SELECT LAG(c, c) OVER (ORDER BY c ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
REINDEX T;
INSERT INTO T DEFAULT VALUES;
PRAGMA query_only = OFF;
WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_3010 ON t1(a) WHERE
a > 0;
ANALYZE;
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
VACUUM;
ALTER TABLE t1 RENAME TO t1_r1192;
DROP TRIGGER IF EXISTS T;
WITH cte AS (SELECT * FROM T WHERE c IN (SELECT c FROM T LIMIT 5)) SELECT * FROM cte;
DELETE FROM T WHERE a > (SELECT AVG(a) FROM T) RETURNING *;
SELECT * FROM (SELECT * FROM T ORDER BY b) AS sub LIMIT 10;
PRAGMA data_version;
CREATE TABLE T1 (
A VARCHAR(20),
X VARCHAR(10),
PRIMARY KEY (A, X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10),
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 EXCEPT SELECT A FROM T2;
ALTER TABLE T ADD COLUMN extra_7767 DOUB DEFAULT 0;
SELECT * FROM T2 CROSS JOIN T2;
UPDATE T1 SET X = 'x' WHERE 1;
ALTER TABLE T1 DROP COLUMN A;
SELECT * FROM (SELECT a FROM T WHERE a IS NOT NULL) AS sub;
DETACH DATABASE aux57;
CREATE TEMPORARY VIEW IF NOT EXISTS v_T1_4243 AS SELECT X FROM T1;
SELECT * FROM t1 CROSS JOIN T2;
INSERT INTO T VALUES (NULL, 'x', 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
INSERT INTO T DEFAULT VALUES;
SELECT NTILE(Y) OVER (ORDER BY Y RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T2;
INSERT INTO T2 DEFAULT VALUES;
SELECT * FROM t1 AS a FULL JOIN T AS b ON a.rowid = b.rowid;
INSERT INTO T2 DEFAULT VALUES;
INSERT INTO t1 VALUES (NULL, 1, 'x', 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
CREATE INDEX IF NOT EXISTS idx_T_1265 ON T((c + 1)) WHERE c IS NOT NULL;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_1185 ON T1((X + 1)) WHERE X IS NOT NULL;
DROP INDEX IF EXISTS T2;
DROP TRIGGER IF EXISTS T1;
ALTER TABLE T1 ADD COLUMN extra_4021 NATIVE CHARACTER(70)NVARCHAR(100) COLLATE RTRIM;
INSERT INTO t1 SELECT * FROM t1;
REINDEX;
ANALYZE T1;
DELETE FROM T1 WHERE 0;
SELECT COUNT(*) FILTER (WHERE A IS NOT NULL), SUM(rowid) FILTER (WHERE A > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(A) FILTER (WHERE A > 0 AND A < 100), COUNT(*) FILTER (WHERE typeof(A) = "text") FROM T1;
SELECT SUM(X) FROM T1;
ALTER TABLE T2 RENAME COLUMN A TO A_r3753;
INSERT OR REPLACE INTO t1 VALUES ('', NULL, '', NULL);
REINDEX;
SELECT * FROM t1 AS a INNER JOIN T1 AS b ON a.rowid = b.rowid;
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_9045 AS SELECT b FROM T;
SELECT * FROM t1 WHERE b IN (SELECT b FROM t1 WHERE b GLOB "*");
CREATE TEMP VIEW IF NOT EXISTS v_T_9342 AS SELECT b FROM T;
INSERT INTO T1 SELECT * FROM T1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_4824 ON T(a) WHERE a > 0;
ALTER TABLE T2 DROP COLUMN A;
WITH a AS (SELECT a FROM t1), b AS (SELECT a FROM t1) SELECT * FROM a JOIN b ON a.a = b.a;
SELECT * FROM (SELECT * FROM T2) AS sub;
INSERT INTO T2 VALUES (NULL, NULL);
CREATE TEMP VIEW IF NOT EXISTS v_T1_905 AS SELECT A FROM T1;
DELETE FROM t1 WHERE rowid = 66;
REINDEX;
SELECT COUNT(*) FROM T;
INSERT INTO T2 DEFAULT VALUES;
SELECT * FROM t1;
CREATE INDEX IF NOT EXISTS idx_T2_1653 ON T2((Y + 1)) WHERE Y > 0;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_6210 AS SELECT b FROM t1;
SELECT * FROM t1 WHERE c IN (SELECT c FROM t1 WHERE c IS NULL);
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_3296 AS SELECT a FROM t1;
INSERT INTO T2 VALUES (NULL, NULL);
SELECT COUNT(*) FROM t1;
ANALYZE t1;
SELECT LAG(A, 1) OVER (ORDER BY A RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_6478 ON T(lower(b)) WHERE b > 0;
ALTER TABLE T ADD COLUMN extra_7491 MEDIUMINT DEFAULT (abs(random()) % 1000);
DETACH DATABASE aux54;
```
## Actual output
```sql
0|-1|-1
authorizer: PRAGMA "empty_result_callbacks" "FALSE" NULL NULL
authorizer: PRAGMA "parser_trace" "TRUE" NULL NULL
authorizer: ATTACH NULL NULL NULL NULL
authorizer: INSERT "sqlite_master" NULL "main" NULL
authorizer: CREATE_TABLE "T" NULL "main" NULL
authorizer: UPDATE "sqlite_master" "type" "main" NULL
authorizer: UPDATE "sqlite_master" "name" "main" NULL
authorizer: UPDATE "sqlite_master" "tbl_name" "main" NULL
authorizer: UPDATE "sqlite_master" "rootpage" "main" NULL
authorizer: UPDATE "sqlite_master" "sql" "main" NULL
authorizer: READ "sqlite_master" "ROWID" "main" NULL
authorizer: INSERT "T" NULL "main" NULL
authorizer: SELECT NULL NULL NULL NULL
authorizer: SELECT NULL NULL NULL NULL
authorizer: READ "T" "a" "main" NULL
authorizer: FUNCTION NULL "julianday" NULL NULL
authorizer: FUNCTION NULL "julianday" NULL NULL
authorizer: READ "T" "b" "main" NULL
authorizer: FUNCTION NULL "round" NULL NULL
a|
b|
authorizer: PRAGMA "vdbe_debug" "OFF" NULL NULL
authorizer: TRANSACTION "BEGIN" NULL NULL NULL
authorizer: INSERT "sqlite_master" NULL "main" NULL
authorizer: CREATE_TABLE "t1" NULL "main" NULL
authorizer: UPDATE "sqlite_master" "type" "main" NULL
authorizer: UPDATE "sqlite_master" "name" "main" NULL
authorizer: UPDATE "sqlite_master" "tbl_name" "main" NULL
authorizer: UPDATE "sqlite_master" "rootpage" "main" NULL
authorizer: UPDATE "sqlite_master" "sql" "main" NULL
authorizer: READ "sqlite_master" "ROWID" "main" NULL
authorizer: INSERT "t1" NULL "main" NULL
authorizer: INSERT "t1" NULL "main" NULL
authorizer: INSERT "t1" NULL "main" NULL
authorizer: INSERT "sqlite_master" NULL "main" NULL
authorizer: CREATE_INDEX "t1bc" "t1" "main" NULL
authorizer: READ "t1" "b" "main" NULL
authorizer: READ "t1" "c" "main" NULL
authorizer: INSERT "sqlite_master" NULL "main" NULL
authorizer: REINDEX "t1bc" NULL "main" NULL
authorizer: PRAGMA "writable_schema" "ON" NULL NULL
authorizer: SELECT NULL NULL NULL NULL
authorizer: READ "sqlite_master" "rootpage" "main" NULL
authorizer: READ "sqlite_master" "name" "main" NULL
authorizer: READ "sqlite_master" "type" "main" NULL
authorizer: FUNCTION NULL "like" NULL NULL
authorizer: READ "sqlite_master" "sql" "main" NULL
authorizer: READ "sqlite_master" "rootpage" "main" NULL
authorizer: READ "sqlite_master" "name" "main" NULL
authorizer: READ "sqlite_master" "type" "main" NULL
authorizer: SELECT NULL NULL NULL NULL
authorizer: SELECT NULL NULL NULL NULL
authorizer: PRAGMA "index_xinfo" "t1bc" NULL NULL
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
authorizer: SELECT NULL NULL NULL NULL
authorizer: READ "t2" "b" "main" NULL
authorizer: READ "t2" "c" "main" NULL
authorizer: READ "t2" "_ROWID_" "main" NULL
Braun|30|3
von|20|-2147483647
authorizer: SELECT NULL NULL NULL NULL
authorizer: READ "t1" "b" "main" NULL
authorizer: READ "t1" "c" "main" NULL
authorizer: READ "t1" "b" "main" NULL
authorizer: READ "t1" "c" "main" NULL
Braun|30
von|20
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,74 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
SAVEPOINT sp3173;
.version
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES ((1 - 0),1.5), (2,-2.5), (3,0.0);
CREATE INDEX c
ON T(b);
SELECT * FROM T WHERE b >= -2.5 AND b < 2.0;
CREATE INDEX IF NOT EXISTS idx_T_6272 ON T(a) WHERE a > 0;
DELETE FROM T WHERE a > (SELECT AVG(a) FROM T);
INSERT OR FAIL INTO T VALUES (0, ('' || ''));
WITH a AS (SELECT * FROM T), b AS (SELECT * FROM a) SELECT * FROM b;
SELECT COUNT(b) FROM T;
SELECT MIN(b) FROM T;
SELECT LAG(a, 0, 'default') OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T;
INSERT OR REPLACE INTO T VALUES ('x', 'x');
INSERT INTO T DEFAULT VALUES;
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_7970 AS SELECT a FROM T;
ROLLBACK TO sp3173;
RELEASE sp3173;
DROP INDEX IF EXISTS T;
```
## Actual output
```sql
SQLite 3.39.0 2022-05-10 23:28:12 764b71267e0b31ff7eaf2a0def7526a1a02dce4d5b456dea060d97ed342ealt1
gcc-14.2.0
2|-2.5
3|0.0
1|1.5
1|1.5
2|-2.5
0|
3
-2.5
0
1
2
```
## Expectation
```sql
SQLite 3.51.1 2025-11-28 17:28:25 281fc0e9afc38674b9b0991943b9e9d1e64c6cbdb133d35f6f5c87ff6af38a88
zlib version 1.3.1
gcc-11.4.0 (64-bit)
2|-2.5
3|0.0
1|1.5
1|1.5
2|-2.5
0|
3
-2.5
0
1
2
```
## Flag
```
```
@@ -0,0 +1,82 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
PRAGMA pragma_list;
CREATE TABLE T1 (
A VARCHAR(-(-(hex(2790980413263895699)))),
X VARCHAR(10),
PRIMARY KEY (A, X),
UNIQUE (X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10) UNIQUE,
PRIMARY KEY (A, Y)
);
INSErT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T2 VALUES ('b', 'k');
WITH _m AS MATERIALIZED (SELECT * FROM T1) SELECT A FROM _m UNION ALL SELECT A FROM T2 ORDER BY A;
SELECT * FROM T1 NATURAL JOIN T1;
ALTER TABLE T1 ADD COLUMN extra_1763 NCHAR(55);
ALTER TABLE T2 RENAME TO T2_r7203;
ALTER TABLE T2 DROP COLUMN Y;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_4762 ON T1((A + 1)) WHERE A IS NOT NULL;
ANALYZE T2;
REINDEX T2;
INSERT INTO T2 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
INSERT OR FAIL INTO T2 VALUES (1, 'x');
SELECT LAST_VALUE(A) OVER (ORDER BY A ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T2;
INSERT INTO T2 VALUES (NULL, NULL);
```
## Actual output
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
Braun|30|3
Wernher|10|1
von|20|2
Braun|30
Wernher|10
von|20
```
## Expectation
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
Braun|30|3
Wernher|10|1
von|20|2
Braun|30
Wernher|10
von|20
```
## Flag
```
```
@@ -0,0 +1,153 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
PRAGMA writable_schema = YES;
CREATE TABLE main.T (
a TEXT,
b TEXT,
c REAL
);
INSERT INTO T VALUES ('a','b',-(-('[1,2,3]'))), ('a','c',-datetime(x'3ea400a5e66ccb', '+1 day')), ('b','d',jsonb_array(char(0)));
SELECT
COALESCE(a,'e') AS d,
COALESCE(b,'f') AS e,
SUM(c) AS f
FROM T
GROUP BY a,b;
WITH cte AS (SELECT * FROM T), cte2 AS (SELECT * FROM cte) SELECT * FROM cte2;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_7700 ON T(b COLLATE NOCASE) WHERE NOT NOT (b IS NOT NULL) ;
REINDEX T;
INSERT INTO T VALUES (NULL, NULL, NULL);
CREATE TRIGGER IF NOT EXISTS trg_T_5109 AFTER INSERT ON T FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END;
WITH cte AS (SELECT a, SUM(a) AS total FROM T GROUP BY a) SELECT * FROM cte ORDER BY total DESC;
PRAGMA vdbe_debug = NO;
VACUUM;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<98) SELECT * FROM cnt;
SELECT MIN(c) OVER (PARTITION BY c ORDER BY c RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T;
SELECT * FROM T;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_7241 ON T(b COLLATE NOCASE);
UPDATE T SET c = NULL WHERE rowid = 1;
```
## Actual output
```sql
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
||
```
## Expectation
```sql
```
## Flag
```
-nonce "n0Nc3"
```
@@ -0,0 +1,76 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
.timeout -9223372036854775809
CREATE TABLE T (
a INTEGER,
b TEXT,
c REAL,
d REAL
);
INSERT INTO T VALUES (nullif(CAST(unixepoch(jsonb_replace(1, '$.key', 1)) AS REAL), 'same'),'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
SELECT b FROM T WHERE ABS(c) > 5 AND ABS(d) > 5;
CREATE TABLE t1(a INTEGER /* .schema !@#$%^&*()qwertyuiop[]\{}|asdfghjkl;':"zxcvbnm,./<>? */ PRIMARY KEY,R);
CREATE TABLE main.t2(x UNIQUE);
CREATE VIEW v1a(z,y) AS SELECT x IS NULL, x FROM t2;
SELECT a,(+a)b,(+a)b,(+a)b,NOT EXISTS(SELECT null FROM t2),CASE z WHEN max(json_type(487, '$.key'), 487) THEN 992 WHEN 391 THEN 203 WHEN 10 THEN '?k<D Q' END,'' FROM t1 LEFT JOIN v1a ON z=b;
PRAGMA short_column_names = 1;
SELECT LEAD(b) OVER (PARTITION BY b ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T;
WITH RECURSIVE fib(a,b,n) AS (VALUES(1,1,1) UNION ALL SELECT b, a+b, n+1 FROM fib WHERE n<7) SELECT a, n FROM fib;
UPDATE T SET b = b + 1 WHERE b IS NOT NULL;
CREATE INDEX IF NOT EXISTS idx_t1_565 ON t1(a COLLATE NOCASE) WHERE a IS NOT NULL;
DELETE FROM t1 WHERE 1;
INSERT INTO t2 VALUES (NULL) ON CONFLICT(x) DO UPDATE SET x = excluded.x;
UPDATE T SET c = NULL WHERE c BETWEEN 0 AND 100 RETURNING *;
CREATE INDEX IF NOT EXISTS idx_T_9869 ON T(c COLLATE NOCASE);
SELECT * FROM t2;
SELECT COUNT(*) FROM t1;
INSERT INTO T SELECT * FROM T;
INSERT INTO t2 DEFAULT VALUES;
DELETE FROM t1 WHERE a IS NULL RETURNING *;
SELECT COUNT(x) OVER (ORDER BY x ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM t2;
SELECT * FROM t1 WHERE a = (SELECT COUNT(*) FROM t1);
ALTER TABLE T RENAME COLUMN c TO c_r3754;
REINDEX T;
SELECT GROUP_CONCAT(b) FROM T;
WITH cte AS (SELECT COUNT(*) AS cnt FROM t2) SELECT * FROM cte WHERE cnt > 0;
SELECT * FROM t2 WHERE NOT EXISTS (SELECT 1 FROM t2 t2 WHERE t2.x = t2.x);
DELETE FROM t2 WHERE x IS NULL;
DROP INDEX IF EXISTS t1;
```
## Actual output
```sql
1|1
1|2
2|3
3|4
5|5
8|6
13|7
0
0
0
2
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,112 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
PRAGMA secure_delete = TRUE;
PRAGMA synchronous = 'EXTRA';
ATTACH DATABASE ':memory:' AS aux3;
SAVEPOINT sp3642;
PRAGMA vdbe_debug = NO;
SELECT atanh(randomblob(0))x0ACB29BM205381;
SELECT sqlite_compileoption_used('我的天你是怎么了');
SELECT 1 >> -999999999999999999999999999;
SELECT sqlite_compileoption_get($1);
SELECT sqlite_version();
PRAGMA recursive_triggers = -2173336511320358554;
PRAGMA cache_size;
.cd bugs
PRAGMA encoding=UTF16le;
CREATE TABLE tkt3376(a COLLATE nocase PRIMARY KEY);
INSERT INTO tkt3376 VALUES('abc');
INSERT INTO tkt3376 VALUES('ABX');
SELECT DISTINCT a FROM tkt3376;
WITH cte(x) AS (SELECT a FROM tkt3376) SELECT x FROM cte;
RELEASE sp3642;
PRAGMA temp_store_directory = "/tmp";
PRAGMA data_store_directory = "/tmp";
DELETE FROM tkt3376 WHERE 1;
INSERT INTO tkt3376 VALUES (NULL);
UPDATE tkt3376 SET a = CURRENT_TIMESTAMP WHERE 1 RETURNING *;
DETACH DATABASE aux3;
WITH cte AS (SELECT a, COUNT(*) FROM tkt3376 GROUP BY a) SELECT * FROM cte;
WITH cte AS (SELECT 1 AS x) SELECT x + 0.5 FROM cte;
REINDEX tkt3376;
SELECT * FROM tkt3376 AS a FULL JOIN tkt3376 AS b ON a.rowid = b.rowid;
SELECT * FROM tkt3376;
SELECT MIN(a) FROM tkt3376;
CREATE TABLE T (
a INTEGER,
b REAL,
c REAL
);
INSERT INTO T VALUES (1,2.0,10.5), (1,-3.5,20.25), (2,9e999,-1.0);
WITH d AS (SELECT a,SUM(b*c) AS e FROM T GROUP BY a) SELECT * FROM d;
INSERT INTO T VALUES (NULL, NULL, NULL);
SELECT * FROM T WHERE (a) IN (SELECT a FROM T);
CREATE INDEX IF NOT EXISTS idx_T_8734 ON T(a);
DROP TABLE IF EXISTS tkt3376;
VACUUM;
```
## Actual output
```sql
1
0
0
ATOMIC_INTRINSICS=1
3.39.0
-2000
abc
ABX
abc
ABX
2026-05-15 11:46:00
2026-05-15 11:46:00|1
1.5
2026-05-15 11:46:00|2026-05-15 11:46:00
2026-05-15 11:46:00
2026-05-15 11:46:00
1|-49.875
2|-Inf
1|2.0|10.5
1|-3.5|20.25
2|Inf|-1.0
```
## Expectation
```sql
1
0
0
ATOMIC_INTRINSICS=1
3.51.1
-2000
abc
ABX
abc
ABX
2026-05-15 11:46:00
2026-05-15 11:46:00|1
1.5
2026-05-15 11:46:00|2026-05-15 11:46:00
2026-05-15 11:46:00
2026-05-15 11:46:00
1|-49.875
2|-Inf
1|2.0|10.5
1|-3.5|20.25
2|Inf|-1.0
```
## Flag
```
```
@@ -0,0 +1,827 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
PRAGMA empty_result_callbacks = FALSE;
PRAGMA parser_trace = TRUE;
ATTACH DATABASE ':memory:' AS aux57;
CREATE TABLE T (
a TEXT,
b TEXT
);
INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01');
SELECT a,
CAST(
(julianday('now')-julianday(b))/round(-x'5ec538d0917842f96acf501f')
AS INTEGER
) AS c
FROM T;
PRAGMA vdbe_debug = OFF;
BEGIN IMMEDIATE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (-(-(timediff(-instr(NULL, NULL), 6905746167837027873))), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', /* if(0, {v}, 0, {v}) */ 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
((((PRAGMA)))) application_id = ',';
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (-NULL,json_valid(1.5, 6)), (2,-7.25), (3,0.0);
SELECT a,b FROM T WHERE NOT NOT (a >= 2) ORDER BY b;
PRAGMA read_uncommitted = FALSE;
WITH cte AS (SELECT b FROM T UNION SELECT b FROM T) SELECT * FROM cte;
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;
SELECT COUNT(*) FROM T;
INSERT INTO T VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
SELECT * FROM T;
PRAGMA query_only;
ALTER TABLE T RENAME TO T_r407;
UPDATE T SET a = NULL WHERE 1;
ALTER TABLE T RENAME COLUMN b TO b_r5239;
ALTER TABLE T DROP COLUMN b;
ALTER TABLE T ADD COLUMN extra_7854 DATETIME DEFAULT NULL;
SELECT * FROM (SELECT * FROM t1) AS t1 JOIN (SELECT * FROM t1) AS t2 ON t1.b = t2.b;
END;
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;
SELECT * FROM T WHERE b <= ANY (SELECT b FROM T);
VACUUM main;
ANALYZE T;
SELECT LAG(c, c) OVER (ORDER BY c ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
REINDEX T;
INSERT INTO T DEFAULT VALUES;
PRAGMA query_only = OFF;
WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_3010 ON t1(a) WHERE
a > 0;
ANALYZE;
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
VACUUM;
ALTER TABLE t1 RENAME TO t1_r1192;
DROP TRIGGER IF EXISTS T;
WITH cte AS (SELECT * FROM T WHERE c IN (SELECT c FROM T LIMIT 5)) SELECT * FROM cte;
DELETE FROM T WHERE a > (SELECT AVG(a) FROM T) RETURNING *;
SELECT * FROM (SELECT * FROM T ORDER BY b) AS sub LIMIT 10;
PRAGMA data_version;
CREATE TABLE T1 (
A VARCHAR(20),
X VARCHAR(10),
PRIMARY KEY (A, X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10),
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 EXCEPT SELECT A FROM T2;
ALTER TABLE T ADD COLUMN extra_7767 DOUB DEFAULT 0;
SELECT * FROM T2 CROSS JOIN T2;
UPDATE T1 SET X = 'x' WHERE 1;
ALTER TABLE T1 DROP COLUMN A;
CREATE TABLE T (
a TEXT,
b TEXT
);
INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01');
SELECT a,
CAST(
(julianday('now')-julianday(b))/round(-9223372036854775809)
AS INTEGER
) AS c
FROM T;
PRAGMA vdbe_debug = OFF;
BEGIN IMMEDIATE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (-(-(timediff(-instr(NULL, NULL), 6905746167837027873))), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', /* if(0, {v}, 0, {v}) */ 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
((((PRAGMA)))) application_id = ',';
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (-NULL,json_valid(1.5, 6)), (2,-7.25), (3,0.0);
SELECT a,b FROM T WHERE NOT NOT (a >= 2) ORDER BY b;
PRAGMA read_uncommitted = FALSE;
WITH cte AS (SELECT b FROM T UNION SELECT b FROM T) SELECT * FROM cte;
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;
SELECT COUNT(*) FROM T;
INSERT INTO T VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
SELECT * FROM T;
PRAGMA query_only;
ALTER TABLE T RENAME TO T_r407;
UPDATE T SET a = NULL WHERE 1;
ALTER TABLE T RENAME COLUMN b TO b_r5239;
ALTER TABLE T DROP COLUMN b;
ALTER TABLE T ADD COLUMN extra_7854 DATETIME DEFAULT NULL;
SELECT * FROM (SELECT * FROM t1) AS t1 JOIN (SELECT * FROM t1) AS t2 ON t1.b = t2.b;
END;
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;
SELECT * FROM T WHERE b <= ANY (SELECT b FROM T);
VACUUM main;
ANALYZE T;
SELECT LAG(c, c) OVER (ORDER BY c ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
REINDEX T;
INSERT INTO T DEFAULT VALUES;
PRAGMA query_only = OFF;
WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_3010 ON t1(a) WHERE
a > 0;
ANALYZE;
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
VACUUM;
ALTER TABLE t1 RENAME TO t1_r1192;
DROP TRIGGER IF EXISTS T;
WITH cte AS (SELECT * FROM T WHERE c IN (SELECT c FROM T LIMIT 5)) SELECT * FROM cte;
DELETE FROM T WHERE a > (SELECT AVG(a) FROM T) RETURNING *;
SELECT * FROM (SELECT * FROM T ORDER BY b) AS sub LIMIT 10;
PRAGMA data_version;
CREATE TABLE T1 (
A VARCHAR(20),
X VARCHAR(10),
PRIMARY KEY (A, X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10),
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 EXCEPT SELECT A FROM T2;
ALTER TABLE T ADD COLUMN extra_7767 DOUB DEFAULT 0;
SELECT * FROM T2 CROSS JOIN T2;
UPDATE T1 SET X = 'x' WHERE 1;
ALTER TABLE T1 DROP COLUMN A;
CREATE TABLE T (
a TEXT,
b TEXT
);
INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01');
SELECT a,
CAST(
(julianday('now')-julianday(b))/round(-9223372036854775809)
AS INTEGER
) AS c
FROM T;
PRAGMA vdbe_debug = OFF;
BEGIN IMMEDIATE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (-(-(timediff(-instr(NULL, NULL), 6905746167837027873))), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', /* if(0, {v}, 0, {v}) */ 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
((((PRAGMA)))) application_id = ',';
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (-NULL,json_valid(1.5, 6)), (2,-7.25), (3,0.0);
SELECT a,b FROM T WHERE NOT NOT (a >= 2) ORDER BY b;
PRAGMA read_uncommitted = FALSE;
WITH cte AS (SELECT b FROM T UNION SELECT b FROM T) SELECT * FROM cte;
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;
SELECT COUNT(*) FROM T;
INSERT INTO T VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
SELECT * FROM T;
PRAGMA query_only;
ALTER TABLE T RENAME TO T_r407;
UPDATE T SET a = NULL WHERE 1;
ALTER TABLE T RENAME COLUMN b TO b_r5239;
ALTER TABLE T DROP COLUMN b;
ALTER TABLE T ADD COLUMN extra_7854 DATETIME DEFAULT NULL;
SELECT * FROM (SELECT * FROM t1) AS t1 JOIN (SELECT * FROM t1) AS t2 ON t1.b = t2.b;
END;
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;
SELECT * FROM T WHERE b <= ANY (SELECT b FROM T);
VACUUM main;
ANALYZE T;
SELECT LAG(c, c) OVER (ORDER BY c ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
REINDEX T;
INSERT INTO T DEFAULT VALUES;
PRAGMA query_only = OFF;
WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_3010 ON t1(a) WHERE
a > 0;
ANALYZE;
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
VACUUM;
ALTER TABLE t1 RENAME TO t1_r1192;
DROP TRIGGER IF EXISTS T;
WITH cte AS (SELECT * FROM T WHERE c IN (SELECT c FROM T LIMIT 5)) SELECT * FROM cte;
DELETE FROM T WHERE a > (SELECT AVG(a) FROM T) RETURNING *;
SELECT * FROM (SELECT * FROM T ORDER BY b) AS sub LIMIT 10;
PRAGMA data_version;
CREATE TABLE T1 (
A VARCHAR(20),
X VARCHAR(10),
PRIMARY KEY (A, X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10),
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 EXCEPT SELECT A FROM T2;
ALTER TABLE T ADD COLUMN extra_7767 DOUB DEFAULT 0;
SELECT * FROM T2 CROSS JOIN T2;
UPDATE T1 SET X = 'x' WHERE 1;
ALTER TABLE T1 DROP COLUMN A;
CREATE TABLE T (
a TEXT,
b TEXT
);
INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01');
SELECT a,
CAST(
(julianday('now')-julianday(b))/round(-9223372036854775809)
AS INTEGER
) AS c
FROM T;
PRAGMA vdbe_debug = OFF;
BEGIN IMMEDIATE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (-(-(timediff(-instr(NULL, NULL), 6905746167837027873))), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', /* if(0, {v}, 0, {v}) */ 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
((((PRAGMA)))) application_id = ',';
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (-NULL,json_valid(1.5, 6)), (2,-7.25), (3,0.0);
SELECT a,b FROM T WHERE NOT NOT (a >= 2) ORDER BY b;
PRAGMA read_uncommitted = FALSE;
WITH cte AS (SELECT b FROM T UNION SELECT b FROM T) SELECT * FROM cte;
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;
SELECT COUNT(*) FROM T;
INSERT INTO T VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
SELECT * FROM T;
PRAGMA query_only;
ALTER TABLE T RENAME TO T_r407;
UPDATE T SET a = NULL WHERE 1;
ALTER TABLE T RENAME COLUMN b TO b_r5239;
ALTER TABLE T DROP COLUMN b;
ALTER TABLE T ADD COLUMN extra_7854 DATETIME DEFAULT NULL;
SELECT * FROM (SELECT * FROM t1) AS t1 JOIN (SELECT * FROM t1) AS t2 ON t1.b = t2.b;
END;
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;
SELECT * FROM T WHERE b <= ANY (SELECT b FROM T);
VACUUM main;
ANALYZE T;
SELECT LAG(c, c) OVER (ORDER BY c ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
REINDEX T;
INSERT INTO T DEFAULT VALUES;
PRAGMA query_only = OFF;
WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_3010 ON t1(a) WHERE
a > 0;
ANALYZE;
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
VACUUM;
ALTER TABLE t1 RENAME TO t1_r1192;
DROP TRIGGER IF EXISTS T;
WITH cte AS (SELECT * FROM T WHERE c IN (SELECT c FROM T LIMIT 5)) SELECT * FROM cte;
DELETE FROM T WHERE a > (SELECT AVG(a) FROM T) RETURNING *;
SELECT * FROM (SELECT * FROM T ORDER BY b) AS sub LIMIT 10;
PRAGMA data_version;
CREATE TABLE T1 (
A VARCHAR(20),
X VARCHAR(10),
PRIMARY KEY (A, X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10),
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 EXCEPT SELECT A FROM T2;
ALTER TABLE T ADD COLUMN extra_7767 DOUB DEFAULT 0;
SELECT * FROM T2 CROSS JOIN T2;
UPDATE T1 SET X = 'x' WHERE 1;
ALTER TABLE T1 DROP COLUMN A;
CREATE TABLE T (
a TEXT,
b TEXT
);
INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01');
SELECT a,
CAST(
(julianday('now')-julianday(b))/round(-9223372036854775809)
AS INTEGER
) AS c
FROM T;
PRAGMA vdbe_debug = OFF;
BEGIN IMMEDIATE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (-(-(timediff(-instr(NULL, NULL), 6905746167837027873))), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', /* if(0, {v}, 0, {v}) */ 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
((((PRAGMA)))) application_id = ',';
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (-NULL,json_valid(1.5, 6)), (2,-7.25), (3,0.0);
SELECT a,b FROM T WHERE NOT NOT (a >= 2) ORDER BY b;
PRAGMA read_uncommitted = FALSE;
WITH cte AS (SELECT b FROM T UNION SELECT b FROM T) SELECT * FROM cte;
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;
SELECT COUNT(*) FROM T;
INSERT INTO T VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
SELECT * FROM T;
PRAGMA query_only;
ALTER TABLE T RENAME TO T_r407;
UPDATE T SET a = NULL WHERE 1;
ALTER TABLE T RENAME COLUMN b TO b_r5239;
ALTER TABLE T DROP COLUMN b;
ALTER TABLE T ADD COLUMN extra_7854 DATETIME DEFAULT NULL;
SELECT * FROM (SELECT * FROM t1) AS t1 JOIN (SELECT * FROM t1) AS t2 ON t1.b = t2.b;
END;
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;
SELECT * FROM T WHERE b <= ANY (SELECT b FROM T);
VACUUM main;
ANALYZE T;
SELECT LAG(c, c) OVER (ORDER BY c ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
REINDEX T;
INSERT INTO T DEFAULT VALUES;
PRAGMA query_only = OFF;
WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_3010 ON t1(a) WHERE
a > 0;
ANALYZE;
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
VACUUM;
ALTER TABLE t1 RENAME TO t1_r1192;
DROP TRIGGER IF EXISTS T;
WITH cte AS (SELECT * FROM T WHERE c IN (SELECT c FROM T LIMIT 5)) SELECT * FROM cte;
DELETE FROM T WHERE a > (SELECT AVG(a) FROM T) RETURNING *;
SELECT * FROM (SELECT * FROM T ORDER BY b) AS sub LIMIT 10;
PRAGMA data_version;
CREATE TABLE T1 (
A VARCHAR(20),
X VARCHAR(10),
PRIMARY KEY (A, X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10),
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 EXCEPT SELECT A FROM T2;
ALTER TABLE T ADD COLUMN extra_7767 DOUB DEFAULT 0;
SELECT * FROM T2 CROSS JOIN T2;
UPDATE T1 SET X = 'x' WHERE 1;
ALTER TABLE T1 DROP COLUMN A;
CREATE TABLE T (
a TEXT,
b TEXT /* substr(randomblob(10), 1, 5) */ );
INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01');
SELECT a,
CAST(
(julianday('now')-julianday(b))/round(-9223372036854775809)
AS INTEGER
) AS c
FROM T;
PRAGMA vdbe_debug = OFF;
BEGIN IMMEDIATE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (-(-(timediff(-instr(NULL, NULL), 6905746167837027873))), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', /* if(0, {v}, 0, {v}) */ 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
((((PRAGMA)))) application_id = ',';
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (-NULL,json_valid(1.5, 6)), (2,-7.25), (3,0.0);
SELECT a,b FROM T WHERE NOT NOT (a >= 2) ORDER BY b;
PRAGMA read_uncommitted = FALSE;
WITH cte AS (SELECT b FROM T UNION SELECT b FROM T) SELECT * FROM cte;
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;
SELECT COUNT(*) FROM T;
INSERT INTO T VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
SELECT * FROM T;
PRAGMA query_only;
ALTER TABLE T RENAME TO T_r407;
UPDATE T SET a = NULL WHERE 1;
ALTER TABLE T RENAME COLUMN b TO b_r5239;
ALTER TABLE T DROP COLUMN b;
ALTER TABLE T ADD COLUMN extra_7854 DATETIME DEFAULT NULL;
SELECT * FROM (SELECT * FROM t1) AS t1 JOIN (SELECT * FROM t1) AS t2 ON t1.b = t2.b;
END;
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;
SELECT * FROM T WHERE b <= ANY (SELECT b FROM T);
VACUUM main;
ANALYZE T;
SELECT LAG(c, c) OVER (ORDER BY c ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
REINDEX T;
INSERT INTO T DEFAULT VALUES;
PRAGMA query_only = OFF;
WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_3010 ON t1(a) WHERE
a > 0;
ANALYZE;
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
VACUUM;
ALTER TABLE t1 RENAME TO t1_r1192;
DROP TRIGGER IF EXISTS T;
WITH cte AS (SELECT * FROM T WHERE c IN (SELECT c FROM T LIMIT 5)) SELECT * FROM cte;
DELETE FROM T WHERE a > (SELECT AVG(a) FROM T) RETURNING *;
SELECT * FROM (SELECT * FROM T ORDER BY b) AS sub LIMIT 10;
PRAGMA data_version;
CREATE TABLE T1 (
A VARCHAR(20),
X VARCHAR(10),
PRIMARY KEY (A, X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10),
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 EXCEPT SELECT A FROM T2;
ALTER TABLE T ADD COLUMN extra_7767 DOUB DEFAULT 0;
SELECT * FROM T2 CROSS JOIN T2;
UPDATE T1 SET X = 'x' WHERE 1;
ALTER TABLE T1 DROP COLUMN A;
CREATE TABLE T (
a TEXT,
b TEXT
);
INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01');
SELECT a,
CAST(
(julianday('now')-julianday(b))/round(-9223372036854775809)
AS INTEGER
) AS c
FROM T;
PRAGMA vdbe_debug = OFF;
BEGIN IMMEDIATE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (-(-(timediff(-instr(NULL, NULL), 6905746167837027873))), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', /* if(0, {v}, 0, {v}) */ 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
((((PRAGMA)))) application_id = ',';
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (-NULL,json_valid(1.5, 6)), (2,-7.25), (3,0.0);
SELECT a,b FROM T WHERE NOT NOT (a >= 2) ORDER BY b;
PRAGMA read_uncommitted = FALSE;
WITH cte AS (SELECT b FROM T UNION SELECT b FROM T) SELECT * FROM cte;
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;
SELECT COUNT(*) FROM T;
INSERT INTO T VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
SELECT * FROM T;
PRAGMA query_only;
ALTER TABLE T RENAME TO T_r407;
UPDATE T SET a = NULL WHERE 1;
ALTER TABLE T RENAME COLUMN b TO b_r5239;
ALTER TABLE T DROP COLUMN b;
ALTER TABLE T ADD COLUMN extra_7854 DATETIME DEFAULT NULL;
SELECT * FROM (SELECT * FROM t1) AS t1 JOIN (SELECT * FROM t1) AS t2 ON t1.b = t2.b;
END;
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;
SELECT * FROM T WHERE b <= ANY (SELECT b FROM T);
VACUUM main;
ANALYZE T;
SELECT LAG(c, c) OVER (ORDER BY c ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
REINDEX T;
INSERT INTO T DEFAULT VALUES;
PRAGMA query_only = OFF;
WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_3010 ON t1(a) WHERE
a > 0;
ANALYZE;
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
VACUUM;
ALTER TABLE t1 RENAME TO t1_r1192;
DROP TRIGGER IF EXISTS T;
WITH cte AS (SELECT * FROM T WHERE c IN (SELECT c FROM T LIMIT 5)) SELECT * FROM cte;
DELETE FROM T WHERE a > (SELECT AVG(a) FROM T) RETURNING *;
SELECT * FROM (SELECT * FROM T ORDER BY b) AS sub LIMIT 10;
PRAGMA data_version;
CREATE TABLE T1 (
A VARCHAR(20),
X VARCHAR(10),
PRIMARY KEY (A, X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10),
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 EXCEPT SELECT A FROM T2;
ALTER TABLE T ADD COLUMN extra_7767 DOUB DEFAULT 0;
SELECT * FROM T2 CROSS JOIN T2;
UPDATE T1 SET X = 'x' WHERE 1;
ALTER TABLE T1 DROP COLUMN A;
CREATE TABLE T (
a TEXT,
b TEXT
);
INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01');
SELECT a,
CAST(
(julianday('now')-julianday(b))/round(-9223372036854775809)
AS INTEGER
) AS c
FROM T;
PRAGMA vdbe_debug = OFF;
BEGIN IMMEDIATE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (-(-(timediff(-instr(NULL, NULL), 6905746167837027873))), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', /* if(0, {v}, 0, {v}) */ 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
((((PRAGMA)))) application_id = ',';
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (-NULL,json_valid(1.5, 6)), (2,-7.25), (3,0.0);
SELECT a,b FROM T WHERE NOT NOT (a >= 2) ORDER BY b;
PRAGMA read_uncommitted = FALSE;
WITH cte AS (SELECT b FROM T UNION SELECT b FROM T) SELECT * FROM cte;
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;
SELECT COUNT(*) FROM T;
INSERT INTO T VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
SELECT * FROM T;
PRAGMA query_only;
ALTER TABLE T RENAME TO T_r407;
UPDATE T SET a = NULL WHERE 1;
ALTER TABLE T RENAME COLUMN b TO b_r5239;
ALTER TABLE T DROP COLUMN b;
ALTER TABLE T ADD COLUMN extra_7854 DATETIME DEFAULT NULL;
SELECT * FROM (SELECT * FROM t1) AS t1 JOIN (SELECT * FROM t1) AS t2 ON t1.b = t2.b;
END;
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;
SELECT * FROM T WHERE b <= ANY (SELECT b FROM T);
VACUUM main;
ANALYZE T;
SELECT LAG(c, c) OVER (ORDER BY c ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
REINDEX T;
INSERT INTO T DEFAULT VALUES;
PRAGMA query_only = OFF;
WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_3010 ON t1(a) WHERE
a > 0;
ANALYZE;
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
VACUUM;
ALTER TABLE t1 RENAME TO t1_r1192;
DROP TRIGGER IF EXISTS T;
WITH cte AS (SELECT * FROM T WHERE c IN (SELECT c FROM T LIMIT 5)) SELECT * FROM cte;
DELETE FROM T WHERE a > (SELECT AVG(a) FROM T) RETURNING *;
SELECT * FROM (SELECT * FROM T ORDER BY b) AS sub LIMIT 10;
PRAGMA data_version;
CREATE TABLE T1 (
A VARCHAR(20),
X VARCHAR(10),
PRIMARY KEY (A, X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10),
PRIMARY KEY (A, Y)
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
SELECT A FROM T1 EXCEPT SELECT A FROM T2;
ALTER TABLE T ADD COLUMN extra_7767 DOUB DEFAULT 0;
SELECT * FROM T2 CROSS JOIN T2;
UPDATE T1 SET X = 'x' WHERE 1;
ALTER TABLE T1 DROP COLUMN A;
SELECT * FROM (SELECT a FROM T WHERE a IS NOT NULL) AS sub;
DETACH DATABASE aux57;
CREATE TEMPORARY VIEW IF NOT EXISTS v_T1_4243 AS SELECT X FROM T1;
SELECT * FROM t1 CROSS JOIN T2;
INSERT INTO T VALUES (NULL, 'x', 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
INSERT INTO T DEFAULT VALUES;
SELECT NTILE(Y) OVER (ORDER BY Y RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T2;
INSERT INTO T2 DEFAULT VALUES;
SELECT * FROM t1 AS a FULL JOIN T AS b ON a.rowid = b.rowid;
INSERT INTO T2 DEFAULT VALUES;
INSERT INTO t1 VALUES (NULL, 1, 'x', 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
CREATE INDEX IF NOT EXISTS idx_T_1265 ON T((c + 1)) WHERE c IS NOT NULL;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_1185 ON T1((X + 1)) WHERE X IS NOT NULL;
DROP INDEX IF EXISTS T2;
DROP TRIGGER IF EXISTS T1;
```
## Actual output
```sql
a|
b|
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
Braun|30|3
von|20|2
Braun|30
von|20
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,129 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
.clone new_db
SAVEPOINT sp6007;
CREATE TABLE t1(a BIGINT PRIMARY KEY, b TEXT, c INT, d INT);
-- PRAGMA short_column_names;
INSERT INTO t1 VALUES (x'7b90b0351e531a0993e701583bc65b31', '' || ('Wernher'), 'ÅÄÖËŸÏaáàưôốồỗổộơớờỡởợđ', if('NaN', 100, 0, 100, 1, 100));
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
SAVEPOINT sp9475;
SELECT -if(0, 2, 1, 2)147483648x0ACB29BM205381;
SELECT sqlite_compileoption_used('我的天你是怎么了');
SELECT 1 >> -999999999999999999999999999;
SELECT sqlite_compileoption_get($1);
SELECT sqlite_version();
CREATE TABLE main.main.T (
a INTEGER,
b REAL,
c REAL
);
INSERT INTO T VALUES (1,1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
WITH _m AS MATERIALIZED (SELECT * FROM T) SELEC_m * FROM T WHERE NOT NOT (NOT NOT (b < 2.0)) ORDER BY b;
INSERT INTO T DEFAULT VALUES;
DELETE FROM T WHERE rowid = 35 RETURNING *;
ROLLBACK TO sp9475;
RELEASE sp9475;
SELECT TOTAL(b) FROM T;
ALTER TABLE T ADD COLUMN extra_1915 DATE COLLATE NOCASE;
SELECT * FROM (SELECT * FROM T) AS sub;
SELECT COUNT(*) FROM T;
SELECT * FROM T AS a JOIN T AS b ON a.rowid = b.rowid;
WITH cte AS (SELECT CASE WHEN a > 0 THEN "pos" ELSE "neg" END AS sign FROM T) SELECT * FROM cte;
CREATE VIRTUAL TABLE T
USING /* char(-1) */ fts5(a,b);
INSERT INTO T VALUES ('a','b c'), ('d','e f');
SELECT a,b FROM T WHERE T MATCH 'b';
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
SELECT * FROM T;
ALTER TABLE t1 ADD COLUMN extra_5180 BOOLEAN DEFAULT '';
CREATE /**/ TABLE T (
a TEXT,
b TEXT,
c REAL
);
INSERT INTO T VALUES ('a','b',5.0), ('a','c',5.0), ('b','d',-8.25);
SELECT a,b,c,
RANK() OVER (PARTITION BY a ORDER BY c DESC) AS d FROM T;
UPDATE T SET a = 'x' WHERE a BETWEEN 0 AND 100;
SELECT * FROM (SELECT * FROM (SELECT * FROM T) AS inner1) AS inner2;
CREATE TABLE T (
A VARCHAR(20),
B VARCHAR(10),
C INTEGER,
PRIMARY KEY (A, B)
);
INSERT INTO T VALUES ('a', 'p', -2147483648);
INSERT INTO T VALUES ('b', 'q', 100);
INSERT INTO T VALUES ('b', 'r', 200);
INSERT INTO T VALUES ('c', 's', 300);
INSERT INTO T VALUES ('d', 't', 2147483647);
INSERT INTO T VALUES ('b', 't', 50);
SELECT A, COUNT(*) AS D, SUM(C) AS E FROM T GROUP BY A HAVING COUNT(*) > 1;
DELETE FROM t1 WHERE d IS NULL;
ALTER TABLE t1 ADD COLUMN extra_7051 TINYINT DEFAULT '';
CREATE TABLE T (
a TEXT,
b TEXT,
c REAL
);
INSERT INTO T VALUES ('a','b',1.0), ('a','c',-1.0), ('b','d',0.0);
SELECT
COALESCE(a,'e') AS d,
COALESCE(b,'f') AS e,
SUM(c) AS f
FROM T
GROUP BY a,b;
RELEASE sp6007;
ALTER TABLE T RENAME COLUMN A TO A_r533;
CREATE INDEX IF NOT EXISTS idx_t1_6721 ON t1(lower(c));
UPDATE t1 SET b = CURRENT_TIMESTAMP WHERE rowid = 1;
SELECT * FROM T;
SELECT C FROM T EXCEPT SELECT C FROM (SELECT * FROM T) AS sub;
INSERT INTO T VALUES (NULL, 'x', 'x') ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
SELECT * FROM T;
CREATE INDEX IF NOT EXISTS idx_t1_3859 ON t1((b + 1));
INSERT OR ABORT INTO T VALUES ('x', '', '');
INSERT INTO T VALUES (NULL, NULL, NULL);
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<16) SELECT COUNT(*) FROM cnt;
SELECT COUNT(*) FILTER (WHERE A IS NOT NULL), SUM(rowid) FILTER (WHERE A > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(A) FILTER (WHERE A > 0 AND A < 100), COUNT(*) FILTER (WHERE typeof(A) = "text") FROM T;
SELECT LAG(c, 2, c) OVER (ORDER BY c ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T;
ANALYZE t1;
DROP INDEX IF EXISTS T;
ALTER TABLE T ADD COLUMN extra_7325 INT8 COLLATE NOCASE;
```
## Actual output
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
Braun|30|2
von|20|1
Braun|30
von|20
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,336 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
.imposter off
PRAGMA synchronous;
.stats
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
VACUUM main;
.stats
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
VACUUM main;
.stats
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
VACUUM main;
.stats
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
VACUUM main;
.stats
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
VACUUM main;
.stats
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
VACUUM main;
VACUUM main;
```
## Actual output
```sql
2
Memory Used: 67704 (max 67744) bytes
Number of Outstanding Allocations: 141 (max 142)
Number of Pcache Overflow Bytes: 8464 (max 8464) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4360 bytes
Lookaside Slots Used: 32 (max 75)
Successful lookaside attempts: 87
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 9248 bytes
Page cache hits: 0
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Schema Heap Usage: 736 bytes
Statement Heap/Lookaside Usage: 0 bytes
Bytes received by read(): 6882
Bytes sent to write(): 2
Read() system calls: 13
Write() system calls: 1
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
Memory Used: 66952 (max 331000) bytes
Number of Outstanding Allocations: 123 (max 259)
Number of Pcache Overflow Bytes: 8464 (max 55144) bytes
Largest Allocation: 87200 bytes
Largest Pcache Allocation: 4360 bytes
Lookaside Slots Used: 32 (max 96)
Successful lookaside attempts: 1199
Lookaside failures due to size: 6
Lookaside failures due to OOM: 0
Pager Heap Usage: 9248 bytes
Page cache hits: 56
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Schema Heap Usage: 0 bytes
Statement Heap/Lookaside Usage: 0 bytes
Bytes received by read(): 7232
Bytes sent to write(): 1010
Read() system calls: 16
Write() system calls: 2
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
Memory Used: 66952 (max 331032) bytes
Number of Outstanding Allocations: 123 (max 263)
Number of Pcache Overflow Bytes: 8464 (max 55144) bytes
Largest Allocation: 87200 bytes
Largest Pcache Allocation: 4360 bytes
Lookaside Slots Used: 32 (max 96)
Successful lookaside attempts: 2311
Lookaside failures due to size: 12
Lookaside failures due to OOM: 0
Pager Heap Usage: 9248 bytes
Page cache hits: 58
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Schema Heap Usage: 0 bytes
Statement Heap/Lookaside Usage: 0 bytes
Bytes received by read(): 7329
Bytes sent to write(): 2024
Read() system calls: 18
Write() system calls: 3
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
Memory Used: 66952 (max 331032) bytes
Number of Outstanding Allocations: 123 (max 263)
Number of Pcache Overflow Bytes: 8464 (max 55144) bytes
Largest Allocation: 87200 bytes
Largest Pcache Allocation: 4360 bytes
Lookaside Slots Used: 32 (max 96)
Successful lookaside attempts: 3423
Lookaside failures due to size: 18
Lookaside failures due to OOM: 0
Pager Heap Usage: 9248 bytes
Page cache hits: 58
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Schema Heap Usage: 0 bytes
Statement Heap/Lookaside Usage: 0 bytes
Bytes received by read(): 7426
Bytes sent to write(): 3039
Read() system calls: 20
Write() system calls: 4
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
Memory Used: 66952 (max 331032) bytes
Number of Outstanding Allocations: 123 (max 263)
Number of Pcache Overflow Bytes: 8464 (max 55144) bytes
Largest Allocation: 87200 bytes
Largest Pcache Allocation: 4360 bytes
Lookaside Slots Used: 32 (max 96)
Successful lookaside attempts: 4535
Lookaside failures due to size: 24
Lookaside failures due to OOM: 0
Pager Heap Usage: 9248 bytes
Page cache hits: 58
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Schema Heap Usage: 0 bytes
Statement Heap/Lookaside Usage: 0 bytes
Bytes received by read(): 7523
Bytes sent to write(): 4054
Read() system calls: 22
Write() system calls: 5
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
Memory Used: 66952 (max 331032) bytes
Number of Outstanding Allocations: 123 (max 263)
Number of Pcache Overflow Bytes: 8464 (max 55144) bytes
Largest Allocation: 87200 bytes
Largest Pcache Allocation: 4360 bytes
Lookaside Slots Used: 32 (max 96)
Successful lookaside attempts: 5647
Lookaside failures due to size: 30
Lookaside failures due to OOM: 0
Pager Heap Usage: 9248 bytes
Page cache hits: 58
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Schema Heap Usage: 0 bytes
Statement Heap/Lookaside Usage: 0 bytes
Bytes received by read(): 7620
Bytes sent to write(): 5069
Read() system calls: 24
Write() system calls: 6
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
```
## Expectation
```sql
2
Memory Used: 68416 (max 68448) bytes
Number of Outstanding Allocations: 151 (max 152)
Number of Pcache Overflow Bytes: 8472 (max 8472) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4368 bytes
Lookaside Slots Used: 48 (max 86)
Successful lookaside attempts: 98
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 9256 bytes
Page cache hits: 0
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Temporary data spilled to disk: 0
Schema Heap Usage: 632 bytes
Statement Heap/Lookaside Usage: 0 bytes
Bytes received by read(): 7658
Bytes sent to write(): 2
Read() system calls: 14
Write() system calls: 1
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
Memory Used: 71880 (max 331576) bytes
Number of Outstanding Allocations: 134 (max 262)
Number of Pcache Overflow Bytes: 12568 (max 55176) bytes
Largest Allocation: 87360 bytes
Largest Pcache Allocation: 4368 bytes
Lookaside Slots Used: 48 (max 104)
Successful lookaside attempts: 1104
Lookaside failures due to size: 6
Lookaside failures due to OOM: 0
Pager Heap Usage: 9256 bytes
Page cache hits: 56
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Temporary data spilled to disk: 0
Schema Heap Usage: 0 bytes
Statement Heap/Lookaside Usage: 0 bytes
Bytes received by read(): 7796
Bytes sent to write(): 1049
Read() system calls: 17
Write() system calls: 2
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
Memory Used: 71880 (max 331576) bytes
Number of Outstanding Allocations: 134 (max 262)
Number of Pcache Overflow Bytes: 12568 (max 55176) bytes
Largest Allocation: 87360 bytes
Largest Pcache Allocation: 4368 bytes
Lookaside Slots Used: 48 (max 104)
Successful lookaside attempts: 2110
Lookaside failures due to size: 12
Lookaside failures due to OOM: 0
Pager Heap Usage: 9256 bytes
Page cache hits: 58
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Temporary data spilled to disk: 0
Schema Heap Usage: 0 bytes
Statement Heap/Lookaside Usage: 0 bytes
Bytes received by read(): 7893
Bytes sent to write(): 2104
Read() system calls: 19
Write() system calls: 3
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
Memory Used: 71880 (max 331576) bytes
Number of Outstanding Allocations: 134 (max 262)
Number of Pcache Overflow Bytes: 12568 (max 55176) bytes
Largest Allocation: 87360 bytes
Largest Pcache Allocation: 4368 bytes
Lookaside Slots Used: 48 (max 104)
Successful lookaside attempts: 3116
Lookaside failures due to size: 18
Lookaside failures due to OOM: 0
Pager Heap Usage: 9256 bytes
Page cache hits: 58
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Temporary data spilled to disk: 0
Schema Heap Usage: 0 bytes
Statement Heap/Lookaside Usage: 0 bytes
Bytes received by read(): 7990
Bytes sent to write(): 3160
Read() system calls: 21
Write() system calls: 4
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
Memory Used: 71880 (max 331576) bytes
Number of Outstanding Allocations: 134 (max 262)
Number of Pcache Overflow Bytes: 12568 (max 55176) bytes
Largest Allocation: 87360 bytes
Largest Pcache Allocation: 4368 bytes
Lookaside Slots Used: 48 (max 104)
Successful lookaside attempts: 4122
Lookaside failures due to size: 24
Lookaside failures due to OOM: 0
Pager Heap Usage: 9256 bytes
Page cache hits: 58
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Temporary data spilled to disk: 0
Schema Heap Usage: 0 bytes
Statement Heap/Lookaside Usage: 0 bytes
Bytes received by read(): 8087
Bytes sent to write(): 4216
Read() system calls: 23
Write() system calls: 5
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
Memory Used: 71880 (max 331576) bytes
Number of Outstanding Allocations: 134 (max 262)
Number of Pcache Overflow Bytes: 12568 (max 55176) bytes
Largest Allocation: 87360 bytes
Largest Pcache Allocation: 4368 bytes
Lookaside Slots Used: 48 (max 104)
Successful lookaside attempts: 5128
Lookaside failures due to size: 30
Lookaside failures due to OOM: 0
Pager Heap Usage: 9256 bytes
Page cache hits: 58
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Temporary data spilled to disk: 0
Schema Heap Usage: 0 bytes
Statement Heap/Lookaside Usage: 0 bytes
Bytes received by read(): 8184
Bytes sent to write(): 5272
Read() system calls: 25
Write() system calls: 6
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
```
## Flag
```
```
@@ -0,0 +1,56 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
BEGIN EXCLUSIVE;
.eqp auto
PRAGMA temp_store = '0';
-- .log ON
.explain auto
PRAGMA query_only = OFF;
ATTACH DATABASE ':memory:' AS aux18;
.log ON
PRAGMA /**/ legacy_alter_table = ON;
CREATE TABLE [T] (
a TEXT,
b INTEGER,
c REAL
);
INSERT INTO T VALUES ('a',NULL,jsonb_group_array(hex('hello'))), ('a',substr(julianday(CAST(-x'' AS BLOB)), -(-(ceiling(pi())))),-sign(-1)), ('b',1,4.5);
SELECT a,b,c,
SUM(c) OVER (
PARTITION BY a
ORDER BY b
) AS d
FROM T;
SELECT * FROM T AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
SELECT b, (SELECT AVG(b) FROM T) AS avg_val FROM T;
SELECT CUME_DIST() OVER (PARTITION BY a ORDER BY a RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T;
DETACH DATABASE aux18;
COMMIT TRANSACTION;
```
## Actual output
```sql
ERROR: Not a boolean value: "auto". Assuming "no".
Parse error near line 16: no such function: jsonb_group_array
INSERT INTO T VALUES ('a',NULL,jsonb_group_array(hex('hello'))), ('a',substr(j
error here ---^
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,389 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
PRAGMA vdbe_debug = NO;
.headers on
ATTACH DATABASE ':memory:' AS aux62;
-- IS
.stats
ATTACH DATABASE ':memory:' AS aux68;
-- -ascii
PRAGMA automatic_index = YES;
CREATE TABLE main.T (
a TINYINT,
b REAL
);
INSERT INTO T VALUES ('a',NULL), ('b',-round(trunc(log2(acos(NULL))), json_extract(CAST((x'357972894d4c' + -(-(randomblob('1e10')))) AS FLOAT), '$[#-1]'))), ('c',-(CAST(2147483649 AS FLOA) - 0));
SELECT a,b,
LEAD(b,1) OVER (ORDER BY b DESC) AS c,
NTILE(2) OVER (ORDER BY b DESC) AS d FROM T;
DELETE FROM T WHERE NOT NOT NOT (b IS NULL) ;
SELECT * FROM T WHERE b IN (SELECT b FROM T LIMIT 0);
PRAGMA writable_schema = 1;
SELECT COUNT(*) FROM T;
DETACH DATABASE aux68;
VACUUM;
SELECT b FROM T EXCEPT SELECT b FROM (SELECT * FROM T) AS sub;
DELETE FROM T WHERE a IS NULL RETURNING *;
CREATE TABLE main.t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
INSERT INTO t1 DEFAULT VALUES;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_1206 ON t1(lower(d));
CREATE TRIGGER IF NOT EXISTS trg_t1_1786 AFTER UPDATE OF b ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT COUNT(*) FILTER (WHERE a IS NOT NULL), SUM(rowid) FILTER (WHERE a > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(a) FILTER (WHERE a > 0 AND a < 100), COUNT(*) FILTER (WHERE typeof(a) = "text") FROM t1;
CREATE TABLE T (
a INTEGER,
b TEXT,
c REAL,
d REAL
);
INSERT INTO T VALUES (1,'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
SELECT b FROM T WHERE ABS(c) > 5 AND ABS(d) > 5;
DELETE FROM T WHERE rowid = 56;
SELECT * FROM T;
ANALYZE;
REINDEX t1;
CREATE TABLE T (
a TEXT,
b TEXT
);
INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01');
SELECT a,
CAST(
(julianday('now')-julianday(b))/365.25
AS INTEGER
) AS c
FROM T;
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
DETACH DATABASE aux62;
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
CREATE TEMP VIEW IF NOT EXISTS v_t1_4360 AS SELECT c FROM t1;
ALTER TABLE t1 RENAME TO t1_r613;
SELECT AVG(d) FROM t1;
REINDEX t1;
WITH cte AS (SELECT * FROM t1) UPDATE t1 SET a = (SELECT a FROM cte LIMIT 1) WHERE 1=0;
SELECT * FROM T FULL OUTER JOIN t1;
SELECT * FROM T;
ALTER TABLE T DROP COLUMN b;
CREATE TRIGGER IF NOT EXISTS trg_t1_7504 AFTER INSERT ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
INSERT INTO t1 VALUES ('x', 1, 'x', 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
CREATE TABLE T1 (
A VARCHAR(20) PRIMARY KEY,
X VARCHAR(10) UNIQUE
);
CREATE TABLE T2 (
A VARCHAR(20) PRIMARY KEY,
Y VARCHAR(10) UNIQUE
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
INSERT INTO T2 VALUES ('c', 'l');
SELECT A FROM T1 INTERSECT SELECT A FROM T2;
SELECT * FROM T2 WHERE A = (SELECT SUM(A) FROM T2);
ALTER TABLE T2 DROP COLUMN A;
UPDATE T1 SET X = NULL WHERE 1;
INSERT INTO T2 DEFAULT VALUES;
ANALYZE;
INSERT OR REPLACE INTO t1 VALUES ('x', 0, 0, 0);
PRAGMA vdbe_debug = NO;
.headers on
ATTACH DATABASE ':memory:' AS aux62;
-- IS
.stats
ATTACH DATABASE ':memory:' AS aux68;
-- -ascii
PRAGMA automatic_index = YES;
CREATE TABLE main.T (
a TEXT,
b REAL
);
INSERT INTO T VALUES ('a',NULL), ('b',-round(trunc(log2(acos(NULL))), json_extract(CAST((x'357972894d4c' + -(-(randomblob(16)))) AS FLOAT), '$[#-1]'))), ('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;
DELETE FROM T WHERE NOT NOT (b IS NULL) ;
SELECT * FROM T WHERE b IN (SELECT b FROM T LIMIT 0);
PRAGMA writable_schema = 1;
SELECT COUNT(*) FROM T;
DETACH DATABASE aux68;
VACUUM;
SELECT b FROM T EXCEPT SELECT b FROM (SELECT * FROM T) AS sub;
DELETE FROM T WHERE a IS NULL RETURNING *;
CREATE TABLE main.t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
INSERT INTO t1 DEFAULT VALUES;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_1206 ON t1(lower(d));
CREATE TRIGGER IF NOT EXISTS trg_t1_1786 AFTER UPDATE OF b ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT COUNT(*) FILTER (WHERE a IS NOT NULL), SUM(rowid) FILTER (WHERE a > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(a) FILTER (WHERE a > 0 AND a < 100), COUNT(*) FILTER (WHERE typeof(a) = "text") FROM t1;
CREATE TABLE T (
a INTEGER,
b TEXT,
c REAL,
d REAL
);
INSERT INTO T VALUES (1,'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
SELECT b FROM T WHERE ABS(c) > 5 AND ABS(d) > 5;
DELETE FROM T WHERE rowid = 56;
SELECT * FROM T;
ANALYZE;
REINDEX t1;
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
DETACH DATABASE aux62;
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
CREATE TEMP VIEW IF NOT EXISTS v_t1_4360 AS SELECT c FROM t1;
ALTER TABLE t1 RENAME TO t1_r613;
SELECT AVG(d) FROM t1;
REINDEX t1;
WITH cte AS (SELECT * FROM t1) UPDATE t1 SET a = (SELECT a FROM cte LIMIT 1) WHERE 1=0;
SELECT * FROM T FULL OUTER JOIN t1;
SELECT * FROM T;
ALTER TABLE T DROP COLUMN b;
CREATE TRIGGER IF NOT EXISTS trg_t1_7504 AFTER INSERT ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
INSERT INTO t1 VALUES ('x', 1, 'x', 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
CREATE TABLE T1 (
A VARCHAR(20) PRIMARY KEY,
X VARCHAR(10) UNIQUE
);
CREATE TABLE T2 (
A VARCHAR(20) PRIMARY KEY,
Y VARCHAR(10) UNIQUE
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
INSERT INTO T2 VALUES ('c', 'l');
SELECT A FROM T1 INTERSECT SELECT A FROM T2;
SELECT * FROM T2 WHERE A = (SELECT SUM(A) FROM T2);
ALTER TABLE T2 DROP COLUMN A;
UPDATE T1 SET X = NULL WHERE 1;
INSERT INTO T2 DEFAULT VALUES;
ANALYZE;
INSERT OR REPLACE INTO t1 VALUES ('x', 0, 0, 0);
PRAGMA vdbe_debug = NO;
.headers on
ATTACH DATABASE ':memory:' AS aux62;
-- IS
.stats
ATTACH DATABASE ':memory:' AS aux68;
-- -ascii
PRAGMA automatic_index = YES;
CREATE TABLE main.T (
a TEXT,
b REAL
);
INSERT INTO T VALUES ('a',NULL), ('b',-round(trunc(log2(acos(NULL))), json_extract(CAST((x'357972894d4c' + -(-(randomblob(16)))) AS FLOAT), '$[#-1]'))), ('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;
DELETE FROM T WHERE NOT NOT (b IS NULL) ;
SELECT * FROM T WHERE b IN (SELECT b FROM T LIMIT 0);
PRAGMA writable_schema = 1;
SELECT COUNT(*) FROM T;
DETACH DATABASE aux68;
VACUUM;
SELECT b FROM T EXCEPT SELECT b FROM (SELECT * FROM T) AS sub;
DELETE FROM T WHERE a IS NULL RETURNING *;
CREATE TABLE main.t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
INSERT INTO t1 DEFAULT VALUES;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_1206 ON t1(lower(d));
CREATE TRIGGER IF NOT EXISTS trg_t1_1786 AFTER UPDATE OF b ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT COUNT(*) FILTER (WHERE a IS NOT NULL), SUM(rowid) FILTER (WHERE a > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(a) FILTER (WHERE a > 0 AND a < 100), COUNT(*) FILTER (WHERE typeof(a) = "text") FROM t1;
CREATE TABLE T (
a INTEGER,
b TEXT,
c REAL,
d REAL
);
INSERT INTO T VALUES (1,'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
SELECT b FROM T WHERE ABS(c) > 5 AND ABS(d) > 5;
DELETE FROM T WHERE rowid = 56;
SELECT * FROM T;
ANALYZE;
REINDEX t1;
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
DETACH DATABASE aux62;
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
CREATE TEMP VIEW IF NOT EXISTS v_t1_4360 AS SELECT c FROM t1;
ALTER TABLE t1 RENAME TO t1_r613;
SELECT AVG(d) FROM t1;
REINDEX t1;
WITH cte AS (SELECT * FROM t1) UPDATE t1 SET a = (SELECT a FROM cte LIMIT 1) WHERE 1=0;
SELECT * FROM T FULL OUTER JOIN t1;
SELECT * FROM T;
ALTER TABLE T DROP COLUMN b;
CREATE TRIGGER IF NOT EXISTS trg_t1_7504 AFTER INSERT ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
INSERT INTO t1 VALUES ('x', 1, 'x', 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
CREATE TABLE T1 (
A VARCHAR(20) PRIMARY KEY,
X VARCHAR(10) UNIQUE
);
CREATE TABLE T2 (
A VARCHAR(20) PRIMARY KEY,
Y VARCHAR(10) UNIQUE
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
INSERT INTO T2 VALUES ('c', 'l');
SELECT A FROM T1 INTERSECT SELECT A FROM T2;
SELECT * FROM T2 WHERE A = (SELECT SUM(A) FROM T2);
ALTER TABLE T2 DROP COLUMN A;
UPDATE T1 SET X = NULL WHERE 1;
INSERT INTO T2 DEFAULT VALUES;
ANALYZE;
INSERT OR REPLACE INTO t1 VALUES ('x', 0, 0, 0);
WITH cte AS (SELECT X, RANK() OVER (ORDER BY X) AS rnk FROM T1) SELECT * FROM cte;
SELECT * FROM T AS a FULL OUTER JOIN T1 AS b ON a.rowid = b.rowid;
SELECT COUNT(*) FROM T2;
SELECT * FROM t1;
ALTER TABLE T2 RENAME TO T2_r8673;
SELECT * FROM (SELECT * FROM T1) AS sub;
CREATE TRIGGER IF NOT EXISTS trg_T_9663 BEFORE UPDATE ON T BEGIN INSERT INTO T(b) VALUES (NULL); END;
ALTER TABLE T1 RENAME COLUMN X TO X_r3745;
UPDATE T1 SET X = NULL;
SELECT COUNT(*) FROM T2;
INSERT INTO T VALUES (NULL, NULL, NULL, NULL);
SELECT * FROM t1 AS a RIGHT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
SELECT * FROM T AS a FULL JOIN T AS b ON a.rowid = b.rowid;
UPDATE T SET b = '' WHERE 1 RETURNING *;
SELECT COUNT(*) FROM t1;
ANALYZE T1;
```
## Actual output
```sql
Memory Used: 79920 (max 79920) bytes
Number of Outstanding Allocations: 158 (max 158)
Number of Pcache Overflow Bytes: 16928 (max 16928) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4360 bytes
Lookaside Slots Used: 34 (max 80)
Successful lookaside attempts: 143
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 18496 bytes
Page cache hits: 0
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Schema Heap Usage: 1104 bytes
Statement Heap/Lookaside Usage: 0 bytes
Bytes received by read(): 10409
Bytes sent to write(): 0
Read() system calls: 13
Write() system calls: 0
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
a|b|c|d
c|-2147483649.0||1
a|||1
b|||2
COUNT(*)
2
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
b|c|_ROWID_
Braun|30|3
Wernher|10|1
von|20|2
b|c
Braun|30
Wernher|10
von|20
```
## Expectation
```sql
Memory Used: 80568 (max 80568) bytes
Number of Outstanding Allocations: 168 (max 168)
Number of Pcache Overflow Bytes: 16944 (max 16944) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4368 bytes
Lookaside Slots Used: 50 (max 91)
Successful lookaside attempts: 149
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 18512 bytes
Page cache hits: 0
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Temporary data spilled to disk: 0
Schema Heap Usage: 944 bytes
Statement Heap/Lookaside Usage: 0 bytes
Bytes received by read(): 11185
Bytes sent to write(): 0
Read() system calls: 14
Write() system calls: 0
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
a|b|c|d
c|-2147483649.0||1
a|||1
b|||2
COUNT(*)
2
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
b|c|_ROWID_
Braun|30|3
Wernher|10|1
von|20|2
b|c
Braun|30
Wernher|10
von|20
```
## Flag
```
-vfs unix-none
```
@@ -0,0 +1,76 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', /* if(0, {v}, 0, {v}) */ 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
((((PRAGMA)))) application_id = ',';
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (-NULL,json_valid(1.5, 6)), (2,-7.25), (3,0.0);
SELECT a,b FROM T WHERE NOT NOT (a >= 2) ORDER BY b;
PRAGMA read_uncommitted = FALSE;
WITH cte AS (SELECT b FROM T UNION SELECT b FROM T) SELECT * FROM cte;
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;
SELECT COUNT(*) FROM T;
INSERT INTO T VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
SELECT * FROM T;
PRAGMA query_only;
ALTER TABLE T RENAME TO T_r407;
UPDATE T SET a = NULL WHERE 1;
ALTER TABLE T RENAME COLUMN b TO b_r5239;
ALTER TABLE T DROP COLUMN b;
ALTER TABLE T ADD COLUMN extra_7854 DATETIME DEFAULT NULL;
SELECT * FROM (SELECT * FROM t1) AS t1 JOIN (SELECT * FROM t1) AS t2 ON t1.b = t2.b;
```
## Actual output
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
Braun|30|3
Wernher|10|1
von|20|2
Braun|30
Wernher|10
von|20
```
## Expectation
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
Braun|30|3
Wernher|10|1
von|20|2
Braun|30
Wernher|10
von|20
```
## Flag
```
```
@@ -0,0 +1,858 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
ATTACH DATABASE ':memory:' AS aux76;
ATTACH DATABASE ':memory:' AS aux17;
ATTACH DATABASE ':memory:' AS aux93;
.echo on
BEGIN;
-- .dump main
SAVEPOINT sp6123;
.exit -(ifnull(' ', NULL) * exp(sign(--(-(2147483649)))))
PRAGMA defer_foreign_keys = OFF;
BEGIN TRANSACTION;
ATTACH DATABASE ':memory:' AS aux64;
PRAGMA count_changes = TRUE;
PRAGMA wal_checkpoint('NOOP');
PRAGMA soft_heap_limit = '-';
BEGIN TRANSACTION;
SAVEPOINT sp5901;
.exit
CREATE TABLE main.T (
A VARCHAR(coalesce(NULL, NULL, NULL)) PRIMARY KEY,
B VARCHAR(CAST(atan2(-(-(json_set(unlikely(like('%MiXeD%', unhex('4865', 'x'))), '$.key', CAST(x'd863506cea7ae2be62640fe9dee9' AS NUMERIC)))), 9223372036854775808) AS NUMERIC)) NOT NULL,
C DATE UNIQUE
);
INSERT INTO T VALUES ('' || ('a'), 'x', -9223372036854775808);
INSERT INTO T VALUES ('b', 'y', -1000000);
INSERT INTO T VALUES ('c', 'y', 0);
INSERT INTO T VALUES ('d', 'y', 42);
INSERT INTO T VALUES ('e', 'x', 9223372036854775807);
INSERT INTO T VALUES ('f', 'z', 2147483648);
SELECT * FROM T WHERE NOT C > 0 ORDER BY C DESC;
BEGIN;
CREATE TABLE main.main.t1(w int, x int, y int, z int);
CREATE UNIQUE INDEX i1w ON t1(w);
CREATE INDEX i1xy ON t1(x,y);
CREATE INDEX i1zyx ON t1(z,y,x);
COMMIT;
SELECT * FROM t1 WHERE w BETWEEN 5 AND 6 ORDER BY +w;
SELECT * FROM t1 WHERE +w BETWEEN 5 AND 65-y ORDER BY +w;
INSERT INTO T SELECT * FROM T;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
PRAGMA short_column_names = OFF;
ROLLBACK TO sp5901;
RELEASE sp5901;
ANALYZE;
SELECT NTILE(-1) OVER (ORDER BY C ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
SELECT * FROM T;
ALTER TABLE T DROP COLUMN A;
INSERT OR FAIL INTO t1 VALUES (0, 0, 0, 'x');
SELECT * FROM t1 AS a NATURAL JOIN T AS b ON a.rowid = b.rowid;
SELECT * FROM T WHERE A = (SELECT COUNT(*) FROM T);
ANALYZE;
CREATE TABLE T (
a TEXT,
b REAL
);
INSERT INTO T VALUES ('a',100.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;
ALTER TABLE t1 DROP COLUMN w;
SAVEPOINT sp5901;
.exit
CREATE TABLE main.T (
A VARCHAR(coalesce(NULL, NULL, NULL)) PRIMARY KEY,
B VARCHAR(CAST(atan2(-(-(json_set(9223372036854775808, '$.key', 9223372036854775808))), 9223372036854775808) AS NUMERIC)) NOT NULL,
C DATE UNIQUE
);
INSERT INTO T VALUES ('' || ('a'), 'x', -9223372036854775808);
INSERT INTO T VALUES ('b', 'y', -1000000);
INSERT INTO T VALUES ('c', 'y', 0);
INSERT INTO T VALUES ('d', 'y', 42);
INSERT INTO T VALUES ('e', 'x', 9223372036854775807);
INSERT INTO T VALUES ('f', 'z', 2147483648);
SELECT * FROM T WHERE NOT C > 0 ORDER BY C DESC;
BEGIN;
CREATE TABLE main.t1(w int, x int, y int, z int);
CREATE UNIQUE INDEX i1w ON t1(w);
CREATE INDEX i1xy ON t1(x,y);
CREATE INDEX i1zyx ON t1(z,y,x);
COMMIT;
SELECT * FROM t1 WHERE w BETWEEN 5 AND 6 ORDER BY +w;
SELECT * FROM t1 WHERE +w BETWEEN 5 AND 65-y ORDER BY +w;
INSERT INTO T SELECT * FROM T;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
PRAGMA short_column_names = OFF;
ROLLBACK TO sp5901;
RELEASE sp5901;
ANALYZE;
SELECT NTILE(-1) OVER (ORDER BY C ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
SELECT * FROM T;
ALTER TABLE T DROP COLUMN A;
INSERT OR FAIL INTO t1 VALUES (0, 0, 0, 'x');
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
SELECT * FROM T WHERE A = (SELECT COUNT(*) FROM T);
ANALYZE;
CREATE TABLE T (
a TEXT,
b REAL
);
INSERT INTO T VALUES ('a',100.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;
ALTER TABLE t1 DROP COLUMN w;
SAVEPOINT sp5901;
.exit
CREATE TABLE main.T (
A VARCHAR(coalesce(NULL, NULL, NULL)) PRIMARY KEY,
B VARCHAR(CAST(atan2(-(-(json_set(9223372036854775808, '$.key', 9223372036854775808))), 9223372036854775808) AS NUMERIC)) NOT NULL,
C DATE UNIQUE
);
INSERT INTO T VALUES ('' || ('a'), 'x', -9223372036854775808);
INSERT INTO T VALUES ('b', 'y', -1000000);
INSERT INTO T VALUES ('c', 'y', 0);
INSERT INTO T VALUES ('d', 'y', 42);
INSERT INTO T VALUES ('e', 'x', 9223372036854775807);
INSERT INTO T VALUES ('f', 'z', 2147483648);
SELECT * FROM T WHERE NOT C > 0 ORDER BY C DESC;
BEGIN;
CREATE TABLE main.t1(w int, x int, y int, z int);
CREATE UNIQUE INDEX i1w ON t1(w);
CREATE INDEX i1xy ON t1(x,y);
CREATE INDEX i1zyx ON t1(z,y,x);
COMMIT;
SELECT * FROM t1 WHERE w BETWEEN 5 AND 6 ORDER BY +w;
SELECT * FROM t1 WHERE +w BETWEEN 5 AND 65-y ORDER BY +w;
INSERT INTO T SELECT * FROM T;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
PRAGMA short_column_names = OFF;
ROLLBACK TO sp5901;
RELEASE sp5901;
ANALYZE;
SELECT NTILE(-1) OVER (ORDER BY C ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
SELECT * FROM T;
ALTER TABLE T DROP COLUMN A;
INSERT OR FAIL INTO t1 VALUES (0, 0, 0, 'x');
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
SELECT * FROM T WHERE A = (SELECT COUNT(*) FROM T);
ANALYZE;
CREATE TABLE T (
a TEXT,
b REAL
);
INSERT INTO T VALUES ('a',100.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;
ALTER TABLE t1 DROP COLUMN w;
SAVEPOINT sp5901;
.exit
CREATE TABLE main.T (
A VARCHAR(coalesce(NULL, NULL, NULL)) PRIMARY KEY,
B VARCHAR(CAST(atan2(-(-(json_set(9223372036854775808, '$.key', 9223372036854775808))), 9223372036854775808) AS NUMERIC)) NOT NULL,
C DATE UNIQUE
);
INSERT INTO T VALUES ('' || ('a'), 'x', -9223372036854775808);
INSERT INTO T VALUES ('b', 'y', -1000000);
INSERT INTO T VALUES ('c', 'y', 0);
INSERT INTO T VALUES ('d', 'y', 42);
INSERT INTO T VALUES ('e', 'x', 9223372036854775807);
INSERT INTO
T VALUES ('f', 'z', 2147483648);
SELECT * FROM T WHERE NOT C > 0 ORDER BY C DESC;
BEGIN;
CREATE TABLE main.t1(w int, x int, y int, z int);
CREATE UNIQUE INDEX i1w ON t1(w);
CREATE INDEX i1xy ON t1(x,y);
CREATE INDEX i1zyx ON t1(z,y,x);
COMMIT;
SELECT * FROM t1 WHERE w BETWEEN 5 AND 6 ORDER BY +w;
SELECT * FROM t1 WHERE +w BETWEEN 5 AND 65-y ORDER BY +w;
INSERT INTO T SELECT * FROM T;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
PRAGMA short_column_names = OFF;
ROLLBACK TO sp5901;
RELEASE sp5901;
ANALYZE;
SELECT NTILE(-1) OVER (ORDER BY C ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
SELECT * FROM T;
ALTER TABLE T DROP COLUMN A;
INSERT OR FAIL INTO t1 VALUES (0, 0, 0, 'x');
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
SELECT * FROM T WHERE A = (SELECT COUNT(*) FROM T);
ANALYZE;
CREATE TABLE T (
a TEXT,
b REAL
);
INSERT INTO T VALUES ('a',100.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;
ALTER TABLE t1 DROP COLUMN w;
SAVEPOINT sp5901;
.exit
CREATE TABLE main.T (
A VARCHAR(coalesce(NULL, NULL, NULL)) PRIMARY KEY,
B VARCHAR(CAST(atan2(-(-(json_set(9223372036854775808, '$.key', 9223372036854775808))), 9223372036854775808) AS NUMERIC)) NOT NULL,
C DATE UNIQUE
);
INSERT INTO T VALUES ('' || ('a'), 'x', -9223372036854775808);
INSERT INTO T VALUES ('b', 'y', -1000000);
INSERT INTO T VALUES ('c', 'y', 0);
INSERT INTO T VALUES ('d', 'y', 42);
INSERT INTO T VALUES ('e', 'x', 9223372036854775807);
INSERT INTO T VALUES ('f', 'z', 2147483648);
SELECT * FROM T WHERE NOT C > 0 ORDER BY C DESC;
BEGIN;
CREATE TABLE main.t1(w int, x int, y int, z int);
CREATE UNIQUE INDEX i1w ON t1(w);
CREATE INDEX i1xy ON t1(x,y);
CREATE INDEX i1zyx ON t1(z,y,x);
COMMIT;
SELECT * FROM t1 WHERE w BETWEEN 5 AND 6 ORDER BY +w;
SELECT * FROM t1 WHERE +w BETWEEN 5 AND 65-y ORDER BY +w;
INSERT INTO T SELECT * FROM T;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
PRAGMA short_column_names = OFF;
ROLLBACK TO sp5901;
RELEASE sp5901;
ANALYZE;
SELECT NTILE(-1) OVER (ORDER BY C ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
SELECT * FROM T;
ALTER TABLE T DROP COLUMN A;
INSERT OR FAIL INTO t1 VALUES (0, 0, 0, 'x');
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
SELECT * FROM T WHERE A = (SELECT COUNT(*) FROM T);
ANALYZE;
CREATE TABLE T (
a TEXT,
b REAL
);
INSERT INTO T VALUES ('a',100.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;
ALTER TABLE t1 DROP COLUMN w;
SAVEPOINT sp5901;
.exit
CREATE TABLE main.T (
A VARCHAR(coalesce(NULL, NULL, NULL)) PRIMARY KEY,
B VARCHAR(CAST(atan2(-(-(json_set(9223372036854775808, '$.key', 9223372036854775808))), 9223372036854775808) AS NUMERIC)) NOT NULL,
C DATE UNIQUE
);
INSERT INTO T VALUES ('' || ('a'), 'x', -9223372036854775808);
INSERT INTO T VALUES ('b', 'y', -1000000);
INSERT INTO T VALUES ('c', 'y', 0);
INSERT INTO T VALUES ('d', 'y', 42);
INSERT INTO T VALUES ('e', 'x', 9223372036854775807);
INSERT INTO T VALUES ('f', 'z', 2147483648);
SELECT * FROM T WHERE NOT C > 0 ORDER BY C DESC;
BEGIN;
CREATE TABLE main.t1(w int, x int, y int, z int);
CREATE UNIQUE INDEX i1w ON t1(w);
CREATE INDEX i1xy ON t1(x,y);
CREATE INDEX i1zyx ON t1(z,y,x);
COMMIT;
SELECT * FROM t1 WHERE w BETWEEN 5 AND 6 ORDER BY +w;
SELECT * FROM t1 WHERE +w BETWEEN 5 AND 65-y ORDER BY +w;
INSERT INTO T SELECT * FROM T;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
PRAGMA short_column_names = OFF;
ROLLBACK TO sp5901;
RELEASE sp5901;
ANALYZE;
SELECT NTILE(-1) OVER (ORDER BY C ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
SELECT * FROM T;
ALTER TABLE T DROP COLUMN A;
INSERT OR FAIL INTO t1 VALUES (0, 0, 0, 'x');
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
SELECT * FROM T WHERE A = (SELECT COUNT(*) FROM T);
ANALYZE;
CREATE TABLE T (
a TEXT,
b REAL
);
INSERT INTO T VALUES ('a',100.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;
ALTER TABLE t1 DROP COLUMN w;
SAVEPOINT sp5901;
.exit
CREATE TABLE main.T (
A VARCHAR(coalesce(NULL, NULL, NULL)) PRIMARY KEY,
B VARCHAR(CAST(atan2(-(-(json_set(9223372036854775808, '$.key', 9223372036854775808))), 9223372036854775808) AS NUMERIC)) NOT NULL,
C DATE UNIQUE
);
INSERT INTO T VALUES ('' || ('a'), 'x', -9223372036854775808);
INSERT INTO T VALUES ('b', 'y', -1000000);
INSERT INTO T VALUES ('c', 'y', 0);
INSERT INTO T VALUES ('d', 'y', 42);
INSERT INTO T VALUES ('e', 'x', 9223372036854775807);
INSERT INTO T VALUES ('f', 'z', 2147483648);
SELECT * FROM T WHERE NOT C > 0 ORDER BY C DESC;
BEGIN;
CREATE TABLE main.t1(w int, x int, y int, z int);
CREATE UNIQUE INDEX i1w ON t1(w);
CREATE INDEX i1xy ON t1(x,y);
CREATE INDEX i1zyx ON t1(z,y,x);
COMMIT;
SELECT * FROM t1 WHERE w BETWEEN 5 AND 6 ORDER BY +w;
SELECT * FROM t1 WHERE +w BETWEEN 5 AND 65-y ORDER BY +w;
INSERT INTO T SELECT * FROM T;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
PRAGMA short_column_names = OFF;
ROLLBACK TO sp5901;
RELEASE sp5901;
ANALYZE;
SELECT NTILE(-1) OVER (ORDER BY C ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
SELECT * FROM T;
ALTER TABLE T DROP COLUMN A;
INSERT OR FAIL INTO t1 VALUES (0, 0, 0, 'x');
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
SELECT * FROM T WHERE A = (SELECT COUNT(*) FROM T);
ANALYZE;
CREATE TABLE T (
a TEXT,
b REAL
);
INSERT INTO T VALUES ('a',100.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;
ALTER TABLE t1 DROP COLUMN w;
SAVEPOINT sp5901;
.exit
CREATE TABLE main.T (
A VARCHAR(coalesce(NULL, NULL, NULL)) PRIMARY KEY,
B VARCHAR(CAST(atan2(-(-(json_set(9223372036854775808, '$.key', 9223372036854775808))), 9223372036854775808) AS NUMERIC)) NOT NULL,
C DATE UNIQUE
);
INSERT INTO T VALUES ('' || ('a'), 'x', -9223372036854775808);
INSERT INTO T VALUES ('b', 'y', -1000000);
INSERT INTO T VALUES ('c', 'y', 0);
INSERT INTO T VALUES ('d', 'y', 42);
INSERT INTO T VALUES ('e', 'x', 9223372036854775807);
INSERT INTO T VALUES ('f', 'z', 2147483648);
SELECT * FROM T WHERE NOT C > 0 ORDER BY C DESC;
BEGIN;
CREATE TABLE main.t1(w int, x int, y int, z int);
CREATE UNIQUE INDEX i1w ON t1(w);
CREATE INDEX i1xy ON t1(x,y);
CREATE INDEX i1zyx ON t1(z,y,x);
COMMIT;
SELECT * FROM t1 WHERE w BETWEEN 5 AND 6 ORDER BY +w;
SELECT * FROM t1 WHERE +w BETWEEN 5 AND 65-y ORDER BY +w;
INSERT INTO T SELECT * FROM T;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
PRAGMA short_column_names = OFF;
ROLLBACK TO sp5901;
RELEASE sp5901;
ANALYZE;
SELECT NTILE(-1) OVER (ORDER BY C ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
SELECT * FROM T;
ALTER TABLE T DROP COLUMN A;
INSERT OR FAIL INTO t1 VALUES (0, 0, 0, 'x');
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
SELECT * FROM T WHERE A = (SELECT COUNT(*) FROM T);
ANALYZE;
CREATE TABLE T (
a TEXT,
b REAL
);
INSERT INTO T VALUES ('a',100.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;
ALTER TABLE t1 DROP COLUMN w;
SAVEPOINT sp5901;
.exit
CREATE TABLE main.T (
A VARCHAR(coalesce(NULL, NULL, NULL)) PRIMARY KEY,
B VARCHAR(CAST(atan2(-(-(json_set(9223372036854775808, '$.key', 9223372036854775808))), 9223372036854775808) AS NUMERIC)) NOT NULL,
C DATE UNIQUE
);
INSERT INTO T VALUES ('' || ('a'), 'x', -9223372036854775808);
INSERT INTO T VALUES ('b', 'y', -1000000);
INSERT INTO T VALUES ('c', 'y', 0);
INSERT INTO T VALUES ('d', 'y', 42);
INSERT INTO T VALUES ('e', 'x', 9223372036854775807);
INSERT INTO T VALUES ('f', 'z', 2147483648);
SELECT * FROM T WHERE NOT C > 0 ORDER BY C DESC;
BEGIN;
CREATE TABLE main.t1(w int, x int, y int, z int);
CREATE UNIQUE INDEX i1w ON t1(w);
CREATE INDEX i1xy ON t1(x,y);
CREATE INDEX i1zyx ON t1(z,y,x);
COMMIT;
SELECT * FROM t1 WHERE w BETWEEN 5 AND 6 ORDER BY +w;
SELECT * FROM t1 WHERE +w BETWEEN 5 AND 65-y ORDER BY +w;
INSERT INTO T SELECT * FROM T;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
PRAGMA short_column_names = OFF;
ROLLBACK TO sp5901;
RELEASE sp5901;
ANALYZE;
SELECT NTILE(-1) OVER (ORDER BY C ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
SELECT * FROM T;
ALTER TABLE T DROP COLUMN A;
INSERT OR FAIL INTO t1 VALUES (0, 0, 0, 'x');
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
SELECT * FROM T WHERE A = (SELECT COUNT(*) FROM T);
ANALYZE;
CREATE TABLE T (
a TEXT,
b REAL
);
INSERT INTO T VALUES ('a',100.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;
ALTER TABLE t1 DROP COLUMN w;
END TRANSACTION;
PRAGMA writable_schema = FALSE;
WITH cte AS (SELECT a, COUNT(*) AS cnt FROM T GROUP BY a) SELECT * FROM cte WHERE cnt > 1;
CREATE TRIGGER IF NOT EXISTS trg_t1_6599 BEFORE UPDATE OF y ON t1 FOR EACH ROW BEGIN INSERT INTO t1(y) VALUES (NULL); END;
VACUUM;
SELECT MAX(w) FROM t1;
SELECT COUNT(*) FROM t1;
DELETE FROM t1 WHERE z > (SELECT AVG(z) FROM t1);
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T);
WITH a AS (SELECT * FROM t1), b AS (SELECT * FROM t1) SELECT * FROM a UNION ALL SELECT * FROM b;
WITH RECURSIVE cnt(x) AS (VALUES(0) UNION ALL SELECT x-1 FROM cnt WHERE x>-57) SELECT * FROM cnt;
SELECT * FROM T AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux64;
CREATE TABLE T (
A VARCHAR(20),
B VARCHAR(10),
PRIMARY KEY (A, B)
);
INSERT INTO T VALUES ('a', 'p');
INSERT INTO T VALUES ('a', 'q');
INSERT INTO T VALUES ('b', 'q');
INSERT INTO T VALUES ('c', 'r');
INSERT INTO T VALUES ('b', 'r');
INSERT INTO T VALUES ('b', 't');
SELECT B, COUNT(DISTINCT A) AS D FROM T GROUP BY B ORDER BY D DESC, B ASC;
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_4313 AS SELECT B FROM T;
ANALYZE;
ALTER TABLE T ADD COLUMN extra_4598 INTEGER COLLATE RTRIM;
DROP INDEX IF EXISTS T;
SELECT SUM(w) FROM t1;
SELECT COUNT(*) FROM T;
SELECT SUM(B) FROM T;
SELECT COUNT(*) FILTER (WHERE A IS NOT NULL), SUM(rowid) FILTER (WHERE A > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(A) FILTER (WHERE A > 0 AND A < 100), COUNT(*) FILTER (WHERE typeof(A) = "text") FROM T;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
REINDEX t1;
SELECT LAG(x, 2, 'default') OVER (ORDER BY x ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1;
END;
SELECT * FROM t1;
RELEASE sp6123;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
END;
DROP VIEW IF EXISTS T;
SELECT * FROM t1;
DROP VIEW IF EXISTS T;
ALTER TABLE t1 DROP COLUMN w;
CREATE TABLE T (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15) NOT NULL,
C DOUBLE PRECISION
);
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
INSERT INTO T VALUES ('b', 'q', -0.000000001);
INSERT INTO T VALUES ('c', 'r', 0.0);
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
INSERT INTO T VALUES ('f', 't', 750.25);
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) AS F FROM T GROUP BY B;
WITH cte AS (SELECT * FROM t1 ORDER BY y LIMIT 5) SELECT * FROM cte;
DETACH DATABASE aux93;
INSERT OR FAIL INTO t1 VALUES (NULL, 'x', NULL, '');
INSERT OR ROLLBACK INTO T VALUES (NULL, '', NULL);
SELECT LAG(y, 0) OVER (PARTITION BY y ORDER BY y ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
SELECT COUNT(z) FROM t1;
creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z");
DROP TABLE t0;
INSERT INTO t1 SELECT * FROM t1;
DROP TRIGGER IF EXISTS T;
WITH cte AS (SELECT 1 AS x) SELECT x + 0.5 FROM cte;
WITH cte AS (SELECT * FROM t1) SELECT * FROM cte JOIN t1 ON cte.y = t1.y;
SELECT COUNT(B) FILTER (WHERE NULL) OVER (PARTITION BY B ORDER BY B ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T;
SELECT MIN(B) FILTER (WHERE B IS NOT NULL) OVER (ORDER BY B ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
INSERT INTO t1 VALUES ('x', NULL, 1, 'x') ON CONFLICT(w) DO UPDATE SET w = excluded.w, x = excluded.x, y = excluded.y;
UPDATE T SET B = '' WHERE rowid = 1 RETURNING *;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM T WHERE NOT EXISTS (SELECT 1 FROM T WHERE 1 = 0);
SELECT COUNT(*) FILTER (WHERE A IS NOT NULL), SUM(rowid) FILTER (WHERE A > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(A) FILTER (WHERE A > 0 AND A < 100), COUNT(*) FILTER (WHERE typeof(A) = "text") FROM T;
ALTER TABLE T DROP COLUMN C;
DETACH DATABASE aux17;
SELECT GROUP_CONCAT(y, y) OVER (PARTITION BY y ORDER BY y GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t1;
ANALYZE t1;
ANALYZE;
INSERT OR ROLLBACK INTO T VALUES (4, NULL, 'x');
DROP INDEX IF EXISTS T;
INSERT OR IGNORE INTO T VALUES ('', 'x', '');
UPDATE t1 SET x = NULL WHERE rowid = 1;
CREATE TRIGGER IF NOT EXISTS trg_T_5846 BEFORE DELETE ON T BEGIN SELECT RAISE(IGNORE); END;
DETACH DATABASE aux76;
CREATE TEMPORARY TABLE t0(x, y, z);
SELECT -99999999999999999999999999999999999999999999999999;
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
DROP TABLE t0;
ALTER TABLE t0 ADD COLUMN extra_7447 DOUBLE NOT NULL DEFAULT 0;
ALTER TABLE T DROP COLUMN A;
SELECT LAG(B, 0, 'default') OVER (ORDER BY B RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T;
```
## Actual output
```sql
Memory Used: 79920 (max 79920) bytes
Number of Outstanding Allocations: 158 (max 158)
Number of Pcache Overflow Bytes: 16928 (max 16928) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4360 bytes
Lookaside Slots Used: 40 (max 80)
Successful lookaside attempts: 138
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 18496 bytes
Page cache hits: 0
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Schema Heap Usage: 1104 bytes
Statement Heap/Lookaside Usage: 2912 bytes
Fullscan Steps: 0
Sort Operations: 0
Autoindex Inserts: 0
Virtual Machine Steps: 7
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 2912
Bytes received by read(): 10409
Bytes sent to write(): 0
Read() system calls: 13
Write() system calls: 0
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
Memory Used: 92136 (max 92136) bytes
Number of Outstanding Allocations: 175 (max 175)
Number of Pcache Overflow Bytes: 25392 (max 25392) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4360 bytes
Lookaside Slots Used: 41 (max 81)
Successful lookaside attempts: 195
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 27744 bytes
Page cache hits: 0
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Schema Heap Usage: 1472 bytes
Statement Heap/Lookaside Usage: 2912 bytes
Fullscan Steps: 0
Sort Operations: 0
Autoindex Inserts: 0
Virtual Machine Steps: 7
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 2912
Bytes received by read(): 10504
Bytes sent to write(): 1293
Read() system calls: 15
Write() system calls: 1
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
Memory Used: 104352 (max 104352) bytes
Number of Outstanding Allocations: 192 (max 192)
Number of Pcache Overflow Bytes: 33856 (max 33856) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4360 bytes
Lookaside Slots Used: 42 (max 82)
Successful lookaside attempts: 253
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 36992 bytes
Page cache hits: 0
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Schema Heap Usage: 1840 bytes
Statement Heap/Lookaside Usage: 2912 bytes
Fullscan Steps: 0
Sort Operations: 0
Autoindex Inserts: 0
Virtual Machine Steps: 7
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 2912
Bytes received by read(): 10602
Bytes sent to write(): 2589
Read() system calls: 17
Write() system calls: 2
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
BEGIN;
Memory Used: 104352 (max 104352) bytes
Number of Outstanding Allocations: 192 (max 192)
Number of Pcache Overflow Bytes: 33856 (max 33856) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4360 bytes
Lookaside Slots Used: 39 (max 82)
Successful lookaside attempts: 256
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 36992 bytes
Page cache hits: 0
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Schema Heap Usage: 1840 bytes
Statement Heap/Lookaside Usage: 2528 bytes
Fullscan Steps: 0
Sort Operations: 0
Autoindex Inserts: 0
Virtual Machine Steps: 2
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 2528
Bytes received by read(): 10700
Bytes sent to write(): 3887
Read() system calls: 19
Write() system calls: 3
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
-- .dump main
SAVEPOINT sp6123;
Memory Used: 104352 (max 104352) bytes
Number of Outstanding Allocations: 192 (max 192)
Number of Pcache Overflow Bytes: 33856 (max 33856) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4360 bytes
Lookaside Slots Used: 41 (max 82)
Successful lookaside attempts: 261
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 36992 bytes
Page cache hits: 0
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Schema Heap Usage: 1840 bytes
Statement Heap/Lookaside Usage: 2656 bytes
Fullscan Steps: 0
Sort Operations: 0
Autoindex Inserts: 0
Virtual Machine Steps: 3
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 2656
Bytes received by read(): 10798
Bytes sent to write(): 5207
Read() system calls: 21
Write() system calls: 6
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
.exit -(ifnull(' ', NULL) * exp(sign(--(-(2147483649)))))
```
## Expectation
```sql
Memory Used: 80568 (max 80568) bytes
Number of Outstanding Allocations: 168 (max 168)
Number of Pcache Overflow Bytes: 16944 (max 16944) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4368 bytes
Lookaside Slots Used: 56 (max 91)
Successful lookaside attempts: 144
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 18512 bytes
Page cache hits: 0
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Temporary data spilled to disk: 0
Schema Heap Usage: 944 bytes
Statement Heap/Lookaside Usage: 2912 bytes
Fullscan Steps: 0
Sort Operations: 0
Autoindex Inserts: 0
Virtual Machine Steps: 8
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 2912
Bytes received by read(): 11185
Bytes sent to write(): 0
Read() system calls: 14
Write() system calls: 0
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
Memory Used: 92720 (max 92720) bytes
Number of Outstanding Allocations: 185 (max 185)
Number of Pcache Overflow Bytes: 25416 (max 25416) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4368 bytes
Lookaside Slots Used: 57 (max 92)
Successful lookaside attempts: 196
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 27768 bytes
Page cache hits: 0
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Temporary data spilled to disk: 0
Schema Heap Usage: 1256 bytes
Statement Heap/Lookaside Usage: 2912 bytes
Fullscan Steps: 0
Sort Operations: 0
Autoindex Inserts: 0
Virtual Machine Steps: 8
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 2912
Bytes received by read(): 11280
Bytes sent to write(): 1331
Read() system calls: 16
Write() system calls: 1
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
Memory Used: 104872 (max 104872) bytes
Number of Outstanding Allocations: 202 (max 202)
Number of Pcache Overflow Bytes: 33888 (max 33888) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4368 bytes
Lookaside Slots Used: 58 (max 93)
Successful lookaside attempts: 249
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 37024 bytes
Page cache hits: 0
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Temporary data spilled to disk: 0
Schema Heap Usage: 1568 bytes
Statement Heap/Lookaside Usage: 2912 bytes
Fullscan Steps: 0
Sort Operations: 0
Autoindex Inserts: 0
Virtual Machine Steps: 8
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 2912
Bytes received by read(): 11378
Bytes sent to write(): 2666
Read() system calls: 18
Write() system calls: 2
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
BEGIN;
Memory Used: 104872 (max 104872) bytes
Number of Outstanding Allocations: 202 (max 202)
Number of Pcache Overflow Bytes: 33888 (max 33888) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4368 bytes
Lookaside Slots Used: 55 (max 93)
Successful lookaside attempts: 252
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 37024 bytes
Page cache hits: 0
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Temporary data spilled to disk: 0
Schema Heap Usage: 1568 bytes
Statement Heap/Lookaside Usage: 2528 bytes
Fullscan Steps: 0
Sort Operations: 0
Autoindex Inserts: 0
Virtual Machine Steps: 3
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 2528
Bytes received by read(): 11476
Bytes sent to write(): 4010
Read() system calls: 20
Write() system calls: 4
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
-- .dump main
SAVEPOINT sp6123;
Memory Used: 104872 (max 104872) bytes
Number of Outstanding Allocations: 202 (max 202)
Number of Pcache Overflow Bytes: 33888 (max 33888) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4368 bytes
Lookaside Slots Used: 57 (max 93)
Successful lookaside attempts: 257
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 37024 bytes
Page cache hits: 0
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Temporary data spilled to disk: 0
Schema Heap Usage: 1568 bytes
Statement Heap/Lookaside Usage: 2656 bytes
Fullscan Steps: 0
Sort Operations: 0
Autoindex Inserts: 0
Virtual Machine Steps: 4
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 2656
Bytes received by read(): 11574
Bytes sent to write(): 5380
Read() system calls: 22
Write() system calls: 8
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
.exit -(ifnull(' ', NULL) * exp(sign(--(-(2147483649)))))
```
## Flag
```
-stats
```
@@ -0,0 +1,383 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
PRAGMA vdbe_debug = NO;
.headers on
ATTACH DATABASE ':memory:' AS aux62;
-- IS
.stats
ATTACH DATABASE ':memory:' AS aux68;
-- -ascii
PRAGMA automatic_index = YES;
CREATE TABLE main.T (
a TINYINT,
b REAL
);
INSERT INTO T VALUES ('a',NULL), ('b',-round(trunc(log2(acos(NULL))), json_extract(CAST((x'357972894d4c' + -(-(randomblob('1e10')))) AS FLOAT), '$[#-1]'))), ('c',-(CAST(2147483649 AS FLOA) - 0));
SELECT a,b,
LEAD(b,1) OVER (ORDER BY b DESC) AS c,
NTILE(2) OVER (ORDER BY b DESC) AS d FROM T;
DELETE FROM T WHERE NOT NOT NOT (b IS NULL) ;
SELECT * FROM T WHERE b IN (SELECT b FROM T LIMIT 0);
PRAGMA writable_schema = 1;
SELECT COUNT(*) FROM T;
DETACH DATABASE aux68;
VACUUM;
SELECT b FROM T EXCEPT SELECT b FROM (SELECT * FROM T) AS sub;
DELETE FROM T WHERE a IS NULL RETURNING *;
CREATE TABLE main.t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
INSERT INTO t1 DEFAULT VALUES;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_1206 ON t1(lower(d));
CREATE TRIGGER IF NOT EXISTS trg_t1_1786 AFTER UPDATE OF b ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT COUNT(*) FILTER (WHERE a IS NOT NULL), SUM(rowid) FILTER (WHERE a > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(a) FILTER (WHERE a > 0 AND a < 100), COUNT(*) FILTER (WHERE typeof(a) = "text") FROM t1;
CREATE TABLE T (
a INTEGER,
b TEXT,
c REAL,
d REAL
);
INSERT INTO T VALUES (1,'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
SELECT b FROM T WHERE ABS(c) > 5 AND ABS(d) > 5;
DELETE FROM T WHERE rowid = 56;
SELECT * FROM T;
ANALYZE;
REINDEX t1;
CREATE TABLE T (
a TEXT,
b TEXT
);
INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01');
SELECT a,
CAST(
(julianday('now')-julianday(b))/365.25
AS INTEGER
) AS c
FROM T;
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
DETACH DATABASE aux62;
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
CREATE TEMP VIEW IF NOT EXISTS v_t1_4360 AS SELECT c FROM t1;
ALTER TABLE t1 RENAME TO t1_r613;
SELECT AVG(d) FROM t1;
REINDEX t1;
WITH cte AS (SELECT * FROM t1) UPDATE t1 SET a = (SELECT a FROM cte LIMIT 1) WHERE 1=0;
SELECT * FROM T FULL OUTER JOIN t1;
SELECT * FROM T;
ALTER TABLE T DROP COLUMN b;
CREATE TRIGGER IF NOT EXISTS trg_t1_7504 AFTER INSERT ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
INSERT INTO t1 VALUES ('x', 1, 'x', 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
CREATE TABLE T1 (
A VARCHAR(20) PRIMARY KEY,
X VARCHAR(10) UNIQUE
);
CREATE TABLE T2 (
A VARCHAR(20) PRIMARY KEY,
Y VARCHAR(10) UNIQUE
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
INSERT INTO T2 VALUES ('c', 'l');
SELECT A FROM T1 INTERSECT SELECT A FROM T2;
SELECT * FROM T2 WHERE A = (SELECT SUM(A) FROM T2);
ALTER TABLE T2 DROP COLUMN A;
UPDATE T1 SET X = NULL WHERE 1;
INSERT INTO T2 DEFAULT VALUES;
ANALYZE;
INSERT OR REPLACE INTO t1 VALUES ('x', 0, 0, 0);
PRAGMA vdbe_debug = NO;
.headers on
ATTACH DATABASE ':memory:' AS aux62;
-- IS
.stats
ATTACH DATABASE ':memory:' AS aux68;
-- -ascii
PRAGMA automatic_index = YES;
CREATE TABLE main.T (
a TEXT,
b REAL
);
INSERT INTO T VALUES ('a',NULL), ('b',-round(trunc(log2(acos(NULL))), json_extract(CAST((x'357972894d4c' + -(-(randomblob(16)))) AS FLOAT), '$[#-1]'))), ('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;
DELETE FROM T WHERE NOT NOT (b IS NULL) ;
SELECT * FROM T WHERE b IN (SELECT b FROM T LIMIT 0);
PRAGMA writable_schema = 1;
SELECT COUNT(*) FROM T;
DETACH DATABASE aux68;
VACUUM;
SELECT b FROM T EXCEPT SELECT b FROM (SELECT * FROM T) AS sub;
DELETE FROM T WHERE a IS NULL RETURNING *;
CREATE TABLE main.t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
INSERT INTO t1 DEFAULT VALUES;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_1206 ON t1(lower(d));
CREATE TRIGGER IF NOT EXISTS trg_t1_1786 AFTER UPDATE OF b ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT COUNT(*) FILTER (WHERE a IS NOT NULL), SUM(rowid) FILTER (WHERE a > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(a) FILTER (WHERE a > 0 AND a < 100), COUNT(*) FILTER (WHERE typeof(a) = "text") FROM t1;
CREATE TABLE T (
a INTEGER,
b TEXT,
c REAL,
d REAL
);
INSERT INTO T VALUES (1,'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
SELECT b FROM T WHERE ABS(c) > 5 AND ABS(d) > 5;
DELETE FROM T WHERE rowid = 56;
SELECT * FROM T;
ANALYZE;
REINDEX t1;
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
DETACH DATABASE aux62;
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
CREATE TEMP VIEW IF NOT EXISTS v_t1_4360 AS SELECT c FROM t1;
ALTER TABLE t1 RENAME TO t1_r613;
SELECT AVG(d) FROM t1;
REINDEX t1;
WITH cte AS (SELECT * FROM t1) UPDATE t1 SET a = (SELECT a FROM cte LIMIT 1) WHERE 1=0;
SELECT * FROM T FULL OUTER JOIN t1;
SELECT * FROM T;
ALTER TABLE T DROP COLUMN b;
CREATE TRIGGER IF NOT EXISTS trg_t1_7504 AFTER INSERT ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
INSERT INTO t1 VALUES ('x', 1, 'x', 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
CREATE TABLE T1 (
A VARCHAR(20) PRIMARY KEY,
X VARCHAR(10) UNIQUE
);
CREATE TABLE T2 (
A VARCHAR(20) PRIMARY KEY,
Y VARCHAR(10) UNIQUE
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
INSERT INTO T2 VALUES ('c', 'l');
SELECT A FROM T1 INTERSECT SELECT A FROM T2;
SELECT * FROM T2 WHERE A = (SELECT SUM(A) FROM T2);
ALTER TABLE T2 DROP COLUMN A;
UPDATE T1 SET X = NULL WHERE 1;
INSERT INTO T2 DEFAULT VALUES;
ANALYZE;
INSERT OR REPLACE INTO t1 VALUES ('x', 0, 0, 0);
PRAGMA vdbe_debug = NO;
.headers on
ATTACH DATABASE ':memory:' AS aux62;
-- IS
.stats
ATTACH DATABASE ':memory:' AS aux68;
-- -ascii
PRAGMA automatic_index = YES;
CREATE TABLE main.T (
a TEXT,
b REAL
);
INSERT INTO T VALUES ('a',NULL), ('b',-round(trunc(log2(acos(NULL))), json_extract(CAST((x'357972894d4c' + -(-(randomblob(16)))) AS FLOAT), '$[#-1]'))), ('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;
DELETE FROM T WHERE NOT NOT (b IS NULL) ;
SELECT * FROM T WHERE b IN (SELECT b FROM T LIMIT 0);
PRAGMA writable_schema = 1;
SELECT COUNT(*) FROM T;
DETACH DATABASE aux68;
VACUUM;
SELECT b FROM T EXCEPT SELECT b FROM (SELECT * FROM T) AS sub;
DELETE FROM T WHERE a IS NULL RETURNING *;
CREATE TABLE main.t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
INSERT INTO t1 DEFAULT VALUES;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_1206 ON t1(lower(d));
CREATE TRIGGER IF NOT EXISTS trg_t1_1786 AFTER UPDATE OF b ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT COUNT(*) FILTER (WHERE a IS NOT NULL), SUM(rowid) FILTER (WHERE a > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(a) FILTER (WHERE a > 0 AND a < 100), COUNT(*) FILTER (WHERE typeof(a) = "text") FROM t1;
CREATE TABLE T (
a INTEGER,
b TEXT,
c REAL,
d REAL
);
INSERT INTO T VALUES (1,'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
SELECT b FROM T WHERE ABS(c) > 5 AND ABS(d) > 5;
DELETE FROM T WHERE rowid = 56;
SELECT * FROM T;
ANALYZE;
REINDEX t1;
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
DETACH DATABASE aux62;
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
CREATE TEMP VIEW IF NOT EXISTS v_t1_4360 AS SELECT c FROM t1;
ALTER TABLE t1 RENAME TO t1_r613;
SELECT AVG(d) FROM t1;
REINDEX t1;
WITH cte AS (SELECT * FROM t1) UPDATE t1 SET a = (SELECT a FROM cte LIMIT 1) WHERE 1=0;
SELECT * FROM T FULL OUTER JOIN t1;
SELECT * FROM T;
ALTER TABLE T DROP COLUMN b;
CREATE TRIGGER IF NOT EXISTS trg_t1_7504 AFTER INSERT ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
INSERT INTO t1 VALUES ('x', 1, 'x', 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
CREATE TABLE T1 (
A VARCHAR(20) PRIMARY KEY,
X VARCHAR(10) UNIQUE
);
CREATE TABLE T2 (
A VARCHAR(20) PRIMARY KEY,
Y VARCHAR(10) UNIQUE
);
INSERT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T1 VALUES ('c', 'o');
INSERT INTO T2 VALUES ('b', 'k');
INSERT INTO T2 VALUES ('c', 'l');
SELECT A FROM T1 INTERSECT SELECT A FROM T2;
SELECT * FROM T2 WHERE A = (SELECT SUM(A) FROM T2);
ALTER TABLE T2 DROP COLUMN A;
UPDATE T1 SET X = NULL WHERE 1;
INSERT INTO T2 DEFAULT VALUES;
ANALYZE;
INSERT OR REPLACE INTO t1 VALUES ('x', 0, 0, 0);
WITH cte AS (SELECT X, RANK() OVER (ORDER BY X) AS rnk FROM T1) SELECT * FROM cte;
SELECT * FROM T AS a FULL OUTER JOIN T1 AS b ON a.rowid = b.rowid;
SELECT COUNT(*) FROM T2;
SELECT * FROM t1;
ALTER TABLE T2 RENAME TO T2_r8673;
SELECT * FROM (SELECT * FROM T1) AS sub;
CREATE TRIGGER IF NOT EXISTS trg_T_9663 BEFORE UPDATE ON T BEGIN INSERT INTO T(b) VALUES (NULL); END;
ALTER TABLE T1 RENAME COLUMN X TO X_r3745;
UPDATE T1 SET X = NULL;
SELECT COUNT(*) FROM T2;
INSERT INTO T VALUES (NULL, NULL, NULL, NULL);
```
## Actual output
```sql
Memory Used: 79920 (max 79920) bytes
Number of Outstanding Allocations: 158 (max 158)
Number of Pcache Overflow Bytes: 16928 (max 16928) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4360 bytes
Lookaside Slots Used: 34 (max 80)
Successful lookaside attempts: 143
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 18496 bytes
Page cache hits: 0
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Schema Heap Usage: 1104 bytes
Statement Heap/Lookaside Usage: 0 bytes
Bytes received by read(): 10409
Bytes sent to write(): 0
Read() system calls: 13
Write() system calls: 0
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
a|b|c|d
c|-2147483649.0||1
a|||1
b|||2
COUNT(*)
2
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
b|c|_ROWID_
Braun|30|3
Wernher|10|1
von|20|2
b|c
Braun|30
Wernher|10
von|20
```
## Expectation
```sql
Memory Used: 80568 (max 80568) bytes
Number of Outstanding Allocations: 168 (max 168)
Number of Pcache Overflow Bytes: 16944 (max 16944) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4368 bytes
Lookaside Slots Used: 50 (max 91)
Successful lookaside attempts: 149
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 18512 bytes
Page cache hits: 0
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Temporary data spilled to disk: 0
Schema Heap Usage: 944 bytes
Statement Heap/Lookaside Usage: 0 bytes
Bytes received by read(): 11185
Bytes sent to write(): 0
Read() system calls: 14
Write() system calls: 0
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
a|b|c|d
c|-2147483649.0||1
a|||1
b|||2
COUNT(*)
2
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
b|c|_ROWID_
Braun|30|3
Wernher|10|1
von|20|2
b|c
Braun|30
Wernher|10
von|20
```
## Flag
```
-vfs memdb
```
@@ -0,0 +1,78 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
ATTACH DATABASE ':memory:' AS aux48;
ATTACH DATABASE ':memory:' AS aux49;
SAVEPOINT sp2178;
ATTACH DATABASE ':memory:' AS aux22;
CREATE TABLE person (org_id TEXT NOT NULL, nickname TEXT NOT NULL, license TEXT, CONSTRAINT person_pk PRIMARY KEY (org_id, nickname), CONSTRAINT person_license_uk UNIQUE (license) );
INSERT INTO person VALUES('meyers', 'jack', '2GAT123');
INSERT INTO person VALUES('meyers', 'hill', 'V345FMP');
INSERT INTO person VALUES('meyers', 'jim', '2GAT138');
INSERT INTO person VALUES('smith', 'maggy', '');
CREATE TABLE t2(a PRIMARY KEY, b);
INSERT INTO t2 VALUES('abc', 'xxx');
INSERT INTO t2 VALUES('def', 'yyy');
SELECT org_id, count((NOT (org_id IS NULL)) AND (NOT (nickname IS NULL))) FROM person WHERE (CASE WHEN license != '' THEN (json_valid(octet_length(''), 1) + 0.0) ELSE 0 END) GROUP BY 1;
SELECT a, max(b || a) FROM t2 WHERE (b||b||b)!='value' GROUP BY a;
SELECT * FROM person t1 LEFT JOIN person t2 ON t1.nickname = (SELECT nickname FROM person WHERE nickname = t1.nickname);
SELECT * FROM person AS a JOIN person AS b ON a.rowid = b.rowid;
DELETE FROM person WHERE 0;
SELECT * FROM person AS a JOIN t2 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux22;
RELEASE sp2178;
DETACH DATABASE aux49;
DETACH DATABASE aux48;
WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte WHERE x > 1;
SELECT TOTAL(b) FROM t2;
```
## Actual output
```sql
abc|xxxabc
def|yyydef
meyers|jack|2GAT123|meyers|jack|2GAT123
meyers|jack|2GAT123|meyers|hill|V345FMP
meyers|jack|2GAT123|meyers|jim|2GAT138
meyers|jack|2GAT123|smith|maggy|
meyers|hill|V345FMP|meyers|jack|2GAT123
meyers|hill|V345FMP|meyers|hill|V345FMP
meyers|hill|V345FMP|meyers|jim|2GAT138
meyers|hill|V345FMP|smith|maggy|
meyers|jim|2GAT138|meyers|jack|2GAT123
meyers|jim|2GAT138|meyers|hill|V345FMP
meyers|jim|2GAT138|meyers|jim|2GAT138
meyers|jim|2GAT138|smith|maggy|
smith|maggy||meyers|jack|2GAT123
smith|maggy||meyers|hill|V345FMP
smith|maggy||meyers|jim|2GAT138
smith|maggy||smith|maggy|
meyers|jack|2GAT123|meyers|jack|2GAT123
meyers|hill|V345FMP|meyers|hill|V345FMP
meyers|jim|2GAT138|meyers|jim|2GAT138
smith|maggy||smith|maggy|
meyers|jack|2GAT123|abc|xxx
meyers|hill|V345FMP|def|yyy
2
3
0.0
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,407 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
.stats
CREATE TABLE main.t1(a, b TEXT);
CREATE UNIQUE INDEX IF NOT EXISTS x1 ON t1(b==log((-(-(-ifnull('{', 'fallback'))) * 1), 0));
CREATE INDEX IF NOT EXISTS x2 ON t1(a || 0) WHERE b;
INSERT INTO t1(a,b) VALUES('a',1),('a',0);
SELECT a, b, '|' FROM t1;
DROP INDEX IF EXISTS t1;
WITH m AS MATERIALIZED (SELECT a FROM t1) SELECT * FROM m;
UPDATE t1 SET a = CURRENT_TIMESTAMP WHERE a BETWEEN 0 AND 100 RETURNING *;
SELECT LAG(a, 0) OVER (PARTITION BY a ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1;
SELECT MAX(a) FROM t1;
SELECT * FROM t1;
VACUUM main;
SELECT * FROM t1 WHERE b IN (SELECT b FROM t1 LIMIT 0);
ALTER TABLE t1 RENAME TO t1_r2082;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
VACUUM main;
ALTER TABLE t1 DROP COLUMN a;
ALTER TABLE t1 ADD COLUMN extra_4108 BIGINT;
DELETE FROM t1 WHERE rowid = 7;
.stats
CREATE TABLE main.t1(a, b TEXT);
CREATE UNIQUE INDEX IF NOT EXISTS x1 ON t1(b==log((-(-(-ifnull('{', 'fallback'))) * 1), 0));
CREATE INDEX IF NOT EXISTS x2 ON t1(a || 0) WHERE b;
INSERT INTO t1(a,b) VALUES('a',1),('a',0);
SELECT a, b, '|' FROM t1;
DROP INDEX IF EXISTS t1;
WITH m AS MATERIALIZED (SELECT a FROM t1) SELECT * FROM m;
UPDATE t1 SET a = CURRENT_TIMESTAMP WHERE a BETWEEN 0 AND 100 RETURNING *;
SELECT LAG(a, 0) OVER (PARTITION BY a ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1;
SELECT MAX(a) FROM t1;
SELECT * FROM t1;
VACUUM main;
SELECT * FROM t1 WHERE b IN (SELECT b FROM t1 LIMIT 0);
ALTER TABLE t1 RENAME TO t1_r2082;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
VACUUM main;
ALTER TABLE t1 DROP COLUMN a;
ALTER TABLE t1 ADD COLUMN extra_4108 BIGINT;
DELETE FROM t1 WHERE rowid = 7;
.stats
CREATE TABLE main.t1(a, b TEXT);
CREATE UNIQUE INDEX IF NOT EXISTS x1 ON t1(b==log((-(-(-ifnull('{', 'fallback'))) * 1), 0));
CREATE INDEX IF NOT EXISTS x2 ON t1(a || 0) WHERE b;
INSERT INTO t1(a,b) VALUES('a',1),('a',0);
SELECT a, b, '|' FROM t1;
DROP INDEX IF EXISTS t1;
WITH m AS MATERIALIZED (SELECT a FROM t1) SELECT * FROM m;
UPDATE t1 SET a = CURRENT_TIMESTAMP WHERE a BETWEEN 0 AND 100 RETURNING *;
SELECT LAG(a, 0) OVER (PARTITION BY a ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1;
SELECT MAX(a) FROM t1;
SELECT * FROM t1;
VACUUM main;
SELECT * FROM t1 WHERE b IN (SELECT b FROM t1 LIMIT 0);
ALTER TABLE t1 RENAME TO t1_r2082;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
VACUUM main;
ALTER TABLE t1 DROP COLUMN a;
ALTER TABLE t1 ADD COLUMN extra_4108 BIGINT;
DELETE FROM t1 WHERE rowid = 7;
.stats
CREATE TABLE main.t1(a, b TEXT);
CREATE UNIQUE INDEX IF NOT EXISTS x1 ON t1(b==log((-(-(-ifnull('{', 'fallback'))) * 1), 0));
CREATE INDEX IF NOT EXISTS x2 ON t1(a || 0) WHERE b;
INSERT INTO t1(a,b) VALUES('a',1),('a',0);
SELECT a, b, '|' FROM t1;
DROP INDEX IF EXISTS t1;
WITH m AS MATERIALIZED (SELECT a FROM t1) SELECT * FROM m;
UPDATE t1 SET a = CURRENT_TIMESTAMP WHERE a BETWEEN 0 AND 100 RETURNING *;
SELECT LAG(a, 0) OVER (PARTITION BY a ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1;
SELECT MAX(a) FROM t1;
SELECT * FROM t1;
VACUUM main;
SELECT * FROM t1 WHERE b IN (SELECT b FROM t1 LIMIT 0);
ALTER TABLE t1 RENAME TO t1_r2082;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
VACUUM main;
ALTER TABLE t1 DROP COLUMN a;
ALTER TABLE t1 ADD COLUMN extra_4108 BIGINT;
DELETE FROM t1 WHERE rowid = 7;
.stats
CREATE TABLE main.t1(a, b TEXT);
CREATE UNIQUE INDEX IF NOT EXISTS x1 ON t1(b==log((-(-(-ifnull('{', 'fallback'))) * 1), 0));
CREATE INDEX IF NOT EXISTS x2 ON t1(a || 0) WHERE b;
INSERT INTO t1(a,b) VALUES('a',1),('a',0);
SELECT a, b, '|' FROM t1;
DROP INDEX IF EXISTS t1;
WITH m AS MATERIALIZED (SELECT a FROM t1) SELECT * FROM m;
UPDATE t1 SET a = CURRENT_TIMESTAMP WHERE a BETWEEN 0 AND 100 RETURNING *;
SELECT LAG(a, 0) OVER (PARTITION BY a ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1;
SELECT MAX(a) FROM t1;
SELECT * FROM t1;
VACUUM main;
SELECT * FROM t1 WHERE b IN (SELECT b FROM t1 LIMIT 0);
ALTER TABLE t1 RENAME TO t1_r2082;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
VACUUM main;
ALTER TABLE t1 DROP COLUMN a;
ALTER TABLE t1 ADD COLUMN extra_4108 BIGINT;
DELETE FROM t1 WHERE rowid = 7;
.stats
CREATE TABLE main.t1(a, b TEXT);
CREATE UNIQUE INDEX IF NOT EXISTS x1 ON t1(b==log((-(-(-ifnull('{', 'fallback'))) * 1), 0));
CREATE INDEX IF NOT EXISTS x2 ON t1(a || 0) WHERE b;
INSERT INTO t1(a,b) VALUES('a',1),('a',0);
SELECT a, b, '|' FROM t1;
DROP INDEX IF EXISTS t1;
WITH m AS MATERIALIZED (SELECT a FROM t1) SELECT * FROM m;
UPDATE t1 SET a = CURRENT_TIMESTAMP WHERE a BETWEEN 0 AND 100 RETURNING *;
SELECT LAG(a, 0) OVER (PARTITION BY a ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1;
SELECT MAX(a) FROM t1;
SELECT * FROM t1;
VACUUM main;
SELECT * FROM t1 WHERE b IN (SELECT b FROM t1 LIMIT 0);
ALTER TABLE t1 RENAME TO t1_r2082;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
VACUUM main;
ALTER TABLE t1 DROP COLUMN a;
ALTER TABLE t1 ADD COLUMN extra_4108 BIGINT;
DELETE FROM t1 WHERE rowid = 7;
.stats
CREATE TABLE main.t1(a, b TEXT);
CREATE UNIQUE INDEX IF NOT EXISTS x1 ON t1(b==log((-(-(-ifnull('{', 'fallback'))) * 1), 0));
CREATE INDEX IF NOT EXISTS x2 ON t1(a || 0) WHERE b;
INSERT INTO t1(a,b) VALUES('a',1),('a',0);
SELECT a, b, '|' FROM t1;
DROP INDEX IF EXISTS t1;
WITH m AS MATERIALIZED (SELECT a FROM t1) SELECT * FROM m;
UPDATE t1 SET a = CURRENT_TIMESTAMP WHERE a BETWEEN 0 AND 100 RETURNING *;
SELECT LAG(a, 0) OVER (PARTITION BY a ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1;
SELECT MAX(a) FROM t1;
SELECT * FROM t1;
VACUUM main;
SELECT * FROM t1 WHERE b IN (SELECT b FROM t1 LIMIT 0);
ALTER TABLE t1 RENAME TO t1_r2082;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
VACUUM main;
ALTER TABLE t1 DROP COLUMN a;
ALTER TABLE t1 ADD COLUMN extra_4108 BIGINT;
DELETE FROM t1 WHERE rowid = 7;
.stats
CREATE TABLE main.t1(a, b TEXT);
CREATE UNIQUE INDEX IF NOT EXISTS x1 ON t1(b==log((-(-(-ifnull('{', 'fallback'))) * 1), 0));
CREATE INDEX IF NOT EXISTS x2 ON t1(a || 0) WHERE b;
INSERT INTO t1(a,b) VALUES('a',1),('a',0);
SELECT a, b, '|' FROM t1;
DROP INDEX IF EXISTS t1;
WITH m AS MATERIALIZED (SELECT a FROM t1) SELECT * FROM m;
UPDATE t1 SET a = CURRENT_TIMESTAMP WHERE a BETWEEN 0 AND 100 RETURNING *;
SELECT LAG(a, 0) OVER (PARTITION BY a ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1;
SELECT MAX(a) FROM t1;
SELECT * FROM t1;
VACUUM main;
SELECT * FROM t1 WHERE b IN (SELECT b FROM t1 LIMIT 0);
ALTER TABLE t1 RENAME TO t1_r2082;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
VACUUM main;
ALTER TABLE t1 DROP COLUMN a;
ALTER TABLE t1 ADD COLUMN extra_4108 BIGINT;
DELETE FROM t1 WHERE rowid = 7;
.stats
CREATE TABLE main.t1(a, b TEXT);
CREATE UNIQUE INDEX IF NOT EXISTS x1 ON t1(b==log((-(-(-ifnull('{', 'fallback'))) * 1), 0));
CREATE INDEX IF NOT EXISTS x2 ON t1(a || 0) WHERE b;
INSERT INTO t1(a,b) VALUES('a',1),('a',0);
SELECT a, b, '|' FROM t1;
DROP INDEX IF EXISTS t1;
WITH m AS MATERIALIZED (SELECT a FROM t1) SELECT * FROM m;
UPDATE t1 SET a = CURRENT_TIMESTAMP WHERE a BETWEEN 0 AND 100 RETURNING *;
SELECT LAG(a, 0) OVER (PARTITION BY a ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1;
SELECT MAX(a) FROM t1;
SELECT * FROM t1;
VACUUM main;
SELECT * FROM t1 WHERE b IN (SELECT b FROM t1 LIMIT 0);
ALTER TABLE t1 RENAME TO t1_r2082;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
VACUUM main;
ALTER TABLE t1 DROP COLUMN a;
ALTER TABLE t1 ADD COLUMN extra_4108 BIGINT;
DELETE FROM t1 WHERE rowid = 7;
INSERT INTO t1 SELECT * FROM t1;
```
## Actual output
```sql
Memory Used: 0 (max 64) bytes
Number of Outstanding Allocations: 0 (max 2)
Number of Pcache Overflow Bytes: 0 (max 0) bytes
Largest Allocation: 40 bytes
Largest Pcache Allocation: 0 bytes
Bytes received by read(): 10409
Bytes sent to write(): 0
Read() system calls: 13
Write() system calls: 0
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
a|1||
a|0||
a
a
a
a
a
a|1
a|0
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
Braun|30|3
Wernher|10|1
von|20|2
Braun|30
Wernher|10
von|20
```
## Expectation
```sql
Memory Used: 0 (max 56) bytes
Number of Outstanding Allocations: 0 (max 2)
Number of Pcache Overflow Bytes: 0 (max 0) bytes
Largest Allocation: 40 bytes
Largest Pcache Allocation: 0 bytes
Bytes received by read(): 11185
Bytes sent to write(): 0
Read() system calls: 14
Write() system calls: 0
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
a|1||
a|0||
a
a
a
a
a
a|1
a|0
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
Braun|30|3
Wernher|10|1
von|20|2
Braun|30
Wernher|10
von|20
```
## Flag
```
```
@@ -0,0 +1,181 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
BEGIN DEFERRED TRANSACTION;
SAVEPOINT sp4295;
SAVEPOINT sp6056;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (like('%lower%', x'303c152bb6ebe4d8cc67'), 'Wernher', x'98', cos(octet_length(json_set(CAST(x'dc7dea' AS BIGINT), '$.new_key', jsonb_set((123 * 1), '$.key', 123)))));
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
SELECT AVG(b) FROM t1;
SELECT COUNT(c) FROM t1;
INSERT INTO t1 DEFAULT VALUES;
SELECT STRING_AGG(d) FROM t1;
CREATE VIEW IF NOT EXISTS v_t1_7391 AS SELECT a FROM t1;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (like('%lower%', 1), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
SELECT AVG(b) FROM t1;
SELECT COUNT(c) FROM t1;
INSERT INTO t1 DEFAULT VALUES;
SELECT STRING_AGG(d) FROM t1;
CREATE VIEW IF NOT EXISTS v_t1_7391 AS SELECT a FROM t1;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (like('%lower%', 1), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
SELECT AVG(b) FROM t1;
SELECT COUNT(c) FROM t1;
INSERT INTO t1 DEFAULT VALUES;
SELECT STRING_AGG(d) FROM t1;
CREATE VIEW IF NOT EXISTS v_t1_7391 AS SELECT a FROM t1;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (like('%lower%', 1), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
SELECT AVG(b) FROM t1;
SELECT COUNT(c) FROM t1;
INSERT INTO t1 DEFAULT VALUES;
SELECT STRING_AGG(d) FROM t1;
CREATE VIEW IF NOT EXISTS v_t1_7391 AS SELECT a FROM t1;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (like('%lower%', 1), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
SELECT AVG(b) FROM t1;
SELECT COUNT(c) FROM t1;
INSERT INTO t1 DEFAULT VALUES;
SELECT STRING_AGG(d) FROM t1;
CREATE VIEW IF NOT EXISTS v_t1_7391 AS SELECT a FROM t1;
INSERT INTO t1 DEFAULT VALUES;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
VACUUM main;
CREATE VIEW IF NOT EXISTS v_t1_6828 AS SELECT a FROM t1;
SELECT * FROM t1 AS a RIGHT JOIN t1 AS b ON a.rowid = b.rowid;
PRAGMA journal_mode = 'OFF';
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_2248 AS SELECT a FROM t1;
ROLLBACK TRANSACTION TO SAVEPOINT sp6056;
RELEASE SAVEPOINT sp6056;
ROLLBACK TRANSACTION TO SAVEPOINT sp4295;
RELEASE SAVEPOINT sp4295;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<9) SELECT x FROM cnt WHERE x > 4;
WITH RECURSIVE r AS (SELECT c FROM t1 WHERE c IS NOT NULL UNION ALL SELECT c FROM r WHERE c > 0 LIMIT 10) SELECT * FROM r;
CREATE TEMP VIEW IF NOT EXISTS v_t1_2021 AS SELECT d FROM t1;
ALTER TABLE t1 RENAME COLUMN c TO c_r8622;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<7) SELECT * FROM cnt;
INSERT INTO t1 VALUES ('x', NULL, NULL, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
END TRANSACTION;
WITH cte AS (SELECT d FROM t1 UNION SELECT d FROM t1) SELECT * FROM cte;
UPDATE t1 SET d = json_object('k', d) WHERE 1 RETURNING *;
INSERT INTO t1 DEFAULT VALUES;
PRAGMA writable_schema = 1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_4249 ON t1(lower(d)) WHERE d IS NOT NULL;
CREATE TRIGGER IF NOT EXISTS trg_t1_1965 AFTER UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT COUNT(*) FROM t1;
CREATE TABLE T1 (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15) UNIQUE,
C INTEGER
);
CREATE TABLE T2 (
X VARCHAR(20) PRIMARY KEY,
A VARCHAR(10) NOT NULL UNIQUE,
FOREIGN KEY (A) REFERENCES T1(A)
);
INSERT INTO T1 VALUES ('a', 'p', -2147483648);
INSERT INTO T1 VALUES ('b', 'q', 2147483647);
INSERT INTO T2 VALUES ('m', 'a');
INSERT INTO T2 VALUES ('n', 'b');
SELECT T2.X, T1.B, T1.C FROM T2, T1 WHERE T2.A = T1.A AND T1.C >= 0;
```
## Actual output
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
Braun|30|3
von|20|2
Braun|30
von|20
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,60 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
.stats
CREATE TABLE t1(a, b TEXT);
CREATE UNIQUE INDEX IF NOT EXISTS x1 ON t1(b==0);
CREATE INDEX IF NOT EXISTS x2 ON t1(a || 0) WHERE b;
INSERT INTO t1(a,b) VALUES('a',1),('a',0);
SELECT a, b, '|' FROM t1;
DROP INDEX IF EXISTS t1;
```
## Actual output
```sql
Memory Used: 0 (max 64) bytes
Number of Outstanding Allocations: 0 (max 2)
Number of Pcache Overflow Bytes: 0 (max 0) bytes
Largest Allocation: 40 bytes
Largest Pcache Allocation: 0 bytes
Bytes received by read(): 6545
Bytes sent to write(): 0
Read() system calls: 13
Write() system calls: 0
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
a|1||
a|0||
```
## Expectation
```sql
Memory Used: 0 (max 56) bytes
Number of Outstanding Allocations: 0 (max 2)
Number of Pcache Overflow Bytes: 0 (max 0) bytes
Largest Allocation: 40 bytes
Largest Pcache Allocation: 0 bytes
Bytes received by read(): 7321
Bytes sent to write(): 0
Read() system calls: 14
Write() system calls: 0
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
a|1||
a|0||
```
## Flag
```
```
@@ -0,0 +1,111 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
PRAGMA journal_mode = 'WAL';
CREATE TABLE t1(a,b INT);
INSERT INTO t1(a,b) VALUES(datetime(((length('') + 0) + 1), '+1 day'),2),(3,3),(4,5);
CREATE UNIQUE INDEX i1 ON t1(b,b,a,a,a,a,a,b,a);
ANALYZE;
DROP TABLE IF EXISTS sqlite_stat4;
INSERT INTO sqlite_stat1 VALUES('t1','i1','30 30 30 2 2 2 2 2 2 2');
ANALYZE sqlite_master;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_650 ON t1(a COLLATE NOCASE);
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (1,1.5), (2,-2.5), (3,0.0);
CREATE INDEX c
ON T(b);
SELECT * FROM T WHERE +b != -2.5 OR b < 2.0;
VACUUM main;
PRAGMA wal_checkpoint('RESTART');
INSERT INTO t1 VALUES (NULL, NULL);
SELECT COUNT(*) FROM t1;
SELECT a, COUNT(*) FROM t1 GROUP BY a HAVING a IN (SELECT a FROM t1);
DELETE FROM T WHERE rowid = 62;
UPDATE T SET b = CURRENT_TIMESTAMP WHERE b IS NOT NULL RETURNING *;
INSERT INTO t1 DEFAULT VALUES;
INSERT INTO t1 DEFAULT VALUES;
VACUUM main;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_4468 ON t1(lower(b)) WHERE b > 0;
SELECT STRING_AGG(b, '|') FROM t1;
SELECT COUNT(a) FILTER (WHERE a IS NOT NULL) OVER (PARTITION BY a ORDER BY a RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T;
ANALYZE T;
INSERT INTO t1 DEFAULT VALUES;
INSERT INTO t1 VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
PRAGMA secure_delete = 0;
SELECT * FROM t1 CROSS JOIN T;
WITH a AS (SELECT a FROM t1), b AS (SELECT a FROM a), c AS (SELECT a FROM b) SELECT * FROM c;
```
## Actual output
```sql
memory
1|1.5
2|-2.5
3|0.0
0|-1|-1
4
3|1
4|1
-4713-11-26 12:00:00|1
1|2026-05-15 11:44:06
2|2026-05-15 11:44:06
3|2026-05-15 11:44:06
1
1
1
0
-4713-11-26 12:00:00|2|1|2026-05-15 11:44:06
-4713-11-26 12:00:00|2|2|2026-05-15 11:44:06
-4713-11-26 12:00:00|2|3|2026-05-15 11:44:06
3|3|1|2026-05-15 11:44:06
3|3|2|2026-05-15 11:44:06
3|3|3|2026-05-15 11:44:06
4|5|1|2026-05-15 11:44:06
4|5|2|2026-05-15 11:44:06
4|5|3|2026-05-15 11:44:06
||1|2026-05-15 11:44:06
||2|2026-05-15 11:44:06
||3|2026-05-15 11:44:06
||1|2026-05-15 11:44:06
||2|2026-05-15 11:44:06
||3|2026-05-15 11:44:06
||1|2026-05-15 11:44:06
||2|2026-05-15 11:44:06
||3|2026-05-15 11:44:06
||1|2026-05-15 11:44:06
||2|2026-05-15 11:44:06
||3|2026-05-15 11:44:06
1|x|1|2026-05-15 11:44:06
1|x|2|2026-05-15 11:44:06
1|x|3|2026-05-15 11:44:06
1
3
4
-4713-11-26 12:00:00
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,407 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
SAVEPOINT sp2502;
ATTACH DATABASE ('' || (':memory:') || '') AS aux5;
CREATE TABLE main.t1(a NUMERIC PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST('.' AS FLOA), 'Wernher', acosh(log(10, 10)), 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
PRAGMA pragma_list;
CREATE TABLE T1 (
A VARCHAR(-(-(hex(2790980413263895699)))),
X VARCHAR(10),
PRIMARY KEY (A, X),
UNIQUE (X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10) UNIQUE,
PRIMARY KEY (A, Y)
);
INSErT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T2 VALUES ('b', 'k');
WITH _m /* ifnull(NULL, {v}) */ AS MATERIALIZED (SELECT * FROM T1) SELECT A FROM _m UNION ALL SELECT A FROM T2 ORDER BY A;
SELECT * FROM T1 NATURAL JOIN T1;
ALTER TABLE T1 ADD COLUMN extra_1763 NCHAR(55);
ALTER TABLE T2 RENAME TO T2_r7203;
ALTER TABLE T2 DROP COLUMN Y;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_4762 ON T1((A + 1)) WHERE NOT NOT (NOT NOT (A IS NOT NULL)) ;
ANALYZE T2;
REINDEX T2;
INSERT INTO T2 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
INSERT OR FAIL INTO T2 VALUES (1, 'x');
SELECT LAST_VALUE(A) OVER (ORDER BY A ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T2;
INSERT INTO T2 VALUES (NULL, NULL);
DETACH DATABASE aux5;
SELECT * FROM T2 WHERE A IN (SELECT A FROM T2);
INSERT INTO T2 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
INSERT INTO t1 DEFAULT VALUES;
UPDATE t1 SET a = a + 1 WHERE a IS NOT NULL RETURNING *;
ANALYZE;
INSERT OR REPLACE INTO T1 VALUES (0, '');
SELECT * FROM T1 NATURAL JOIN T2;
DELETE FROM t1 WHERE +b > (SELECT AVG(b) FROM t1);
ALTER TABLE T2 DROP COLUMN Y;
ROLLBACK TO sp2502;
RELEASE sp2502;
PRAGMA auto_vacuum = 1;
SELECT * FROM T2;
SAVEPOINT sp2502;
ATTACH DATABASE ':memory:' AS aux5;
CREATE TABLE t1(a NUMERIC PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST('.' AS FLOA), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
PRAGMA pragma_list;
CREATE TABLE T1 (
A VARCHAR(-(-(hex(2790980413263895699)))),
X VARCHAR(10),
PRIMARY KEY (A, X),
UNIQUE (X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10) UNIQUE,
PRIMARY KEY (A, Y)
);
INSErT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T2 VALUES ('b', 'k');
WITH _m /* ifnull(NULL, {v}) */ AS MATERIALIZED (SELECT * FROM T1) SELECT A FROM _m UNION ALL SELECT A FROM T2 ORDER BY A;
SELECT * FROM T1 NATURAL JOIN T1;
ALTER TABLE T1 ADD COLUMN extra_1763 NCHAR(55);
ALTER TABLE T2 RENAME TO T2_r7203;
ALTER TABLE T2 DROP COLUMN Y;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_4762 ON T1((A + 1)) WHERE A IS NOT NULL;
ANALYZE T2;
REINDEX T2;
INSERT INTO T2 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
INSERT OR FAIL INTO T2 VALUES (1, 'x');
SELECT LAST_VALUE(A) OVER (ORDER BY A ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T2;
INSERT INTO T2 VALUES (NULL, NULL);
DETACH DATABASE aux5;
SELECT * FROM T2 WHERE A IN (SELECT A FROM T2);
INSERT INTO T2 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
INSERT INTO t1 DEFAULT VALUES;
UPDATE t1 SET a = a + 1 WHERE a IS NOT NULL RETURNING *;
ANALYZE;
INSERT OR REPLACE INTO T1 VALUES (0, '');
SELECT * FROM T1 NATURAL JOIN T2;
DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1);
ALTER TABLE T2 DROP COLUMN Y;
ROLLBACK TO sp2502;
RELEASE sp2502;
PRAGMA auto_vacuum = 1;
SELECT * FROM T2;
SAVEPOINT sp2502;
ATTACH DATABASE ':memory:' AS aux5;
CREATE TABLE t1(a NUMERIC PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST('.' AS FLOA), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
PRAGMA pragma_list;
CREATE TABLE T1 (
A VARCHAR(-(-(hex(2790980413263895699)))),
X VARCHAR(10),
PRIMARY KEY (A, X),
UNIQUE (X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10) UNIQUE,
PRIMARY KEY (A, Y)
);
INSErT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T2 VALUES ('b', 'k');
WITH _m /* ifnull(NULL, {v}) */ AS MATERIALIZED (SELECT * FROM T1) SELECT A FROM _m UNION ALL SELECT A FROM T2 ORDER BY A;
SELECT * FROM T1 NATURAL JOIN T1;
ALTER TABLE T1 ADD COLUMN extra_1763 NCHAR(55);
ALTER TABLE T2 RENAME TO T2_r7203;
ALTER TABLE T2 DROP COLUMN Y;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_4762 ON T1((A + 1)) WHERE A IS NOT NULL;
ANALYZE T2;
REINDEX T2;
INSERT INTO T2 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
INSERT OR FAIL INTO T2 VALUES (1, 'x');
SELECT LAST_VALUE(A) OVER (ORDER BY A ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T2;
INSERT INTO T2 VALUES (NULL, NULL);
DETACH DATABASE aux5;
SELECT * FROM T2 WHERE A IN (SELECT A FROM T2);
INSERT INTO T2 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
INSERT INTO t1 DEFAULT VALUES;
UPDATE t1 SET a = a + 1 WHERE a IS NOT NULL RETURNING *;
ANALYZE;
INSERT OR REPLACE INTO T1 VALUES (0, '');
SELECT * FROM T1 NATURAL JOIN T2;
DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1);
ALTER TABLE T2 DROP COLUMN Y;
ROLLBACK TO sp2502;
RELEASE sp2502;
PRAGMA auto_vacuum = 1;
SELECT * FROM T2;
SAVEPOINT sp2502;
ATTACH DATABASE ':memory:' AS aux5;
CREATE TABLE t1(a NUMERIC PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST('.' AS FLOA), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
PRAGMA pragma_list;
CREATE TABLE T1 (
A VARCHAR(-(-(hex(2790980413263895699)))),
X VARCHAR(10),
PRIMARY KEY (A, X),
UNIQUE (X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10) UNIQUE,
PRIMARY KEY (A, Y)
);
INSErT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T2 VALUES ('b', 'k');
WITH _m /* ifnull(NULL, {v}) */ AS MATERIALIZED (SELECT * FROM T1) SELECT A FROM _m UNION ALL SELECT A FROM T2 ORDER BY A;
SELECT * FROM T1 NATURAL JOIN T1;
ALTER TABLE T1 ADD COLUMN extra_1763 NCHAR(55);
ALTER TABLE T2 RENAME TO T2_r7203;
ALTER TABLE T2 DROP COLUMN Y;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_4762 ON T1((A + 1)) WHERE A IS NOT NULL;
ANALYZE T2;
REINDEX T2;
INSERT INTO T2 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
INSERT OR FAIL INTO T2 VALUES (1, 'x');
SELECT LAST_VALUE(A) OVER (ORDER BY A ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T2;
INSERT INTO T2 VALUES (NULL, NULL);
DETACH DATABASE aux5;
SELECT * FROM T2 WHERE A IN (SELECT A FROM T2);
INSERT INTO T2 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
INSERT INTO t1 DEFAULT VALUES;
UPDATE t1 SET a = a + 1 WHERE a IS NOT NULL RETURNING *;
ANALYZE;
INSERT OR REPLACE INTO T1 VALUES (0, '');
SELECT * FROM T1 NATURAL JOIN T2;
DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1);
ALTER TABLE T2 DROP COLUMN Y;
ROLLBACK TO sp2502;
RELEASE sp2502;
PRAGMA auto_vacuum = 1;
SELECT * FROM T2;
SAVEPOINT sp2502;
ATTACH DATABASE ':memory:' AS aux5;
CREATE TABLE t1(a NUMERIC PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST('.' AS FLOA), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
PRAGMA pragma_list;
CREATE TABLE T1 (
A VARCHAR(-(-(hex(2790980413263895699)))),
X VARCHAR(10),
PRIMARY KEY (A, X),
UNIQUE (X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10) UNIQUE,
PRIMARY KEY (A, Y)
);
INSErT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T2 VALUES ('b', 'k');
WITH _m /* ifnull(NULL, {v}) */ AS MATERIALIZED (SELECT * FROM T1) SELECT A FROM _m UNION ALL SELECT A FROM T2 ORDER BY A;
SELECT * FROM T1 NATURAL JOIN T1;
ALTER TABLE T1 ADD COLUMN extra_1763 NCHAR(55);
ALTER TABLE T2 RENAME TO T2_r7203;
ALTER TABLE T2 DROP COLUMN Y;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_4762 ON T1((A + 1)) WHERE A IS NOT NULL;
ANALYZE T2;
REINDEX T2;
INSERT INTO T2 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
INSERT OR FAIL INTO T2 VALUES (1, 'x');
SELECT LAST_VALUE(A) OVER (ORDER BY A ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T2;
INSERT INTO T2 VALUES (NULL, NULL);
DETACH DATABASE aux5;
SELECT * FROM T2 WHERE A IN (SELECT A FROM T2);
INSERT INTO T2 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
INSERT INTO t1 DEFAULT VALUES;
UPDATE t1 SET a = a + 1 WHERE a IS NOT NULL RETURNING *;
ANALYZE;
INSERT OR REPLACE INTO T1 VALUES (0, '');
SELECT * FROM T1 NATURAL JOIN T2;
DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1);
ALTER TABLE T2 DROP COLUMN Y;
ROLLBACK TO sp2502;
RELEASE sp2502;
PRAGMA auto_vacuum = 1;
SELECT * FROM T2;
SAVEPOINT sp2502;
ATTACH DATABASE ':memory:' AS aux5;
CREATE TABLE t1(a NUMERIC PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST('.' AS FLOA), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
PRAGMA pragma_list;
CREATE TABLE T1 (
A VARCHAR(-(-(hex(2790980413263895699)))),
X VARCHAR(10),
PRIMARY KEY (A, X),
UNIQUE (X)
);
CREATE TABLE T2 (
A VARCHAR(20),
Y VARCHAR(10) UNIQUE,
PRIMARY KEY (A, Y)
);
INSErT INTO T1 VALUES ('a', 'm');
INSERT INTO T1 VALUES ('b', 'n');
INSERT INTO T2 VALUES ('b', 'k');
WITH _m /* ifnull(NULL, {v}) */ AS MATERIALIZED (SELECT * FROM T1) SELECT A FROM _m UNION ALL SELECT A FROM T2 ORDER BY A;
SELECT * FROM T1 NATURAL JOIN T1;
ALTER TABLE T1 ADD COLUMN extra_1763 NCHAR(55);
ALTER TABLE T2 RENAME TO T2_r7203;
ALTER TABLE T2 DROP COLUMN Y;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_4762 ON T1((A + 1)) WHERE A IS NOT NULL;
ANALYZE T2;
REINDEX T2;
INSERT INTO T2 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
INSERT OR FAIL INTO T2 VALUES (1, 'x');
SELECT LAST_VALUE(A) OVER (ORDER BY A ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T2;
INSERT INTO T2 VALUES (NULL, NULL);
DETACH DATABASE aux5;
SELECT * FROM T2 WHERE A IN (SELECT A FROM T2);
INSERT INTO T2 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
INSERT INTO t1 DEFAULT VALUES;
UPDATE t1 SET a = a + 1 WHERE a IS NOT NULL RETURNING *;
ANALYZE;
INSERT OR REPLACE INTO T1 VALUES (0, '');
SELECT * FROM T1 NATURAL JOIN T2;
DELETE FROM t1 WHERE b > (SELECT AVG(b) FROM t1);
ALTER TABLE T2 DROP COLUMN Y;
ROLLBACK TO sp2502;
RELEASE sp2502;
PRAGMA auto_vacuum = 1;
SELECT * FROM T2;
VACUUM;
PRAGMA vdbe_listing = 0;
SELECT COUNT(*) FROM T2;
SELECT * FROM t1 AS a JOIN t1 AS b ON a.rowid = b.rowid;
SELECT COUNT(*) FILTER (WHERE A IS NOT NULL), SUM(rowid) FILTER (WHERE A > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(A) FILTER (WHERE A > 0 AND A < 100), COUNT(*) FILTER (WHERE typeof(A) = "text") FROM T2;
CREATE TEMP VIEW IF NOT EXISTS v_t1_6450 AS SELECT d FROM t1;
SELECT * FROM T2 WHERE A > ALL (SELECT A FROM T2);
SELECT COUNT(*) FILTER (WHERE A > 0) OVER (PARTITION BY A ORDER BY A ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T1;
ALTER TABLE T2 RENAME COLUMN Y TO Y_r4134;
INSERT OR ABORT INTO t1 VALUES ('x', NULL, 'x', -5);
SELECT STRING_AGG(c) FROM t1;
ALTER TABLE T1 DROP COLUMN A;
```
## Actual output
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
Braun|30|3
Wernher|0|1
von|20|2
Braun|30
Wernher|0
von|20
```
## Expectation
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
Braun|30|3
Wernher|0|1
von|20|2
Braun|30
Wernher|0
von|20
```
## Flag
```
```
@@ -0,0 +1,227 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
SAVEPOINT sp4002;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, ('Wernher' || ''), 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
CREATE TABLE T (
a INTEGER,
b TEXT,
c INTEGER
);
INSERT INTO T VALUES (1,'a',NULL), (2,'b',1), (3,'c',2);
WITH RECURSIVE d(a,b,c,e) AS (
SELECT *,1 FROM T WHERE c IS NULL
UNION ALL
SELECT T.a,T.b,T.c,d.e+1
FROM T JOIN d ON T.c=d.a
)
SELECT * FROM d;
PRAGMA query_only;
ATTACH DATABASE ((':memory:' || '') || '') AS aux80;
.scanstats on
PRAGMA page_count;
SAVEPOINT sp1489;
PRAGMA parser_trace = FALSE;
PRAGMA wal_checkpoint('TRUNCATE');
PRAGMA cell_size_check = ON;
.eqp auto
CREATE TABLE t1(x INTEGER PRIMARY KEY, y, z);
CREATE TABLE t2(a, b);
CREATE VIEW agg2 AS SELECT a, sum(b) AS m FROM t2 GROUP BY a;
SELECT t1.z, agg2.m FROM t1 JOIN agg2 ON t1.y=agg2.m WHERE t1.x IN (date(nan, 'start of month'),hex(12345678),3);
CREATE TABLE t920(x);
INSERT INTO t920 VALUES(3),(4),(5);
SELECT * FROM t920,(SELECT 0 FROM t920),(VALUES(9)) WHERE 5 IN (x);
INSERT INTO t1 VALUES (NULL, NULL, NULL);
UPDATE t1 SET y = json_object('k', y) WHERE rowid = 1;
CREATE TABLE T (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15) noT NULL,
C DOUBLE PRECISION
);
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
INSERT INTO T VALUES ('b', 'q', -0.000000001);
INSERT INTO T VALUES ('c', 'r', 0.0);
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
INSERT INTO T VALUES ('f', 't', 750.25);
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) /* NTILE(4) */ AS F FROM T GROUP BY B;
RELEASE sp1489;
INSERT INTO t2 SELECT * FROM t2;
SELECT MAX(b) FROM t2;
SELECT * FROM t1 AS a INNER JOIN t2 AS b ON a.rowid = b.rowid;
SELECT * FROM t2 AS a LEFT JOIN t2 AS b ON a.rowid = b.rowid;
SELECT C, (SELECT MAX(C) FROM T) AS max_val FROM T;
SELECT * FROM t2 WHERE a IN (SELECT a FROM t2 t2 WHERE t2.a = t2.a);
WITH cte AS (SELECT * FROM t2 WHERE a = (SELECT MAX(a) FROM t2)) SELECT * FROM cte;
ALTER TABLE T RENAME TO T_r974;
CREATE TEMP VIEW IF NOT EXISTS v_T_9533 AS SELECT B FROM T;
DETACH DATABASE aux80;
INSERT INTO t920 VALUES (NULL);
ANALYZE t2;
UPDATE t1 SET x = x + 1 WHERE x BETWEEN 0 AND 100;
ANALYZE;
CREATE TRIGGER IF NOT EXISTS trg_T_7612 AFTER DELETE ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
UPDATE T SET C = json_object('k', C);
SELECT LAG(B, 2, B) OVER (ORDER BY B ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
SELECT MIN(y) FROM t1;
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (1,1.5), (2,-7.25), (3,0.0);
SELECT a,b FROM T WHERE a >= 2 ORDER BY b;
ALTER TABLE t920 RENAME TO t920_r731;
SELECT SUM(b) FROM t2;
SELECT NTILE(1) OVER (ORDER BY B ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
VACUUM;
INSERT OR FAIL INTO t920 VALUES (-4);
SELECT TOTAL(b) FROM t2;
CREATE TEMP VIEW IF NOT EXISTS v_t1_6556 AS SELECT y FROM t1;
PRAGMA journal_mode = 'TRUNCATE';
CREATE VIEW IF NOT EXISTS v_t920_142 AS SELECT x FROM t920;
ROLLBACK TRANSACTION TO SAVEPOINT sp4002;
RELEASE SAVEPOINT sp4002;
WITH cte AS (SELECT DISTINCT a FROM T) SELECT * FROM cte;
PRAGMA legacy_file_format;
SAVEPOINT sp4002;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
CREATE TABLE T (
a INTEGER,
b TEXT,
c INTEGER
);
INSERT INTO T VALUES (1,'a',NULL), (2,'b',1), (3,'c',2);
WITH RECURSIVE d(a,b,c,e) AS (
SELECT *,1 FROM T WHERE c IS NULL
UNION ALL
SELECT T.a,T.b,T.c,d.e+1
FROM T JOIN d ON T.c=d.a
)
SELECT * FROM d;
PRAGMA query_only;
ATTACH DATABASE ((':memory:' || '') || '') AS aux80;
.scanstats on
PRAGMA page_count;
SAVEPOINT sp1489;
PRAGMA parser_trace = FALSE;
PRAGMA wal_checkpoint('TRUNCATE');
PRAGMA cell_size_check = ON;
.eqp auto
CREATE TABLE t1(x INTEGER PRIMARY KEY, y, z);
CREATE TABLE t2(a, b);
CREATE VIEW agg2 AS SELECT a, sum(b) AS m FROM t2 GROUP BY a;
SELECT t1.z, agg2.m FROM t1 JOIN agg2 ON t1.y=agg2.m WHERE t1.x IN (date(nan, 'start of month'),hex(12345678),3);
CREATE TABLE t920(x);
INSERT INTO t920 VALUES(3),(4),(5);
SELECT * FROM t920,(SELECT 0 FROM t920),(VALUES(9)) WHERE 5 IN (x);
INSERT INTO t1 VALUES (NULL, NULL, NULL);
UPDATE t1 SET y = json_object('k', y) WHERE rowid = 1;
CREATE TABLE T (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15) noT NULL,
C DOUBLE PRECISION
);
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
INSERT INTO T VALUES ('b', 'q', -0.000000001);
INSERT INTO T VALUES ('c', 'r', 0.0);
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
INSERT INTO T VALUES ('f', 't', 750.25);
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) /* NTILE(4) */ AS F FROM T GROUP BY B;
RELEASE sp1489;
INSERT INTO t2 SELECT * FROM t2;
SELECT MAX(b) FROM t2;
SELECT * FROM t1 AS a INNER JOIN t2 AS b ON a.rowid = b.rowid;
SELECT * FROM t2 AS a LEFT JOIN t2 AS b ON a.rowid = b.rowid;
SELECT C, (SELECT MAX(C) FROM T) AS max_val FROM T;
SELECT * FROM t2 WHERE a IN (SELECT a FROM t2 t2 WHERE t2.a = t2.a);
WITH cte AS (SELECT * FROM t2 WHERE a = (SELECT MAX(a) FROM t2)) SELECT * FROM cte;
ALTER TABLE T RENAME TO T_r974;
CREATE TEMP VIEW IF NOT EXISTS v_T_9533 AS SELECT B FROM T;
DETACH DATABASE aux80;
INSERT INTO t920 VALUES (NULL);
ANALYZE t2;
UPDATE t1 SET x = x + 1 WHERE x BETWEEN 0 AND 100;
ANALYZE;
CREATE TRIGGER IF NOT EXISTS trg_T_7612 AFTER DELETE ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
UPDATE T SET C = json_object('k', C);
SELECT LAG(B, 2, B) OVER (ORDER BY B ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
SELECT MIN(y) FROM t1;
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (1,1.5), (2,-7.25), (3,0.0);
SELECT a,b FROM T WHERE a >= 2 ORDER BY b;
ALTER TABLE t920 RENAME TO t920_r731;
SELECT SUM(b) FROM t2;
SELECT NTILE(1) OVER (ORDER BY B ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
VACUUM;
INSERT OR FAIL INTO t920 VALUES (-4);
SELECT TOTAL(b) FROM t2;
CREATE TEMP VIEW IF NOT EXISTS v_t1_6556 AS SELECT y FROM t1;
PRAGMA journal_mode = 'TRUNCATE';
CREATE VIEW IF NOT EXISTS v_t920_142 AS SELECT x FROM t920;
ROLLBACK TRANSACTION TO SAVEPOINT sp4002;
RELEASE SAVEPOINT sp4002;
WITH cte AS (SELECT DISTINCT a FROM T) SELECT * FROM cte;
PRAGMA legacy_file_format;
CREATE VIEW IF NOT EXISTS v_t1_4937 AS SELECT y FROM t1;
```
## Actual output
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
Braun|30|3
Wernher|10|1
von|20|2
Braun|30
Wernher|10
von|20
```
## Expectation
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
Braun|30|3
Wernher|10|1
von|20|2
Braun|30
Wernher|10
von|20
```
## Flag
```
```
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,177 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
SAVEPOINT sp1295;
.import corrupt001.db main
.print https://yewtu.be/watch?v=dQw4w9WgXcQ
ATTACH DATABASE ':memory:' AS aux28;
CREATE TEMPORARY TABLE "t0"(x, y, z);
SELECT -concat_ws('|', NULL, NULL, NULL);
SELECT * FROM sqlite_temp_master WHERE NOT sql GLOB '000[]***';
DROP TABLE t0;
.quit
.filectrl
PRAGMA cache_spill = TRUE;
PRAGMA vdbe_addoptrace = TRUE;
PRAGMA stats;
CREATE TEMPORARY TABLE t0(x, y, z);
SELECT -trunc(json_quote(power(-(-(x'168d8a871af47810')), 99999999999999999999999999999999999999999999999999)));
SELECT * FROM sqlite_temp_master WHERE NOT sql GLOB '000[]***';
DROP TABLE t0;
.timer on
CREATE TABLE t3(x,y);
INSERT INTO t3 VALUES(1,NULL);
CREATE TABLE T (
a TEXT,
b TEXT,
c REAL
);
INSERT INTO T VALUES ('a','b',1.0), ('a','c',-1.0), ('b','d',0.0);
SELECT
COALESCE(a,'e') AS d,
COALESCE(b,'f') AS e,
SUM(c) AS f
FROM T
GROUP BY a,b;
INSERT INTO t3 VALUES(2,NULL);
INSERT INTO t3 VALUES(3,4);
SELECT count(x), y FROM t3 GROUP BY y ORDER BY 1;
SELECT * FROM t3 AS a NATURAL JOIN t3 AS b ON a.rowid = b.rowid;
CREATE VIEW IF NOT EXISTS v_t3_1775 AS SELECT y FROM t3;
VACUUM main;
INSERT INTO t3 VALUES (NULL, NULL);
DROP TRIGGER IF EXISTS T;
.quit
.filectrl
PRAGMA cache_spill = TRUE;
PRAGMA vdbe_addoptrace = TRUE;
PRAGMA stats;
CREATE TEMPORARY TABLE t0(x, y, z);
SELECT -trunc(json_quote(99999999999999999999999999999999999999999999999999));
SELECT * FROM sqlite_temp_master WHERE NOT sql GLOB '000[]***';
DROP TABLE t0;
.timer on
CREATE TABLE t3(x,y);
INSERT INTO t3 VALUES(1,NULL);
CREATE TABLE T (
a TEXT,
b TEXT,
c REAL
);
INSERT INTO T VALUES /**/ ('a','b',1.0), ('a','c',-1.0), ('b','d',0.0);
SELECT
COALESCE(a,'e') AS d,
COALESCE(b,'f') AS e,
SUM(c) AS f
FROM T
GROUP BY a,b;
INSERT INTO t3 VALUES(2,NULL);
INSERT INTO t3 VALUES(3,4);
SELECT count(x), y FROM t3 GROUP BY y ORDER BY 1;
SELECT * FROM t3 AS a LEFT OUTER JOIN t3 AS b ON a.rowid = b.rowid;
CREATE VIEW IF NOT EXISTS v_t3_1775 AS SELECT y FROM t3;
VACUUM main;
INSERT INTO t3 VALUES (NULL, NULL);
DROP TRIGGER IF EXISTS T;
.quit
.filectrl
PRAGMA cache_spill = TRUE;
PRAGMA vdbe_addoptrace = TRUE;
PRAGMA stats;
CREATE TEMPORARY TABLE t0(x, y, z);
SELECT -trunc(json_quote(99999999999999999999999999999999999999999999999999));
SELECT * FROM sqlite_temp_master WHERE NOT sql GLOB '000[]***';
DROP TABLE t0;
.timer on
CREATE TABLE t3(x,y);
INSERT INTO t3 VALUES(1,NULL);
CREATE TABLE T (
a TEXT,
b TEXT,
c REAL
);
INSERT INTO T VALUES ('a','b',1.0), ('a','c',-1.0), ('b','d',0.0);
SELECT
COALESCE(a,'e') AS d,
COALESCE(b,'f') AS e,
SUM(c) AS f
FROM T
GROUP BY a,b;
INSERT INTO t3 VALUES(2,NULL);
INSERT INTO t3 VALUES(3,4);
SELECT count(x), y FROM t3 GROUP BY y ORDER BY 1;
SELECT * FROM t3 AS a LEFT OUTER JOIN t3 AS b ON a.rowid = b.rowid;
CREATE VIEW IF NOT EXISTS v_t3_1775 AS SELECT y FROM t3;
VACUUM main;
INSERT INTO t3 VALUES (NULL, NULL);
DROP TRIGGER IF EXISTS T;
CREATE TEMP VIEW IF NOT EXISTS v_t0_2745 AS SELECT y FROM t0;
UPDATE t0 SET y = NULL WHERE 1 RETURNING *;
SELECT * FROM t3;
ANALYZE;
DELETE FROM t3 WHERE 1;
ALTER TABLE t0 DROP COLUMN x;
DELETE FROM t3 WHERE 1;
SELECT * FROM t0 AS a LEFT OUTER JOIN t0 AS b ON a.rowid = b.rowid;
CREATE TABLE T (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15),
C BIGINT NOT NULL,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', 3000);
INSERT INTO T VALUES ('b', 'q', 9223372036854775807);
INSERT INTO T VALUES ('c', 'r', 1700);
INSERT INTO T VALUES ('e', 'q', -9223372036854775808);
INSERT INTO T VALUES ('f', 'r', 0);
SELECT B, COUNT(*) AS D, SUM(C) AS E, AVG(C) AS F FROM T GROUP BY B HAVING SUM(C) > 0;
REINDEX;
SELECT * FROM t0 WHERE y NOT IN (SELECT y FROM t0 WHERE y IS NULL);
DETACH DATABASE aux28;
ALTER TABLE T ADD COLUMN extra_139 ANY DEFAULT 0;
SELECT * FROM T WHERE A <> ALL (SELECT A FROM T);
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;
DROP INDEX IF EXISTS t3;
SELECT COUNT(*) FILTER (WHERE A IS NOT NULL), SUM(rowid) FILTER (WHERE A > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(A) FILTER (WHERE A > 0 AND A < 100), COUNT(*) FILTER (WHERE typeof(A) = "text") FROM T;
CREATE INDEX IF NOT EXISTS idx_t3_3532 ON t3(x);
INSERT INTO t3 VALUES (1, 'x') ON CONFLICT(x) DO UPDATE SET x = excluded.x, y = excluded.y;
ALTER TABLE t3 ADD COLUMN extra_6458 VARCHAR(255) DEFAULT (random());
UPDATE t3 SET y = y + 1 WHERE rowid = 1 RETURNING *;
ROLLBACK TRANSACTION TO SAVEPOINT sp1295;
RELEASE SAVEPOINT sp1295;
SELECT LAG(x, 0, 'default') OVER (ORDER BY x RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t3;
ANALYZE t3;
SELECT * FROM T AS a RIGHT OUTER JOIN t3 AS b ON a.rowid = b.rowid;
INSERT INTO T DEFAULT VALUES;
ALTER TABLE t3 RENAME COLUMN x TO x_r731;
ALTER TABLE t0 RENAME TO t0_r9792;
SELECT * FROM t3 AS a LEFT OUTER JOIN t3 AS b ON a.rowid = b.rowid;
ALTER TABLE T DROP COLUMN B;
SELECT * FROM t3 t1 RIGHT JOIN t3 t2 ON t1.y = (SELECT y FROM t3 WHERE y = t1.y);
DELETE FROM t0 WHERE 0 RETURNING *;
ALTER TABLE T DROP COLUMN B;
```
## Actual output
```sql
https://yewtu.be/watch?v=dQw4w9WgXcQ
table|t0|t0|2|CREATE TABLE "t0"(x, y, z)
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,590 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
PRAGMA synchronous = 'OFF';
PRAGMA vdbe_debug = NO;
BEGIN IMMEDIATE TRANSACTION;
PRAGMA legacy_alter_table = TRUE;
SAVEPOINT sp5399;
.once log.txt
CREATE TABLE T (
a TEXT,
b TEXT
);
-- instr('hello', 'lo')
INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01');
SELECT a,
CAST(
(julianday('now')-julianday(b))/concat('text', like('123%', power('(', time(NULL))), NULL)
AS INTEGER
) AS c
FROM T;
ALTER TABLE T DROP COLUMN b;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
INSERT /* .auth ON */ INTO T SELECT * FROM T;
ANALYZE T;
WITH a AS (SELECT * FROM T), RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE NOT NOT (x<67) SELECT * FROM a CROSS JOIN cnt) ;
SELECT c, (SELECT MIN(c) FROM t1) AS min_val FROM t1;
INSERT INTO t1 DEFAULT VALUES;
ALTER TABLE t1 ADD COLUMN extra_5654 INT DEFAULT CURRENT_TIMESTAMP;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_7795 ON t1(b) WHERE b IS NOT NULL;
ROLLBACK TO sp5399;
RELEASE sp5399;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
INSERT INTO T VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
UPDATE T SET b = json_object('k', b) WHERE b IS NOT NULL;
ALTER TABLE T DROP COLUMN b;
DROP VIEW IF EXISTS t1;
INSERT INTO t1 SELECT * FROM t1;
SELECT * FROM t1;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, 'x', 'x', 2);
ROLLBACK;
DROP TABLE IF EXISTS T;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_2045 AS SELECT c FROM t1;
REINDEX;
SELECT d FROM t1 WHERE d = (SELECT MAX(d) FROM t1);
DROP TRIGGER IF EXISTS T;
SELECT SUM(d) OVER (PARTITION BY d ORDER BY d) FROM t1;
PRAGMA synchronous = 'OFF';
PRAGMA vdbe_debug = NO;
BEGIN IMMEDIATE TRANSACTION;
PRAGMA legacy_alter_table = TRUE;
SAVEPOINT sp5399;
.once log.txt
CREATE TABLE T (
a TEXT,
b TEXT
);
-- instr('hello', 'lo')
INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01');
SELECT a,
CAST(
(julianday('now')-julianday(b))/concat('text', like('123%', power('(', time(123))), NULL)
AS INTEGER
) AS c
FROM T;
ALTER TABLE T DROP COLUMN b;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
INSERT /* .auth ON */ INTO T SELECT * FROM T;
ANALYZE T;
WITH a AS (SELECT * FROM T), RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE NOT NOT (x<67) SELECT * FROM a CROSS JOIN cnt) ;
SELECT c, (SELECT MIN(c) FROM t1) AS min_val FROM t1;
INSERT INTO t1 DEFAULT VALUES;
ALTER TABLE t1 ADD COLUMN extra_5654 INT DEFAULT CURRENT_TIMESTAMP;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_7795 ON t1(b) WHERE b IS NOT NULL;
ROLLBACK TO sp5399;
RELEASE sp5399;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
INSERT INTO T VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
UPDATE T SET b = json_object('k', b) WHERE b IS NOT NULL;
ALTER TABLE T DROP COLUMN b;
DROP VIEW IF EXISTS t1;
INSERT INTO t1 SELECT * FROM t1;
SELECT * FROM t1;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, 'x', 'x', 2);
ROLLBACK;
DROP TABLE IF EXISTS T;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_2045 AS SELECT c FROM t1;
REINDEX;
SELECT d FROM t1 WHERE d = (SELECT MAX(d) FROM t1);
DROP TRIGGER IF EXISTS T;
SELECT SUM(d) OVER (PARTITION BY d ORDER BY d) FROM t1;
PRAGMA synchronous = 'OFF';
PRAGMA vdbe_debug = NO;
BEGIN IMMEDIATE TRANSACTION;
PRAGMA legacy_alter_table = TRUE;
SAVEPOINT sp5399;
.once log.txt
CREATE TABLE T (
a TEXT,
b TEXT
);
-- instr('hello', 'lo')
INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01');
SELECT a,
CAST(
(julianday('now')-julianday(b))/concat('text', like('123%', power('(', time(123))), NULL)
AS INTEGER
) AS c
FROM T;
ALTER TABLE T DROP COLUMN b;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
INSERT /* .auth ON */ INTO T SELECT * FROM T;
ANALYZE T;
WITH a AS (SELECT * FROM T), RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE NOT NOT (x<67) SELECT * FROM a CROSS JOIN cnt) ;
SELECT c, (SELECT MIN(c) FROM t1) AS min_val FROM t1;
INSERT INTO t1 DEFAULT VALUES;
ALTER TABLE t1 ADD COLUMN extra_5654 INT DEFAULT CURRENT_TIMESTAMP;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_7795 ON t1(b) WHERE b IS NOT NULL;
ROLLBACK TO sp5399;
RELEASE sp5399;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
INSERT INTO T VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
UPDATE T SET b = json_object('k', b) WHERE b IS NOT NULL;
ALTER TABLE T DROP COLUMN b;
DROP VIEW IF EXISTS t1;
INSERT INTO t1 SELECT * FROM t1;
SELECT * FROM t1;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, 'x', 'x', 2);
ROLLBACK;
DROP TABLE IF EXISTS T;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_2045 AS SELECT c FROM t1;
REINDEX;
SELECT d FROM t1 WHERE d = (SELECT MAX(d) FROM t1);
DROP TRIGGER IF EXISTS T;
SELECT SUM(d) OVER (PARTITION BY d ORDER BY d) FROM t1;
PRAGMA synchronous = 'OFF';
PRAGMA vdbe_debug = NO;
BEGIN IMMEDIATE TRANSACTION;
PRAGMA legacy_alter_table = TRUE;
SAVEPOINT sp5399;
.once log.txt
CREATE TABLE T (
a TEXT,
b TEXT
);
-- instr('hello', 'lo')
INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01');
SELECT a,
CAST(
(julianday('now')-julianday(b))/concat('text', like('123%', power('(', time(123))), NULL)
AS INTEGER
) AS c
FROM T;
ALTER TABLE T DROP COLUMN b;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
INSERT /* .auth ON */ INTO T SELECT * FROM T;
ANALYZE T;
WITH a AS (SELECT * FROM T), RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE NOT NOT (x<67) SELECT * FROM a CROSS JOIN cnt) ;
SELECT c, (SELECT MIN(c) FROM t1) AS min_val FROM t1;
INSERT INTO t1 DEFAULT VALUES;
ALTER TABLE t1 ADD COLUMN extra_5654 INT DEFAULT CURRENT_TIMESTAMP;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_7795 ON t1(b) WHERE b IS NOT NULL;
ROLLBACK TO sp5399;
RELEASE sp5399;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
INSERT INTO T VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
UPDATE T SET b = json_object('k', b) WHERE b IS NOT NULL;
ALTER TABLE T DROP COLUMN b;
DROP VIEW IF EXISTS t1;
INSERT INTO t1 SELECT * FROM t1;
SELECT * FROM t1;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, 'x', 'x', 2);
ROLLBACK;
DROP TABLE IF EXISTS T;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_2045 AS SELECT c FROM t1;
REINDEX;
SELECT d FROM t1 WHERE d = (SELECT MAX(d) FROM t1);
DROP TRIGGER IF EXISTS T;
SELECT SUM(d) OVER (PARTITION BY d ORDER BY d) FROM t1;
PRAGMA synchronous = 'OFF';
PRAGMA vdbe_debug = NO;
BEGIN IMMEDIATE TRANSACTION;
PRAGMA legacy_alter_table = TRUE;
SAVEPOINT sp5399;
.once log.txt
CREATE TABLE T (
a TEXT,
b TEXT
);
-- instr('hello', 'lo')
INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01');
SELECT a,
CAST(
(julianday('now')-julianday(b))/concat('text', like('123%', power('(', time(123))), NULL)
AS INTEGER
) AS c
FROM T;
ALTER TABLE T DROP COLUMN b;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
INSERT /* .auth ON */ INTO T SELECT * FROM T;
ANALYZE T;
WITH a AS (SELECT * FROM T), RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE NOT NOT (x<67) SELECT * FROM a CROSS JOIN cnt) ;
SELECT c, (SELECT MIN(c) FROM t1) AS min_val FROM t1;
INSERT INTO t1 DEFAULT VALUES;
ALTER TABLE t1 ADD COLUMN extra_5654 INT DEFAULT CURRENT_TIMESTAMP;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_7795 ON t1(b) WHERE b IS NOT NULL;
ROLLBACK TO sp5399;
RELEASE sp5399;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
INSERT INTO T VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
UPDATE T SET b = json_object('k', b) WHERE b IS NOT NULL;
ALTER TABLE T DROP COLUMN b;
DROP VIEW IF EXISTS t1;
INSERT INTO t1 SELECT * FROM t1;
SELECT * FROM t1;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, 'x', 'x', 2);
ROLLBACK;
DROP TABLE IF EXISTS T;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_2045 AS SELECT c FROM t1;
REINDEX;
SELECT d FROM t1 WHERE d = (SELECT MAX(d) FROM t1);
DROP TRIGGER IF EXISTS T;
SELECT SUM(d) OVER (PARTITION BY d ORDER BY d) FROM t1;
PRAGMA synchronous = 'OFF';
PRAGMA vdbe_debug = NO;
BEGIN IMMEDIATE TRANSACTION;
PRAGMA legacy_alter_table = TRUE;
SAVEPOINT sp5399;
.once log.txt
CREATE TABLE T (
a TEXT,
b TEXT
);
-- instr('hello', 'lo')
INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01');
SELECT a,
CAST(
(julianday('now')-julianday(b))/concat('text', like('123%', power('(', time(123))), NULL)
AS INTEGER
) AS c
FROM T;
ALTER TABLE T DROP COLUMN b;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
INSERT /* .auth ON */ INTO T SELECT * FROM T;
ANALYZE T;
WITH a AS (SELECT * FROM T), RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE NOT NOT (x<67) SELECT * FROM a CROSS JOIN cnt) ;
SELECT c, (SELECT MIN(c) FROM t1) AS min_val FROM t1;
INSERT INTO t1 DEFAULT VALUES;
ALTER TABLE t1 ADD COLUMN extra_5654 INT DEFAULT CURRENT_TIMESTAMP;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_7795 ON t1(b) WHERE b IS NOT NULL;
ROLLBACK TO sp5399;
RELEASE sp5399;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
INSERT INTO T VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
UPDATE T SET b = json_object('k', b) WHERE b IS NOT NULL;
ALTER TABLE T DROP COLUMN b;
DROP VIEW IF EXISTS t1;
INSERT INTO t1 SELECT * FROM t1;
SELECT * FROM t1;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, 'x', 'x', 2);
ROLLBACK;
DROP TABLE IF EXISTS T;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_2045 AS SELECT c FROM t1;
REINDEX;
SELECT d FROM t1 WHERE d = (SELECT MAX(d) FROM t1);
DROP TRIGGER IF EXISTS T;
SELECT SUM(d) OVER (PARTITION BY d ORDER BY d) FROM t1;
PRAGMA synchronous = 'OFF';
PRAGMA vdbe_debug = NO;
BEGIN IMMEDIATE TRANSACTION;
PRAGMA legacy_alter_table = TRUE;
SAVEPOINT sp5399;
.once log.txt
CREATE TABLE T (
a TEXT,
b TEXT
);
-- instr('hello', 'lo')
INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01');
SELECT a,
CAST(
(julianday('now')-julianday(b))/concat('text', like('123%', power('(', time(123))), NULL)
AS INTEGER
) AS c
FROM T;
ALTER TABLE T DROP COLUMN b;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
INSERT /* .auth ON */ INTO T SELECT * FROM T;
ANALYZE T;
WITH a AS (SELECT * FROM T), RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE NOT NOT (x<67) SELECT * FROM a CROSS JOIN cnt) ;
SELECT c, (SELECT MIN(c) FROM t1) AS min_val FROM t1;
INSERT INTO t1 DEFAULT VALUES;
ALTER TABLE t1 ADD COLUMN extra_5654 INT DEFAULT CURRENT_TIMESTAMP;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_7795 ON t1(b) WHERE b IS NOT NULL;
ROLLBACK TO sp5399;
RELEASE sp5399;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
INSERT INTO T VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
UPDATE T SET b = json_object('k', b) WHERE b IS NOT NULL;
ALTER TABLE T DROP COLUMN b;
DROP VIEW IF EXISTS t1;
INSERT INTO t1 SELECT * FROM t1;
SELECT * FROM t1;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, 'x', 'x', 2);
ROLLBACK;
DROP TABLE IF EXISTS T;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_2045 AS SELECT c FROM t1;
REINDEX;
SELECT d FROM t1 WHERE d = (SELECT MAX(d) FROM t1);
DROP TRIGGER IF EXISTS T;
SELECT SUM(d) OVER (PARTITION BY d ORDER BY d) FROM t1;
PRAGMA synchronous = 'OFF';
PRAGMA vdbe_debug = NO;
BEGIN IMMEDIATE TRANSACTION;
PRAGMA legacy_alter_table = TRUE;
SAVEPOINT sp5399;
.once log.txt
CREATE TABLE T (
a TEXT,
b TEXT
);
-- instr('hello', 'lo')
INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01');
SELECT a,
CAST(
(julianday('now')-julianday(b))/concat('text', like('123%', power('(', time(123))), NULL)
AS INTEGER
) AS c
FROM T;
ALTER TABLE T DROP COLUMN b;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
INSERT /* .auth ON */ INTO T SELECT * FROM T;
ANALYZE T;
WITH a AS (SELECT * FROM T), RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE NOT NOT (x<67) SELECT * FROM a CROSS JOIN cnt) ;
SELECT c, (SELECT MIN(c) FROM t1) AS min_val FROM t1;
INSERT INTO t1 DEFAULT VALUES;
ALTER TABLE t1 ADD COLUMN extra_5654 INT DEFAULT CURRENT_TIMESTAMP;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_7795 ON t1(b) WHERE b IS NOT NULL;
ROLLBACK TO sp5399;
RELEASE sp5399;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
INSERT INTO T VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
UPDATE T SET b = json_object('k', b) WHERE b IS NOT NULL;
ALTER TABLE T DROP COLUMN b;
DROP VIEW IF EXISTS t1;
INSERT INTO t1 SELECT * FROM t1;
SELECT * FROM t1;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, 'x', 'x', 2);
ROLLBACK;
DROP TABLE IF EXISTS T;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_2045 AS SELECT c FROM t1;
REINDEX;
SELECT d FROM t1 WHERE d = (SELECT MAX(d) FROM t1);
DROP TRIGGER IF EXISTS T;
SELECT SUM(d) OVER (PARTITION BY d ORDER BY d) FROM t1;
PRAGMA synchronous = 'OFF';
PRAGMA vdbe_debug = NO;
BEGIN IMMEDIATE TRANSACTION;
PRAGMA legacy_alter_table = TRUE;
SAVEPOINT sp5399;
.once log.txt
CREATE TABLE T (
a TEXT,
b TEXT
);
-- instr('hello', 'lo')
INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01');
SELECT a,
CAST(
(julianday('now')-julianday(b))/concat('text', like('123%', power('(', time(123))), NULL)
AS INTEGER
) AS c
FROM T;
ALTER TABLE T DROP COLUMN b;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
INSERT /* .auth ON */ INTO T SELECT * FROM T;
ANALYZE T;
WITH a AS (SELECT * FROM T), RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE NOT NOT (x<67) SELECT * FROM a CROSS JOIN cnt) ;
SELECT c, (SELECT MIN(c) FROM t1) AS min_val FROM t1;
INSERT INTO t1 DEFAULT VALUES;
ALTER TABLE t1 ADD COLUMN extra_5654 INT DEFAULT CURRENT_TIMESTAMP;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_7795 ON t1(b) WHERE b IS NOT NULL;
ROLLBACK TO sp5399;
RELEASE sp5399;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
INSERT INTO T VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
UPDATE T SET b = json_object('k', b) WHERE b IS NOT NULL;
ALTER TABLE T DROP COLUMN b;
DROP VIEW IF EXISTS t1;
INSERT INTO t1 SELECT * FROM t1;
SELECT * FROM t1;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, 'x', 'x', 2);
ROLLBACK;
DROP TABLE IF EXISTS T;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_2045 AS SELECT c FROM t1;
REINDEX;
SELECT d FROM t1 WHERE d = (SELECT MAX(d) FROM t1);
DROP TRIGGER IF EXISTS T;
SELECT SUM(d) OVER (PARTITION BY d ORDER BY d) FROM t1;
INSERT INTO T VALUES (NULL, NULL);
SELECT * FROM T AS a INNER JOIN T AS b ON a.rowid = b.rowid;
INSERT INTO T DEFAULT VALUES;
```
## Actual output
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
b = Braun
c = 30
_ROWID_ = 3
b = Wernher
c = 10
_ROWID_ = 1
b = von
c = 20
_ROWID_ = 2
b = Braun
c = 30
b = Wernher
c = 10
b = von
c = 20
```
## Expectation
```sql
```
## Flag
```
-line
```
@@ -0,0 +1,46 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
ATTACH DATABASE ':memory:' AS aux37;
PRAGMA defer_foreign_keys = TRUE;
PRAGMA encoding = 'utf-16';
-- PRAGMA module_list;
CREATE TABLE t1(abcd, efgh);
INSERT INTO t1 VALUES (hex(NULL), timediff(CAST(0 AS NCHAR(55)), 0));
CREATE VIEW v1 AS SELECT * FROM t1 WHERE abcd>efgh;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_3742 ON t1(efgh COLLATE NOCASE);
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_511 AS SELECT efgh FROM t1;
REINDEX t1;
SELECT * FROM t1 WHERE efgh > (SELECT AVG(efgh) FROM t1);
SELECT AVG(efgh) FROM t1;
DELETE FROM t1 WHERE 0;
SELECT COUNT(*) FROM t1;
DETACH DATABASE aux37;
ALTER TABLE t1 RENAME COLUMN abcd TO abcd_r4633;
ANALYZE t1;
```
## Actual output
```sql
0
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,77 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
.timer sin(192319231923)
PRAGMA read_uncommitted = NO;
BEGIN DEFERRED TRANSACTION;
PRAGMA vdbe_trace = OFF;
.explain auto
CREATE TABLE T1 (
a VARCHAR(255),
b REAL
);
CREATE TABLE T2 (
a INTEGER,
b REAL
);
INSERT INTO T1 VALUES (1.7976931348623157e+308,1.0);
INSERT INTO T2 VALUES (1,-1.0),(2,9e999);
INSERT OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
PRAGMA quick_check;
PRAGMA vdbe_addoptrace = TRUE;
CREATE TABLE IF NOT EXISTS photo(pk integer primary key, x);
CREATE TABLE IF NOT EXISTS tag(pk integer primary key, fk int, name);
SELECT P.pk from PHOTO P WHERE NOT NOT (NOT NOT (NOT EXISTS ( SELECT T2.pk from TAG T2 WHERE T2.fk = P.pk EXCEPT SELECT T3.pk from TAG T3 WHERE T3.fk = P.pk AND T3.name LIKE ('%foo%' || '')))) ;
INSERT INTO photo VALUES(sign(-(-(1))),1);
INSERT INTO photo VALUES(2,2);
INSERT INTO photo VALUES(3,3);
INSERT INTO /**/ tag VALUES(11,1,'one');
INSERT INTO tag VALUES(12,1,'two');
INSERT INTO tag VALUES(21,1,'one-b');
SELECT P.pk from PHOTO P WHERE NOT EXISTS (SELECT T2.pk from TAG T2 WHERE T2.fk = P.pk EXCEPT SELECT T3.pk from TAG T3 WHERE T3.fk = P.pk AND T3.name LIKE '%foo%');
DELETE FROM photo WHERE +rowid = 41;
ALTER TABLE photo RENAME TO photo_r2124;
PRAGMA defer_foreign_keys = YES;
ALTER TABLE tag RENAME COLUMN pk TO pk_r9440;
INSERT INTO T2 DEFAULT VALUES;
CREATE TRIGGER IF NOT EXISTS trg_T1_8903 AFTER UPDATE OF b ON T1 BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT STRING_AGG(b, '|') FROM T1;
SELECT FIRST_VALUE(b) OVER (ORDER BY b RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T1;
INSERT INTO T1 VALUES (NULL, NULL);
SELECT LEAD(a, 1, NULL) OVER (PARTITION BY a ORDER BY a) FROM T2;
END;
INSERT INTO T2 VALUES (NULL, NULL);
```
## Actual output
```sql
1.79769313486232e+308|1.0
1|-1.0
2|Inf
ok
2
3
-1.0
1.0
Inf
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,119 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (jsonb_insert(NULL, '$.key', 1), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
SAVEPOINT sp1995;
SAVEPOINT sp2279;
PRAGMA synchronous = ('1' || '');
PRAGMA reverse_unordered_selects = OFF;
.fullschema
PRAGMA busy_timeout;
ATTACH DATABASE ':memory:' AS aux51;
SAVEPOINT sp2704;
PRAGMA secure_delete = YES;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
PRAGMA cell_size_check;
PRAGMA secure_delete = YES;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
PRAGMA cell_size_check;
PRAGMA secure_delete = YES;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
PRAGMA cell_size_check;
PRAGMA secure_delete = YES;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
PRAGMA cell_size_check;
PRAGMA secure_delete = YES;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
PRAGMA cell_size_check;
PRAGMA secure_delete = YES;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
PRAGMA cell_size_check;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", /* PRAGMA encoding = 'UTF-16be'; */ "z");
DROP TABLE t0;
PRAGMA secure_delete = YES;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
PRAGMA cell_size_check;
PRAGMA secure_delete = YES;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
PRAGMA cell_size_check;
PRAGMA secure_delete = YES;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
PRAGMA cell_size_check;
ROLLBACK TO sp2704;
RELEASE sp2704;
DETACH DATABASE aux51;
VACUUM;
CREATE TABLE T (
a TEXT,
b TEXT,
c REAL
);
INSERT INTO T VALUES ('a','b',quote('simple')), ('a','c',x'e9a74ed9027391f151975ab0d3bc'), ('b','d',-x'e759dba5ae');
SELECT a,b,c,
RANK() OVER (PARTITION BY a ORDER BY c DESC) AS d FROM T;
SELECT GROUP_CONCAT(a, '.') OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
WITH cte AS (SELECT b, LEAD(b) OVER (ORDER BY b) AS nxt FROM T) SELECT * FROM cte;
SELECT c, (SELECT SUM(c) FROM T) AS sum_val FROM T;
PRAGMA checkpoint_fullsync = OFF;
RELEASE sp2279;
WITH RECURSIVE r AS (SELECT * FROM T LIMIT 1 UNION ALL SELECT t.* FROM T t FULL JOIN r ON t.c = r.c LIMIT 10) SELECT * FROM r;
INSERT INTO T VALUES (NULL, NULL, NULL);
INSERT OR IGNORE INTO T VALUES (0, 9, 0);
ROLLBACK TRANSACTION TO SAVEPOINT sp1995;
RELEASE SAVEPOINT sp1995;
SELECT LEAD(a) OVER (PARTITION BY a ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t1;
INSERT INTO T VALUES (NULL, 1, NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
ALTER TABLE T RENAME COLUMN b TO b_r5609;
WITH cte AS (SELECT * FROM t1 WHERE c IN (SELECT c FROM t1 LIMIT 5)) SELECT * FROM cte;
```
## Actual output
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
Braun 30 3
von 20 2
Braun 30
von 20
```
## Expectation
```sql
```
## Flag
```
-tabs
```
@@ -0,0 +1,89 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
PRAGMA checkpoint_fullsync;
PRAGMA case_sensitive_like = 9223372036854775808;
PRAGMA collation_list;
.scanstats est
CREATE TABLE t51(x, y);
CREATE TABLE t52(x, y);
CREATE VIEW v5 as SELECT x, y FROM t51 UNION ALL SELECT x, y FROM t52;
CREATE INDEX t51x ON t51(x);
CREATE INDEX t52x ON t52(x);
SELECT * FROM v5 WHERE x='12345' ORDER BY y;
SELECT x, y FROM v5 WHERE x='12345' ORDER BY y;
SELECT x, y FROM v5 WHERE +x='12345' ORDER BY y;
CREATE VIEW IF NOT EXISTS v_t51_8940 AS SELECT x FROM t51;
SELECT FIRST_VALUE(y) OVER (PARTITION BY y ORDER BY y GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t51;
WITH RECURSIVE fib(a,b) AS (VALUES(1,1) UNION ALL SELECT b, a+b FROM fib WHERE b<1000) SELECT a FROM fib;
DELETE FROM t51 WHERE 0;
INSERT INTO t51 DEFAULT VALUES;
UPDATE t52 SET y = 'x' WHERE y IS NOT NULL;
SELECT * FROM t52 AS a RIGHT JOIN t52 AS b ON a.rowid = b.rowid;
PRAGMA table_list("users");
PRAGMA count_changes = NO;
INSERT INTO t52 DEFAULT VALUES;
```
## Actual output
```sql
0|decimal
1|uint
2|RTRIM
3|NOCASE
4|BINARY
1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
```
## Expectation
```sql
0|decimal
1|BINARY
2|NOCASE
3|RTRIM
4|uint
1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
```
## Flag
```
```

Some files were not shown because too many files have changed in this diff Show More