This commit is contained in:
2026-06-24 13:47:14 +02:00
commit fd930e15cb
2377 changed files with 1213931 additions and 0 deletions
@@ -0,0 +1,417 @@
## 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;
ATTACH DATABASE ':memory:' AS aux69;
PRAGMA foreign_key_check;
CREATE TABLE t1(a CHARINT PRIMARY KEY, b TEXT, c INT, d INT);
-- PRAGMA legacy_alter_table = OFF;
INSERT INTO t1 VALUES (CAST(CAST((sinh(-concat_ws(NULL, 'a', 'b')) - 0) AS CHARINT) AS ANY), '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 sp9856;
SAVEPOINT sp8755;
ATTACH DATABASE ':memory:' AS aux98;
ATTACH DATABASE ':memory:' AS aux57;
.import corrupt001.db main
BEGIN DEFERRED TRANSACTION;
CREATE TABLE t0(c0);
INSERT INTO t0(c0) VALUES (NULL);
CREATE INDEX i0 ON t0(-(-(json_extract((like('1%', 1, '\\') + 0), '$.key')))) WHERE c0 NOT NULL;
SELECT 1 FROM t0 WHERE (t0.c0 IS FALSE) IS FALSE;
SELECT 1 FROM t0 WHERE (t0.c0 IS FALSE) BETWEEN FALSE OR TRUE;
UPDATE t0 SET c0 = 'x' WHERE c0 BETWEEN 0 AND 100 RETURNING *;
ANALYZE t0;
SELECT * FROM t0 WHERE c0 IN (SELECT c0 FROM t0 ORDER BY c0 LIMIT 1 OFFSET 1000);
END;
ANALYZE;
SELECT * FROM t0 AS a INNER JOIN t0 AS b ON a.rowid = b.rowid;
SELECT * FROM t0;
CREATE TEMP VIEW IF NOT EXISTS v_t0_2416 AS SELECT c0 FROM t0;
SELECT COUNT(*) FROM t0;
DETACH DATABASE aux57;
VACUUM main;
WITH cte AS (SELECT c0, SUM(c0) OVER (ORDER BY c0) AS running FROM t0) SELECT * FROM cte;
PRAGMA trusted_schema;
CREATE TEMP VIEW IF NOT EXISTS v_t0_3032 AS SELECT c0 FROM t0;
SELECT LEAD(c0, 2) OVER (ORDER BY c0) FROM t0;
DROP TABLE IF EXISTS t0;
WITH a AS (SELECT * FROM t0), b AS (SELECT * FROM t0) SELECT * FROM a UNION ALL SELECT * FROM b;
SELECT COUNT(*) FROM t0;
SELECT * FROM t0 AS a JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r7864;
DETACH DATABASE aux98;
ROLLBACK TRANSACTION TO SAVEPOINT sp8755;
RELEASE SAVEPOINT sp8755;
ALTER TABLE t0 ADD COLUMN extra_4590 CHARACTER(20) COLLATE RTRIM;
SAVEPOINT sp8755;
ATTACH DATABASE ':memory:' AS aux98;
ATTACH DATABASE ':memory:' AS aux57;
.import corrupt001.db main
BEGIN DEFERRED TRANSACTION;
CREATE TABLE t0(c0);
INSERT INTO t0(c0) VALUES (NULL);
CREATE INDEX i0 ON t0(-(-(json_extract((like('1%', 1, '\\') + 0), '$.key')))) WHERE c0 NOT NULL;
SELECT 1 FROM t0 WHERE (t0.c0 IS FALSE) IS FALSE;
SELECT 1 FROM t0 WHERE (t0.c0 IS FALSE) BETWEEN FALSE OR TRUE;
UPDATE t0 SET c0 = 'x' WHERE c0 BETWEEN 0 AND 100 RETURNING *;
ANALYZE t0;
SELECT * FROM t0 WHERE c0 IN (SELECT c0 FROM t0 ORDER BY c0 LIMIT 1 OFFSET 1000);
END;
ANALYZE;
SELECT * FROM t0 AS a INNER JOIN t0 AS b ON a.rowid = b.rowid;
SELECT * FROM t0;
CREATE TEMP VIEW IF NOT EXISTS v_t0_2416 AS SELECT c0 FROM t0;
SELECT COUNT(*) FROM t0;
DETACH DATABASE aux57;
VACUUM main;
WITH cte AS (SELECT c0, SUM(c0) OVER (ORDER BY c0) AS running FROM t0) SELECT * FROM cte;
PRAGMA trusted_schema;
CREATE TEMP VIEW IF NOT EXISTS v_t0_3032 AS SELECT c0 FROM t0;
SELECT LEAD(c0, 2) OVER (ORDER BY c0) FROM t0;
DROP TABLE IF EXISTS t0;
WITH a AS (SELECT * FROM t0), b AS (SELECT * FROM t0) SELECT * FROM a UNION ALL SELECT * FROM b;
SELECT COUNT(*) FROM t0;
SELECT * FROM t0 AS a JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r7864;
DETACH DATABASE aux98;
ROLLBACK TRANSACTION TO SAVEPOINT sp8755;
RELEASE SAVEPOINT sp8755;
ALTER TABLE t0 ADD COLUMN extra_4590 CHARACTER(20) COLLATE RTRIM;
SAVEPOINT sp8755;
ATTACH DATABASE ':memory:' AS aux98;
ATTACH DATABASE ':memory:' AS aux57;
.import corrupt001.db main
BEGIN DEFERRED TRANSACTION;
CREATE TABLE t0(c0);
INSERT INTO t0(c0) VALUES (NULL);
CREATE INDEX i0 ON t0(-(-(json_extract((like('1%', 1, '\\') + 0), '$.key')))) WHERE c0 NOT NULL;
SELECT 1 FROM t0 WHERE (t0.c0 IS FALSE) IS FALSE;
SELECT 1 FROM t0 WHERE (t0.c0 IS FALSE) BETWEEN FALSE OR TRUE;
UPDATE t0 SET c0 = 'x' WHERE c0 BETWEEN 0 AND 100 RETURNING *;
ANALYZE t0;
SELECT * FROM t0 WHERE c0 IN (SELECT c0 FROM t0 ORDER BY c0 LIMIT 1 OFFSET 1000);
END;
ANALYZE;
SELECT * FROM t0 AS a INNER JOIN t0 AS b ON a.rowid = b.rowid;
SELECT * FROM t0;
CREATE TEMP VIEW IF NOT EXISTS v_t0_2416 AS SELECT c0 FROM t0;
SELECT COUNT(*) FROM t0;
DETACH DATABASE aux57;
VACUUM main;
WITH cte AS (SELECT c0, SUM(c0) OVER (ORDER BY c0) AS running FROM t0) SELECT * FROM cte;
PRAGMA trusted_schema;
CREATE TEMP VIEW IF NOT EXISTS v_t0_3032 AS SELECT c0 FROM t0;
SELECT LEAD(c0, 2) OVER (ORDER BY c0) FROM t0;
DROP TABLE IF EXISTS t0;
WITH a AS (SELECT * FROM t0), b AS (SELECT * FROM t0) SELECT * FROM a UNION ALL SELECT * FROM b;
SELECT COUNT(*) FROM t0;
SELECT * FROM t0 AS a JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r7864;
DETACH DATABASE aux98;
ROLLBACK TRANSACTION TO SAVEPOINT sp8755;
RELEASE SAVEPOINT sp8755;
ALTER TABLE t0 ADD COLUMN extra_4590 CHARACTER(20) COLLATE RTRIM;
SAVEPOINT sp8755;
ATTACH DATABASE ':memory:' AS aux98;
ATTACH DATABASE ':memory:' AS aux57;
.import corrupt001.db main
BEGIN DEFERRED TRANSACTION;
CREATE TABLE t0(c0);
INSERT INTO t0(c0) VALUES (NULL);
CREATE INDEX i0 ON t0(-(-(json_extract((like('1%', 1, '\\') + 0), '$.key')))) WHERE c0 NOT NULL;
SELECT 1 FROM t0 WHERE (t0.c0 IS FALSE) IS FALSE;
SELECT 1 FROM t0 WHERE (t0.c0 IS FALSE) BETWEEN FALSE OR TRUE;
UPDATE t0 SET c0 = 'x' WHERE c0 BETWEEN 0 AND 100 RETURNING *;
ANALYZE t0;
SELECT * FROM t0 WHERE c0 IN (SELECT c0 FROM t0 ORDER BY c0 LIMIT 1 OFFSET 1000);
END;
ANALYZE;
SELECT * FROM t0 AS a INNER JOIN t0 AS b ON a.rowid = b.rowid;
SELECT * FROM t0;
CREATE TEMP VIEW IF NOT EXISTS v_t0_2416 AS SELECT c0 FROM t0;
SELECT COUNT(*) FROM t0;
DETACH DATABASE aux57;
VACUUM main;
WITH cte AS (SELECT c0, SUM(c0) OVER (ORDER BY c0) AS running FROM t0) SELECT * FROM cte;
PRAGMA trusted_schema;
CREATE TEMP VIEW IF NOT EXISTS v_t0_3032 AS SELECT c0 FROM t0;
SELECT LEAD(c0, 2) OVER (ORDER BY c0) FROM t0;
DROP TABLE IF EXISTS t0;
WITH a AS (SELECT * FROM t0), b AS (SELECT * FROM t0) SELECT * FROM a UNION ALL SELECT * FROM b;
SELECT COUNT(*) FROM t0;
SELECT * FROM t0 AS a JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r7864;
DETACH DATABASE aux98;
ROLLBACK TRANSACTION TO SAVEPOINT sp8755;
RELEASE SAVEPOINT sp8755;
ALTER TABLE t0 ADD COLUMN extra_4590 CHARACTER(20) COLLATE RTRIM;
SAVEPOINT sp8755;
ATTACH DATABASE ':memory:' AS aux98;
ATTACH DATABASE ':memory:' AS aux57;
.import corrupt001.db main
BEGIN DEFERRED TRANSACTION;
CREATE TABLE t0(c0);
INSERT INTO t0(c0) VALUES (NULL);
CREATE INDEX i0 ON t0(-(-(json_extract((like('1%', 1, '\\') + 0), '$.key')))) WHERE c0 NOT NULL;
SELECT 1 FROM t0 WHERE (t0.c0 IS FALSE) IS FALSE;
SELECT 1 FROM t0 WHERE (t0.c0 IS FALSE) BETWEEN FALSE OR TRUE;
UPDATE t0 SET c0 = 'x' WHERE c0 BETWEEN 0 AND 100 RETURNING *;
ANALYZE t0;
SELECT * FROM t0 WHERE c0 IN (SELECT c0 FROM t0 ORDER BY c0 LIMIT 1 OFFSET 1000);
END;
ANALYZE;
SELECT * FROM t0 AS a INNER JOIN t0 AS b ON a.rowid = b.rowid;
SELECT * FROM t0;
CREATE TEMP VIEW IF NOT EXISTS v_t0_2416 AS SELECT c0 FROM t0;
SELECT COUNT(*) FROM t0;
DETACH DATABASE aux57;
VACUUM main;
WITH cte AS (SELECT c0, SUM(c0) OVER (ORDER BY c0) AS running FROM t0) SELECT * FROM cte;
PRAGMA trusted_schema;
CREATE TEMP VIEW IF NOT EXISTS v_t0_3032 AS SELECT c0 FROM t0;
SELECT LEAD(c0, 2) OVER (ORDER BY c0) FROM t0;
DROP TABLE IF EXISTS t0;
WITH a AS (SELECT * FROM t0), b AS (SELECT * FROM t0) SELECT * FROM a UNION ALL SELECT * FROM b;
SELECT COUNT(*) FROM t0;
SELECT * FROM t0 AS a JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r7864;
DETACH DATABASE aux98;
ROLLBACK TRANSACTION TO SAVEPOINT sp8755;
RELEASE SAVEPOINT sp8755;
ALTER TABLE t0 ADD COLUMN extra_4590 CHARACTER(20) COLLATE RTRIM;
SAVEPOINT sp8755;
ATTACH DATABASE ':memory:' AS aux98;
ATTACH DATABASE ':memory:' AS aux57;
.import corrupt001.db main
BEGIN DEFERRED TRANSACTION;
CREATE TABLE t0(c0);
INSERT INTO t0(c0) VALUES (NULL);
CREATE INDEX i0 ON t0(-(-(json_extract((like('1%', 1, '\\') + 0), '$.key')))) WHERE c0 NOT NULL;
SELECT 1 FROM t0 WHERE (t0.c0 IS FALSE) IS FALSE;
SELECT 1 FROM t0 WHERE (t0.c0 IS FALSE) BETWEEN FALSE OR TRUE;
UPDATE t0 SET c0 = 'x' WHERE c0 /* hex(NULL) */ BETWEEN 0 AND 100 RETURNING *;
ANALYZE t0;
SELECT * FROM t0 WHERE c0 IN (SELECT c0 FROM t0 ORDER BY c0 LIMIT 1 OFFSET 1000);
END;
ANALYZE;
SELECT * FROM t0 AS a INNER JOIN t0 AS b ON a.rowid = b.rowid;
SELECT * FROM t0;
CREATE TEMP VIEW IF NOT EXISTS v_t0_2416 AS SELECT c0 FROM t0;
SELECT COUNT(*) FROM t0;
DETACH DATABASE aux57;
VACUUM main;
WITH cte AS (SELECT c0, SUM(c0) OVER (ORDER BY c0) AS running FROM t0) SELECT * FROM cte;
PRAGMA trusted_schema;
CREATE TEMP VIEW IF NOT EXISTS v_t0_3032 AS SELECT c0 FROM t0;
SELECT LEAD(c0, 2) OVER (ORDER BY c0) FROM t0;
DROP TABLE IF EXISTS t0;
WITH a AS (SELECT * FROM t0), b AS (SELECT * FROM t0) SELECT * FROM a UNION ALL SELECT * FROM b;
SELECT COUNT(*) FROM t0;
SELECT * FROM t0 AS a JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r7864;
DETACH DATABASE aux98;
ROLLBACK TRANSACTION TO SAVEPOINT sp8755;
RELEASE SAVEPOINT sp8755;
ALTER TABLE t0 ADD COLUMN extra_4590 CHARACTER(20) COLLATE RTRIM;
SAVEPOINT sp8755;
ATTACH DATABASE ':memory:' AS aux98;
ATTACH DATABASE ':memory:' AS aux57;
.import corrupt001.db main
BEGIN DEFERRED TRANSACTION;
CREATE TABLE t0(c0);
INSERT INTO t0(c0) VALUES (NULL);
CREATE INDEX i0 ON t0(-(-(json_extract((like('1%', 1, '\\') + 0), '$.key')))) WHERE c0 NOT NULL;
SELECT 1 FROM t0 WHERE (t0.c0 IS FALSE) IS FALSE;
SELECT 1 FROM t0 WHERE (t0.c0 IS FALSE) BETWEEN FALSE OR TRUE;
UPDATE t0 SET c0 = 'x' WHERE c0 BETWEEN 0 AND 100 RETURNING *;
ANALYZE t0;
SELECT * FROM t0 WHERE c0 IN (SELECT c0 FROM t0 ORDER BY c0 LIMIT 1 OFFSET 1000);
END;
ANALYZE;
SELECT * FROM t0 AS a INNER JOIN t0 AS b ON a.rowid = b.rowid;
SELECT * FROM t0;
CREATE TEMP VIEW IF NOT EXISTS v_t0_2416 AS SELECT c0 FROM t0;
SELECT COUNT(*) FROM t0;
DETACH DATABASE aux57;
VACUUM main;
WITH cte AS (SELECT c0, SUM(c0) OVER (ORDER BY c0) AS running FROM t0) SELECT * FROM cte;
PRAGMA trusted_schema;
CREATE TEMP VIEW IF NOT EXISTS v_t0_3032 AS SELECT c0 FROM t0;
SELECT LEAD(c0, 2) OVER (ORDER BY c0) FROM t0;
DROP TABLE IF EXISTS t0;
WITH a AS (SELECT * FROM t0), b AS (SELECT * FROM t0) SELECT * FROM a UNION ALL SELECT * FROM b;
SELECT COUNT(*) FROM t0;
SELECT * FROM t0 AS a JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r7864;
DETACH DATABASE aux98;
ROLLBACK TRANSACTION TO SAVEPOINT sp8755;
RELEASE SAVEPOINT sp8755;
ALTER TABLE t0 ADD COLUMN extra_4590 CHARACTER(20) COLLATE RTRIM;
SAVEPOINT sp8755;
ATTACH DATABASE ':memory:' AS aux98;
ATTACH DATABASE ':memory:' AS aux57;
.import corrupt001.db main
BEGIN DEFERRED TRANSACTION;
CREATE TABLE t0(c0);
INSERT INTO t0(c0) VALUES (NULL);
CREATE INDEX i0 ON t0(-(-(json_extract((like('1%', 1, '\\') + 0), '$.key')))) WHERE c0 NOT NULL;
SELECT 1 FROM t0 WHERE (t0.c0 IS FALSE) IS FALSE;
SELECT 1 FROM t0 WHERE (t0.c0 IS FALSE) BETWEEN FALSE OR TRUE;
UPDATE t0 SET c0 = 'x' WHERE c0 BETWEEN 0 AND 100 RETURNING *;
ANALYZE t0;
SELECT * FROM t0 WHERE c0 IN (SELECT c0 FROM t0 ORDER BY c0 LIMIT 1 OFFSET 1000);
END;
ANALYZE;
SELECT * FROM t0 AS a INNER JOIN t0 AS b ON a.rowid = b.rowid;
SELECT * FROM t0;
CREATE TEMP VIEW IF NOT EXISTS v_t0_2416 AS SELECT c0 FROM t0;
SELECT COUNT(*) FROM t0;
DETACH DATABASE aux57;
VACUUM main;
WITH cte AS (SELECT c0, SUM(c0) OVER (ORDER BY c0) AS running FROM t0) SELECT * FROM cte;
PRAGMA trusted_schema;
CREATE TEMP VIEW IF NOT EXISTS v_t0_3032 AS SELECT c0 FROM t0;
SELECT LEAD(c0, 2) OVER (ORDER BY c0) FROM t0;
DROP TABLE IF EXISTS t0;
WITH a AS (SELECT * FROM t0), b AS (SELECT * FROM t0) SELECT * FROM a UNION ALL SELECT * FROM b;
SELECT COUNT(*) FROM t0;
SELECT * FROM t0 AS a JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r7864;
DETACH DATABASE aux98;
ROLLBACK TRANSACTION TO SAVEPOINT sp8755;
RELEASE SAVEPOINT sp8755;
ALTER TABLE t0 ADD COLUMN extra_4590 CHARACTER(20) COLLATE RTRIM;
SAVEPOINT sp8755;
ATTACH DATABASE ':memory:' AS aux98;
ATTACH DATABASE ':memory:' AS aux57;
.import corrupt001.db main
BEGIN DEFERRED TRANSACTION;
CREATE TABLE t0(c0);
INSERT INTO t0(c0) VALUES (NULL);
CREATE INDEX i0 ON t0(-(-(json_extract((like('1%', 1, '\\') + 0), '$.key')))) WHERE c0 NOT NULL;
SELECT 1 FROM t0 WHERE (t0.c0 IS FALSE) IS FALSE;
SELECT 1 FROM t0 WHERE (t0.c0 IS FALSE) BETWEEN FALSE OR TRUE;
UPDATE t0 SET c0 = 'x' WHERE c0 BETWEEN 0 AND 100 RETURNING *;
ANALYZE t0;
SELECT * FROM t0 WHERE c0 IN (SELECT c0 FROM t0 ORDER BY c0 LIMIT 1 OFFSET 1000);
END;
ANALYZE;
SELECT * FROM t0 AS a INNER JOIN t0 AS b ON a.rowid = b.rowid;
SELECT * FROM t0;
CREATE TEMP VIEW IF NOT EXISTS v_t0_2416 AS SELECT c0 FROM t0;
SELECT COUNT(*) FROM t0;
DETACH DATABASE aux57;
VACUUM main;
WITH cte AS (SELECT c0, SUM(c0) OVER (ORDER BY c0) AS running FROM t0) SELECT * FROM cte;
PRAGMA trusted_schema;
CREATE TEMP VIEW IF NOT EXISTS v_t0_3032 AS SELECT c0 FROM t0;
SELECT LEAD(c0, 2) OVER (ORDER BY c0) FROM t0;
DROP TABLE IF EXISTS t0;
WITH a AS (SELECT * FROM t0), b AS (SELECT * FROM t0) SELECT * FROM a UNION ALL SELECT * FROM b;
SELECT COUNT(*) FROM t0;
SELECT * FROM t0 AS a JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r7864;
DETACH DATABASE aux98;
ROLLBACK TRANSACTION TO SAVEPOINT sp8755;
RELEASE SAVEPOINT sp8755;
ALTER TABLE t0 ADD COLUMN extra_4590 CHARACTER(20) COLLATE RTRIM;
INSERT INTO t0 VALUES (NULL) ON CONFLICT(c0) DO UPDATE SET c0 = excluded.c0;
ALTER TABLE t0 RENAME COLUMN c0 TO c0_r3992;
RELEASE sp9856;
ALTER TABLE t0 ADD COLUMN extra_4953 ANY UNIQUE;
ALTER TABLE t0 DROP COLUMN c0;
DETACH DATABASE aux69;
WITH cte AS (SELECT NULL AS x) SELECT COALESCE(x, 0) FROM cte;
DELETE FROM t0 WHERE 0 RETURNING *;
SELECT * FROM t0 WHERE c0 IN (SELECT c0 FROM t0 WHERE ROW_NUMBER() OVER (ORDER BY c0) = 1);
INSERT OR FAIL INTO t0 VALUES (0);
INSERT INTO t0 DEFAULT VALUES;
DETACH DATABASE aux37;
ALTER TABLE t1 RENAME TO t1_r9055;
DELETE FROM t0 WHERE 1;
ALTER TABLE t1 RENAME COLUMN b TO b_r879;
VACUUM;
PRAGMA full_column_names = FALSE;
CREATE INDEX IF NOT EXISTS idx_t0_8212 ON t0(c0);
CREATE TEMPORARY VIEW IF NOT EXISTS v_t0_856 AS SELECT c0 FROM t0;
SELECT MAX(b) FROM t1;
ALTER TABLE t0 RENAME TO t0_r2529;
```
## 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,799 @@
## 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
CREATE TABLE T (
A VARCHAR(20),
B VARCHAR(30),
C VARCHAR(30),
PRIMARY KEY (A, B),
UNIQUE (A, C)
);
INSERT INTO T VALUES ('a', 'p', 'x');
INSERT INTO T VALUES ('a', 'q', 'y');
INSERT INTO T VALUES ('b', 'p', 'z');
INSERT INTO T VALUES ('c', 'r', 'w');
INSERT INTO T VALUES ('d', 's', 'v');
SELECT A, COUNT(DISTINCT B) AS D FROM T GROUP BY A HAVING COUNT(DISTINCT B) >= 1;
PRAGMA automatic_index = 0;
ATTACH DATABASE ':memory:' AS aux61;
.log OFF
ATTACH DATABASE ':memory:' AS aux10;
PRAGMA vdbe_addoptrace = TRUE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (unistr(NULL), 'Wernher', -atanh(1785583442693606558), 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 reverse_unordered_selects = YES;
CREATE TABLE t1(n int, log int);
BEGIN;
INSERT INTO /**/ t1 VALUES(like('%2%', 1.7976931348623157e+308, '%'), 1);
INSERT INTO t1 VALUES(3, 1);
INSERT INTO t1 VALUES(4, 1);
INSERT INTO t1 VALUES(4, 3);
SELECT min(n),min(log),max(n),max(log),sum(n),sum(log),avg(n),avg(log) FROM t1;
SELECT log, avg(n)+1 FROM t1 GROUP BY log ORDER BY log;
SELECT log*2+1 AS x, count(*) AS y FROM t1 GROUP BY x ORDER BY 10-(x+y);
SELECT log, count(*) FROM t1 GROUP BY log HAVING count(*)>=4 ORDER BY log;
SELECT log, count(*), avg(n), max(n+log*2) FROM t1 GROUP BY log ORDER BY max(n+log*2)+0, min(log,avg(n))+0;
DELETE FROM t1 WHERE NOT NOT (1) ;
ANALYZE;
VACUUM main;
WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte;
CREATE VIEW IF NOT EXISTS v_t1_1308 AS SELECT n FROM t1;
CREATE INDEX IF NOT EXISTS idx_t1_3077 ON t1(log);
PRAGMA vdbe_addoptrace = TRUE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (unistr(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
PRAGMA reverse_unordered_selects = YES;
CREATE TABLE t1(n int, log int);
BEGIN;
INSERT INTO /**/ t1 VALUES(like('%2%', 1.7976931348623157e+308, '%'), 1);
INSERT INTO t1 VALUES(3, 1);
INSERT INTO t1 VALUES(4, 1);
INSERT INTO t1 VALUES(4, 3);
SELECT min(n),min(log),max(n),max(log),sum(n),sum(log),avg(n),avg(log) FROM t1;
SELECT log, avg(n)+1 FROM t1 GROUP BY log ORDER BY log;
SELECT log*2+1 AS x, count(*) AS y FROM t1 GROUP BY x ORDER BY 10-(x+y);
SELECT log, count(*) FROM t1 GROUP BY log HAVING count(*)>=4 ORDER BY log;
SELECT log, count(*), avg(n), max(n+log*2) FROM t1 GROUP BY log ORDER BY max(n+log*2)+0, min(log,avg(n))+0;
DELETE FROM t1 WHERE NOT NOT (1) ;
ANALYZE;
VACUUM main;
WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte;
CREATE VIEW IF NOT EXISTS v_t1_1308 AS SELECT n FROM t1;
CREATE INDEX IF NOT EXISTS idx_t1_3077 ON t1(log);
CREATE INDEX IF NOT EXISTS idx_t1_5776 ON t1((log + 1)) WHERE log IS NOT NULL;
SELECT COUNT(*) FILTER (WHERE log IS NOT NULL), SUM(rowid) FILTER (WHERE log > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(log) FILTER (WHERE log > 0 AND log < 100), COUNT(*) FILTER (WHERE typeof(log) = "text") FROM t1;
PRAGMA vdbe_addoptrace = TRUE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (unistr(NULL), 'Wernher', -9223372036854775808, 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 reverse_unordered_selects = YES;
CREATE TABLE t1(n int, log int);
BEGIN;
INSERT INTO /**/ t1 VALUES(like('%2%', 1.7976931348623157e+308, '%'), 1);
INSERT INTO t1 VALUES(3, 1);
INSERT INTO t1 VALUES(4, 1);
INSERT INTO t1 VALUES(4, 3);
SELECT min(n),min(log),max(n),max(log),sum(n),sum(log),avg(n),avg(log) FROM t1;
SELECT log, avg(n)+1 FROM t1 GROUP BY log ORDER BY log;
SELECT log*2+1 AS x, count(*) AS y FROM t1 GROUP BY x ORDER BY 10-(x+y);
SELECT log, count(*) FROM t1 GROUP BY log HAVING count(*)>=4 ORDER BY log;
SELECT log, count(*), avg(n), max(n+log*2) FROM t1 GROUP BY log ORDER BY max(n+log*2)+0, min(log,avg(n))+0;
DELETE FROM t1 WHERE NOT NOT (1) ;
ANALYZE;
VACUUM main;
WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte;
CREATE VIEW IF NOT EXISTS v_t1_1308 AS SELECT n FROM t1;
CREATE INDEX IF NOT EXISTS idx_t1_3077 ON t1(log);
PRAGMA vdbe_addoptrace = TRUE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (unistr(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
PRAGMA reverse_unordered_selects = YES;
CREATE TABLE t1(n int, log int);
BEGIN;
INSERT INTO /**/ t1 VALUES(like('%2%', 1.7976931348623157e+308, '%'), 1);
INSERT INTO t1 VALUES(3, 1);
INSERT INTO t1 VALUES(4, 1);
INSERT INTO t1 VALUES(4, 3);
SELECT min(n),min(log),max(n),max(log),sum(n),sum(log),avg(n),avg(log) FROM t1;
SELECT log, avg(n)+1 FROM t1 GROUP BY log ORDER BY log;
SELECT log*2+1 AS x, count(*) AS y FROM t1 GROUP BY x ORDER BY 10-(x+y);
SELECT log, count(*) FROM t1 GROUP BY log HAVING count(*)>=4 ORDER BY log;
SELECT log, count(*), avg(n), max(n+log*2) FROM t1 GROUP BY log ORDER BY max(n+log*2)+0, min(log,avg(n))+0;
DELETE FROM t1 WHERE NOT NOT (1) ;
ANALYZE;
VACUUM main;
WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte;
CREATE VIEW IF NOT EXISTS v_t1_1308 AS SELECT n FROM t1;
CREATE INDEX IF NOT EXISTS idx_t1_3077 ON t1(log);
CREATE INDEX IF NOT EXISTS idx_t1_5776 ON t1((log + 1)) WHERE log IS NOT NULL;
SELECT COUNT(*) FILTER (WHERE log IS NOT NULL), SUM(rowid) FILTER (WHERE log > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(log) FILTER (WHERE log > 0 AND log < 100), COUNT(*) FILTER (WHERE typeof(log) = "text") FROM t1;
PRAGMA vdbe_addoptrace = TRUE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (unistr(NULL), 'Wernher', -9223372036854775808, 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 reverse_unordered_selects = YES;
CREATE TABLE t1(n int, log int);
BEGIN;
INSERT INTO /**/ t1 VALUES(like('%2%', 1.7976931348623157e+308, '%'), 1);
INSERT INTO t1 VALUES(3, 1);
INSERT INTO t1 VALUES(4, 1);
INSERT INTO t1 VALUES(4, 3);
SELECT min(n),min(log),max(n),max(log),sum(n),sum(log),avg(n),avg(log) FROM t1;
SELECT log, avg(n)+1 FROM t1 GROUP BY log ORDER BY log;
SELECT log*2+1 AS x, count(*) AS y FROM t1 GROUP BY x ORDER BY 10-(x+y);
SELECT log, count(*) FROM t1 GROUP BY log HAVING count(*)>=4 ORDER BY log;
SELECT log, count(*), avg(n), max(n+log*2) FROM t1 GROUP BY log ORDER BY max(n+log*2)+0, min(log,avg(n))+0;
DELETE FROM t1 WHERE NOT NOT (1) ;
ANALYZE;
VACUUM main;
WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte;
CREATE VIEW IF NOT EXISTS v_t1_1308 AS SELECT n FROM t1;
CREATE INDEX IF NOT EXISTS idx_t1_3077 ON t1(log);
PRAGMA vdbe_addoptrace = TRUE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (unistr(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
PRAGMA reverse_unordered_selects = YES;
CREATE TABLE t1(n int, log int);
BEGIN;
INSERT INTO /**/ t1 VALUES(like('%2%', 1.7976931348623157e+308, '%'), 1);
INSERT INTO t1 VALUES(3, 1);
INSERT INTO t1 VALUES(4, 1);
INSERT INTO t1 VALUES(4, 3);
SELECT min(n),min(log),max(n),max(log),sum(n),sum(log),avg(n),avg(log) FROM t1;
SELECT log, avg(n)+1 FROM t1 GROUP BY log ORDER BY log;
SELECT log*2+1 AS x, count(*) AS y FROM t1 GROUP BY x ORDER BY 10-(x+y);
SELECT log, count(*) FROM t1 GROUP BY log HAVING count(*)>=4 ORDER BY log;
SELECT log, count(*), avg(n), max(n+log*2) FROM t1 GROUP BY log ORDER BY max(n+log*2)+0, min(log,avg(n))+0;
DELETE FROM t1 WHERE NOT NOT (1) ;
ANALYZE;
VACUUM main;
WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte;
CREATE VIEW IF NOT EXISTS v_t1_1308 AS SELECT n FROM t1;
CREATE INDEX IF NOT EXISTS idx_t1_3077 ON t1(log);
CREATE INDEX IF NOT EXISTS idx_t1_5776 ON t1((log + 1)) WHERE log IS NOT NULL;
SELECT COUNT(*) FILTER (WHERE log IS NOT NULL), SUM(rowid) FILTER (WHERE log > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(log) FILTER (WHERE log > 0 AND log < 100), COUNT(*) FILTER (WHERE typeof(log) = "text") FROM t1;
PRAGMA vdbe_addoptrace = TRUE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (unistr(NULL), 'Wernher', -9223372036854775808, 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 reverse_unordered_selects = YES;
CREATE TABLE t1(n int, log int);
BEGIN;
INSERT INTO /**/ t1 VALUES(like('%2%', 1.7976931348623157e+308, '%'), 1);
INSERT INTO t1 VALUES(3, 1);
INSERT INTO t1 VALUES(4, 1);
INSERT INTO t1 VALUES(4, 3);
SELECT min(n),min(log),max(n),max(log),sum(n),sum(log),avg(n),avg(log) FROM t1;
SELECT log, avg(n)+1 FROM t1 GROUP BY log ORDER BY log;
SELECT log*2+1 AS x, count(*) AS y FROM t1 GROUP BY x ORDER BY 10-(x+y);
SELECT log, count(*) FROM t1 GROUP BY log HAVING count(*)>=4 ORDER BY log;
SELECT log, count(*), avg(n), max(n+log*2) FROM t1 GROUP BY log ORDER BY max(n+log*2)+0, min(log,avg(n))+0;
DELETE FROM t1 WHERE NOT NOT (1) ;
ANALYZE;
VACUUM main;
WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte;
CREATE VIEW IF NOT EXISTS v_t1_1308 AS SELECT n FROM t1;
CREATE INDEX IF NOT EXISTS idx_t1_3077 ON t1(log);
PRAGMA vdbe_addoptrace = TRUE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (unistr(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
PRAGMA reverse_unordered_selects = YES;
CREATE TABLE t1(n int, log int);
BEGIN;
INSERT INTO /**/ t1 VALUES(like('%2%', 1.7976931348623157e+308, '%'), 1);
INSERT INTO t1 VALUES(3, 1);
INSERT INTO t1 VALUES(4, 1);
INSERT INTO t1 VALUES(4, 3);
SELECT min(n),min(log),max(n),max(log),sum(n),sum(log),avg(n),avg(log) FROM t1;
SELECT log, avg(n)+1 FROM t1 GROUP BY log ORDER BY log;
SELECT log*2+1 AS x, count(*) AS y FROM t1 GROUP BY x ORDER BY 10-(x+y);
SELECT log, count(*) FROM t1 GROUP BY log HAVING count(*)>=4 ORDER BY log;
SELECT log, count(*), avg(n), max(n+log*2) FROM t1 GROUP BY log ORDER BY max(n+log*2)+0, min(log,avg(n))+0;
DELETE FROM t1 WHERE NOT NOT (1) ;
ANALYZE;
VACUUM main;
WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte;
CREATE VIEW IF NOT EXISTS v_t1_1308 AS SELECT n FROM t1;
CREATE INDEX IF NOT EXISTS idx_t1_3077 ON t1(log);
CREATE INDEX IF NOT EXISTS idx_t1_5776 ON t1((log + 1)) WHERE log IS NOT NULL;
SELECT COUNT(*) FILTER (WHERE log IS NOT NULL), SUM(rowid) FILTER (WHERE log > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(log) FILTER (WHERE log > 0 AND log < 100), COUNT(*) FILTER (WHERE typeof(log) = "text") FROM t1;
PRAGMA vdbe_addoptrace = TRUE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (unistr(NULL), 'Wernher', -9223372036854775808, 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 reverse_unordered_selects = YES;
CREATE TABLE t1(n int, log int);
BEGIN;
INSERT INTO /**/ t1 VALUES(like('%2%', 1.7976931348623157e+308, '%'), 1);
INSERT INTO t1 VALUES(3, 1);
INSERT INTO t1 VALUES(4, 1);
INSERT INTO t1 VALUES(4, 3);
SELECT min(n),min(log),max(n),max(log),sum(n),sum(log),avg(n),avg(log) FROM t1;
SELECT log, avg(n)+1 FROM t1 GROUP BY log ORDER BY log;
SELECT log*2+1 AS x, count(*) AS y FROM t1 GROUP BY x ORDER BY 10-(x+y);
SELECT log, count(*) FROM t1 GROUP BY log HAVING count(*)>=4 ORDER BY log;
SELECT log, count(*), avg(n), max(n+log*2) FROM t1 GROUP BY log ORDER BY max(n+log*2)+0, min(log,avg(n))+0;
DELETE FROM t1 WHERE NOT NOT (1) ;
ANALYZE;
VACUUM main;
WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte;
CREATE VIEW IF NOT EXISTS v_t1_1308 AS SELECT n FROM t1;
CREATE INDEX IF NOT EXISTS idx_t1_3077 ON t1(log);
PRAGMA vdbe_addoptrace = TRUE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (unistr(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
PRAGMA reverse_unordered_selects = YES;
CREATE TABLE t1(n int, log int);
BEGIN;
INSERT INTO /**/ t1 VALUES(like('%2%', 1.7976931348623157e+308, '%'), 1);
INSERT INTO t1 VALUES(3, 1);
INSERT INTO t1 VALUES(4, 1);
INSERT INTO t1 VALUES(4, 3);
SELECT min(n),min(log),max(n),max(log),sum(n),sum(log),avg(n),avg(log) FROM t1;
SELECT log, avg(n)+1 FROM t1 GROUP BY log ORDER BY log;
SELECT log*2+1 AS x, count(*) AS y FROM t1 GROUP BY x ORDER BY 10-(x+y);
SELECT log, count(*) FROM t1 GROUP BY log HAVING count(*)>=4 ORDER BY log;
SELECT log, count(*), avg(n), max(n+log*2) FROM t1 GROUP BY log ORDER BY max(n+log*2)+0, min(log,avg(n))+0;
DELETE FROM t1 WHERE NOT NOT (1) ;
ANALYZE;
VACUUM main;
WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte;
CREATE VIEW IF NOT EXISTS v_t1_1308 AS SELECT n FROM t1;
CREATE INDEX IF NOT EXISTS idx_t1_3077 ON t1(log);
CREATE INDEX IF NOT EXISTS idx_t1_5776 ON t1((log + 1)) WHERE log IS NOT NULL;
SELECT COUNT(*) FILTER (WHERE log IS NOT NULL), SUM(rowid) FILTER (WHERE log > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(log) FILTER (WHERE log > 0 AND log < 100), COUNT(*) FILTER (WHERE typeof(log) = "text") FROM t1;
PRAGMA vdbe_addoptrace = TRUE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (unistr(NULL), 'Wernher', -9223372036854775808, 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 reverse_unordered_selects = YES;
CREATE TABLE t1(n int, log int);
BEGIN;
INSERT INTO /**/ t1 VALUES(like('%2%', 1.7976931348623157e+308, '%'), 1);
INSERT INTO t1 VALUES(3, 1);
INSERT INTO t1 VALUES(4, 1);
INSERT INTO t1 VALUES(4, 3);
SELECT min(n),min(log),max(n),max(log),sum(n),sum(log),avg(n),avg(log) FROM t1;
SELECT log, avg(n)+1 FROM t1 GROUP BY log ORDER BY log;
SELECT log*2+1 AS x, count(*) AS y FROM t1 GROUP BY x ORDER BY 10-(x+y);
SELECT log, count(*) FROM t1 GROUP BY log HAVING count(*)>=4 ORDER BY log;
SELECT log, count(*), avg(n), max(n+log*2) FROM t1 GROUP BY log ORDER BY max(n+log*2)+0, min(log,avg(n))+0;
DELETE FROM t1 WHERE NOT NOT (1) ;
ANALYZE;
VACUUM main;
WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte;
CREATE VIEW IF NOT EXISTS v_t1_1308 AS SELECT n FROM t1;
CREATE INDEX IF NOT EXISTS idx_t1_3077 ON t1(log);
PRAGMA vdbe_addoptrace = TRUE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (unistr(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
PRAGMA reverse_unordered_selects = YES;
CREATE TABLE t1(n int, log int);
BEGIN;
INSERT INTO /**/ t1 VALUES(like('%2%', 1.7976931348623157e+308, '%'), 1);
INSERT INTO t1 VALUES(3, 1);
INSERT INTO t1 VALUES(4, 1);
INSERT INTO t1 VALUES(4, 3);
SELECT min(n),min(log),max(n),max(log),sum(n),sum(log),avg(n),avg(log) FROM t1;
SELECT log, avg(n)+1 FROM t1 GROUP BY log ORDER BY log;
SELECT log*2+1 AS x, count(*) AS y FROM t1 GROUP BY x ORDER BY 10-(x+y);
SELECT log, count(*) FROM t1 GROUP BY log HAVING count(*)>=4 ORDER BY log;
SELECT log, count(*), avg(n), max(n+log*2) FROM t1 GROUP BY log ORDER BY max(n+log*2)+0, min(log,avg(n))+0;
DELETE FROM t1 WHERE NOT NOT (1) ;
ANALYZE;
VACUUM main;
WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte;
CREATE VIEW IF NOT EXISTS v_t1_1308 AS SELECT n FROM t1;
CREATE INDEX IF NOT EXISTS idx_t1_3077 ON t1(log);
CREATE INDEX IF NOT EXISTS idx_t1_5776 ON t1((log + 1)) WHERE log IS NOT NULL;
SELECT COUNT(*) FILTER (WHERE log IS NOT NULL), SUM(rowid) FILTER (WHERE log > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(log) FILTER (WHERE log > 0 AND log < 100), COUNT(*) FILTER (WHERE typeof(log) = "text") FROM t1;
PRAGMA vdbe_addoptrace = TRUE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (unistr(NULL), 'Wernher', -9223372036854775808, 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 reverse_unordered_selects = YES;
CREATE TABLE t1(n int, log int);
BEGIN;
INSERT INTO /**/ t1 VALUES(like('%2%', 1.7976931348623157e+308, '%'), 1);
INSERT INTO t1 VALUES(3, 1);
INSERT INTO t1 VALUES(4, 1);
INSERT INTO t1 VALUES(4, 3);
SELECT min(n),min(log),max(n),max(log),sum(n),sum(log),avg(n),avg(log) FROM t1;
SELECT log, avg(n)+1 FROM t1 GROUP BY log ORDER BY log;
SELECT log*2+1 AS x, count(*) AS y FROM t1 GROUP BY x ORDER BY 10-(x+y);
SELECT log, count(*) FROM t1 GROUP BY log HAVING count(*)>=4 ORDER BY log;
SELECT log, count(*), avg(n), max(n+log*2) FROM t1 GROUP BY log ORDER BY max(n+log*2)+0, min(log,avg(n))+0;
DELETE FROM t1 WHERE NOT NOT (1) ;
ANALYZE;
VACUUM main;
WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte;
CREATE VIEW IF NOT EXISTS v_t1_1308 AS SELECT n FROM t1;
CREATE INDEX IF NOT EXISTS idx_t1_3077 ON t1(log);
PRAGMA vdbe_addoptrace = TRUE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (unistr(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
PRAGMA reverse_unordered_selects = YES;
CREATE TABLE t1(n int, log int);
BEGIN;
INSERT INTO /**/ t1 VALUES(like('%2%', 1.7976931348623157e+308, '%'), 1);
INSERT INTO t1 VALUES(3, 1);
INSERT INTO t1 VALUES(4, 1);
INSERT INTO t1 VALUES(4, 3);
SELECT min(n),min(log),max(n),max(log),sum(n),sum(log),avg(n),avg(log) FROM t1;
SELECT log, avg(n)+1 FROM t1 GROUP BY log ORDER BY log;
SELECT log*2+1 AS x, count(*) AS y FROM t1 GROUP BY x ORDER BY 10-(x+y);
SELECT log, count(*) FROM t1 GROUP BY log HAVING count(*)>=4 ORDER BY log;
SELECT log, count(*), avg(n), max(n+log*2) FROM t1 GROUP BY log ORDER BY max(n+log*2)+0, min(log,avg(n))+0;
DELETE FROM t1 WHERE NOT NOT (1) ;
ANALYZE;
VACUUM main;
WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte;
CREATE VIEW IF NOT EXISTS v_t1_1308 AS SELECT n FROM t1;
CREATE INDEX IF NOT EXISTS idx_t1_3077 ON t1(log);
CREATE INDEX IF NOT EXISTS idx_t1_5776 ON t1((log + 1)) WHERE log IS NOT NULL;
SELECT COUNT(*) FILTER (WHERE log IS NOT NULL), SUM(rowid) FILTER (WHERE log > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(log) FILTER (WHERE log > 0 AND log < 100), COUNT(*) FILTER (WHERE typeof(log) = "text") FROM t1;
PRAGMA vdbe_addoptrace = TRUE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (unistr(NULL), 'Wernher', -9223372036854775808, 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 reverse_unordered_selects = YES;
CREATE TABLE t1(n int, log int);
BEGIN;
INSERT INTO /**/ t1 VALUES(like('%2%', 1.7976931348623157e+308, '%'), 1);
INSERT INTO t1 VALUES(3, 1);
INSERT INTO t1 VALUES(4, 1);
INSERT INTO t1 VALUES(4, 3);
SELECT min(n),min(log),max(n),max(log),sum(n),sum(log),avg(n),avg(log) FROM t1;
SELECT log, avg(n)+1 FROM t1 GROUP BY log ORDER BY log;
SELECT log*2+1 AS x, count(*) AS y FROM t1 GROUP BY x ORDER BY 10-(x+y);
SELECT log, count(*) FROM t1 GROUP BY log HAVING count(*)>=4 ORDER BY log;
SELECT log, count(*), avg(n), max(n+log*2) FROM t1 GROUP BY log ORDER BY max(n+log*2)+0, min(log,avg(n))+0;
DELETE FROM t1 WHERE NOT NOT (1) ;
ANALYZE;
VACUUM main;
WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte;
CREATE VIEW IF NOT EXISTS v_t1_1308 AS SELECT n FROM t1;
CREATE INDEX IF NOT EXISTS idx_t1_3077 ON t1(log);
PRAGMA vdbe_addoptrace = TRUE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (unistr(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
PRAGMA reverse_unordered_selects = YES;
CREATE TABLE t1(n int, log int);
BEGIN;
INSERT INTO /**/ t1 VALUES(like('%2%', 1.7976931348623157e+308, '%'), 1);
INSERT INTO t1 VALUES(3, 1);
INSERT INTO t1 VALUES(4, 1);
INSERT INTO t1 VALUES(4, 3);
SELECT min(n),min(log),max(n),max(log),sum(n),sum(log),avg(n),avg(log) FROM t1;
SELECT log, avg(n)+1 FROM t1 GROUP BY log ORDER BY log;
SELECT log*2+1 AS x, count(*) AS y FROM t1 GROUP BY x ORDER BY 10-(x+y);
SELECT log, count(*) FROM t1 GROUP BY log HAVING count(*)>=4 ORDER BY log;
SELECT log, count(*), avg(n), max(n+log*2) FROM t1 GROUP BY log ORDER BY max(n+log*2)+0, min(log,avg(n))+0;
DELETE FROM t1 WHERE NOT NOT (1) ;
ANALYZE;
VACUUM main;
WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte;
CREATE VIEW IF NOT EXISTS v_t1_1308 AS SELECT n FROM t1;
CREATE INDEX IF NOT EXISTS idx_t1_3077 ON t1(log);
CREATE INDEX IF NOT EXISTS idx_t1_5776 ON t1((log + 1)) WHERE log IS NOT NULL;
SELECT COUNT(*) FILTER (WHERE log IS NOT NULL), SUM(rowid) FILTER (WHERE log > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(log) FILTER (WHERE log > 0 AND log < 100), COUNT(*) FILTER (WHERE typeof(log) = "text") FROM t1;
PRAGMA vdbe_addoptrace = TRUE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (unistr(NULL), 'Wernher', -9223372036854775808, 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 reverse_unordered_selects = YES;
CREATE TABLE t1(n int, log int);
BEGIN;
INSERT INTO /**/ t1 VALUES(like('%2%', 1.7976931348623157e+308, '%'), 1);
INSERT INTO t1 VALUES(3, 1);
INSERT INTO t1 VALUES(4, 1);
INSERT INTO t1 VALUES(4, 3);
SELECT min(n),min(log),max(n),max(log),sum(n),sum(log),avg(n),avg(log) FROM t1;
SELECT log, avg(n)+1 FROM t1 GROUP BY log ORDER BY log;
SELECT log*2+1 AS x, count(*) AS y FROM t1 GROUP BY x ORDER BY 10-(x+y);
SELECT log, count(*) FROM t1 GROUP BY log HAVING count(*)>=4 ORDER BY log;
SELECT log, count(*), avg(n), max(n+log*2) FROM t1 GROUP BY log ORDER BY max(n+log*2)+0, min(log,avg(n))+0;
DELETE FROM t1 WHERE NOT NOT (1) ;
ANALYZE;
VACUUM main;
WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte;
CREATE VIEW IF NOT EXISTS v_t1_1308 AS SELECT n FROM t1;
CREATE INDEX IF NOT EXISTS idx_t1_3077 ON t1(log);
PRAGMA vdbe_addoptrace = TRUE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (unistr(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
PRAGMA reverse_unordered_selects = YES;
CREATE TABLE t1(n int, log int);
BEGIN;
INSERT INTO /**/ t1 VALUES(like('%2%', 1.7976931348623157e+308, '%'), 1);
INSERT INTO t1 VALUES(3, 1);
INSERT INTO t1 VALUES(4, 1);
INSERT INTO t1 VALUES(4, 3);
SELECT min(n),min(log),max(n),max(log),sum(n),sum(log),avg(n),avg(log) FROM t1;
SELECT log, avg(n)+1 FROM t1 GROUP BY log ORDER BY log;
SELECT log*2+1 AS x, count(*) AS y FROM t1 GROUP BY x ORDER BY 10-(x+y);
SELECT log, count(*) FROM t1 GROUP BY log HAVING count(*)>=4 ORDER BY log;
SELECT log, count(*), avg(n), max(n+log*2) FROM t1 GROUP BY log ORDER BY max(n+log*2)+0, min(log,avg(n))+0;
DELETE FROM t1 WHERE NOT NOT (1) ;
ANALYZE;
VACUUM main;
WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte;
CREATE VIEW IF NOT EXISTS v_t1_1308 AS SELECT n FROM t1;
CREATE INDEX IF NOT EXISTS idx_t1_3077 ON t1(log);
CREATE INDEX IF NOT EXISTS idx_t1_5776 ON t1((log + 1)) WHERE log IS NOT NULL;
SELECT COUNT(*) FILTER (WHERE log IS NOT NULL), SUM(rowid) FILTER (WHERE log > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(log) FILTER (WHERE log > 0 AND log < 100), COUNT(*) FILTER (WHERE typeof(log) = "text") FROM t1;
ALTER TABLE t1 RENAME COLUMN log TO log_r7139;
CREATE TRIGGER IF NOT EXISTS trg_t1_3483 AFTER UPDATE OF n ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
CREATE TRIGGER IF NOT EXISTS trg_t1_7296 AFTER INSERT ON t1 BEGIN INSERT INTO t1(log) VALUES (NULL); END;
DETACH DATABASE aux10;
SELECT n, (SELECT SUM(n) FROM t1) AS sum_val FROM t1;
SELECT * FROM t1 AS a RIGHT JOIN t1 AS b ON a.rowid = b.rowid;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_4982 ON t1(log) WHERE log > 0;
SELECT log, (SELECT MAX(log) FROM t1) AS max_val FROM t1;
SELECT * FROM t1;
DETACH DATABASE aux61;
INSERT INTO t1 VALUES (NULL, NULL);
INSERT INTO t1 VALUES (NULL, NULL) ON CONFLICT(n) DO UPDATE SET n = excluded.n, log = excluded.log;
ALTER TABLE t1 ADD COLUMN extra_5625 BIGINT UNIQUE;
INSERT INTO t1 SELECT * FROM t1;
INSERT INTO t1 DEFAULT VALUES;
SELECT COUNT(*) FILTER (WHERE n IS NOT NULL), SUM(rowid) FILTER (WHERE n > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(n) FILTER (WHERE n > 0 AND n < 100), COUNT(*) FILTER (WHERE typeof(n) = "text") FROM t1;
ALTER TABLE t1 RENAME COLUMN n TO n_r3718;
SELECT * FROM t1 NATURAL JOIN t1;
VACUUM main;
```
## Actual output
```sql
CREATE TABLE T (
A VARCHAR(20),
B VARCHAR(30),
C VARCHAR(30),
PRIMARY KEY (A, B),
UNIQUE (A, C)
);
INSERT INTO T VALUES ('a', 'p', 'x');
INSERT INTO T VALUES ('a', 'q', 'y');
INSERT INTO T VALUES ('b', 'p', 'z');
INSERT INTO T VALUES ('c', 'r', 'w');
INSERT INTO T VALUES ('d', 's', 'v');
SELECT A, COUNT(DISTINCT B) AS D FROM T GROUP BY A HAVING COUNT(DISTINCT B) >= 1;
a|2
b|1
c|1
d|1
PRAGMA automatic_index = 0;
ATTACH DATABASE ':memory:' AS aux61;
.log OFF
ATTACH DATABASE ':memory:' AS aux10;
PRAGMA vdbe_addoptrace = TRUE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
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
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
SELECT * FROM t2;
Braun|30|3
von|20|2
SELECT b, c FROM t1 ORDER BY b, c;
Braun|30
von|20
.quit
```
## Expectation
```sql
```
## Flag
```
```
@@ -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
PRAGMA vdbe_addoptrace = TRUE;
.lint
ATTACH DATABASE ':memory:' AS aux9;
.echo on
PRAGMA automatic_index = NO;
ATTACH DATABASE ':memory:' AS aux83;
BEGIN EXCLUSIVE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (asin(-json_quote(datetime(cosh(octet_length('Hello'))))) ->> -(-(-(char(1, 2, 3, 4, 5) + 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;
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;
.imposter t1bc t2
WITH _m AS MATERIALIZED (SELECT * FROM T2) SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
PRAGMA recursive_triggers = OFF;
PRAGMA ignore_check_constraints != FALSE;
PRAGMA wal_autocheckpoint;
PRAGMA pragma_list;
.sha3sum
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))/-if(-2814635466794726270, 2360804486672605089)
AS INTEGER
) AS c
FROM T;
CREATE /**/ TABLE T1 (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15) UNIQUE,
C INTEGER
);
CREATE TABLE _m (
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 SUM(b) OVER (ORDER BY b ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
ALTER TABLE T RENAME TO T_r3912;
PRAGMA vdbe_trace = 0;
CREATE INDEX IF NOT EXISTS idx_T_6324 ON T(a COLLATE NOCASE) WHERE a > 0;
INSERT INTO T SELECT * 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;
ALTER TABLE T1 RENAME TO T1_r9774;
CREATE TRIGGER IF NOT EXISTS trg_T1_9214 AFTER UPDATE ON T1 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
PRAGMA page_size;
SELECT * FROM T1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
SELECT GROUP_CONCAT(b, '|') FROM T;
SELECT COUNT(*) FROM T2;
SELECT * FROM T2 AS a JOIN T1 AS b ON a.rowid = b.rowid;
ROLLBACK;
WITH RECURSIVE multi(a, b) AS (VALUES(1, 1.0) UNION ALL SELECT a+1, b*0.5 /**/ FROM multi WHERE a<48) SELECT * FROM multi;
ALTER TABLE T RENAME COLUMN a TO a_r1923;
SELECT * FROM _m;
ALTER TABLE _m DROP COLUMN X;
ALTER TABLE _m DROP COLUMN X;
WITH RECURSIVE r AS (SELECT * FROM T1 LIMIT 1 UNION ALL SELECT t.* FROM T1 t JOIN r ON t.B = r.B LIMIT 10) SELECT * FROM r;
INSERT INTO _m VALUES (NULL, NULL);
DETACH DATABASE aux83;
REINDEX T;
CREATE VIEW IF NOT EXISTS v_T1_1238 AS SELECT A FROM T1;
ALTER TABLE t1 ADD COLUMN extra_3847 DATE NOT NULL DEFAULT 0;
SELECT * FROM T1 AS a JOIN T AS b ON a.rowid = b.rowid;
UPDATE t1 SET b = b + 1 WHERE 1 RETURNING *;
ALTER TABLE _m DROP COLUMN A;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_5390 ON t1(lower(a)) WHERE a > /* iif(1, {v}, {v}) */ 0;
SELECT * FROM t1 WHERE EXISTS (SELECT 1 FROM t1 WHERE d < 0);
PRAGMA full_column_names = TRUE;
SELECT LAG(X, 2) OVER (PARTITION BY X ORDER BY X ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM _m;
WITH cte AS (SELECT a FROM T) SELECT * FROM cte;
INSERT OR FAIL INTO t1 VALUES (NULL, 'x', NULL, 5);
DELETE FROM t1 WHERE b IS NULL RETURNING *;
CREATE INDEX IF NOT EXISTS idx_T1_3128 ON T1(A COLLATE NOCASE);
CREATE TEMPORARY VIEW IF NOT EXISTS v_T1_1435 AS SELECT 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;
INSERT INTO _m SELECT * FROM _m;
CREATE VIEW IF NOT EXISTS v__m_2373 AS SELECT X FROM _m;
DETACH DATABASE aux9;
INSERT INTO t1 VALUES (NULL, NULL, 1, NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
INSERT INTO t1 SELECT * FROM t1;
SELECT * FROM T WHERE a = (SELECT SUM(a) FROM T);
DELETE FROM T WHERE b > (SELECT AVG(b) FROM T);
SELECT * FROM _m AS a LEFT JOIN t1 AS b ON a.rowid = b.rowid;
CREATE VIEW IF NOT EXISTS v_t1_4826 AS SELECT a FROM t1;
WITH cte AS (SELECT CASE WHEN b IS NULL THEN 0 ELSE b END AS val FROM T) SELECT * FROM cte;
ANALYZE;
ALTER TABLE T1 ADD COLUMN extra_313 INT2 DEFAULT '';
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 _m;
WITH cte AS (SELECT b FROM T) SELECT * FROM cte;
DELETE FROM t1 WHERE 0 RETURNING *;
INSERT INTO _m SELECT * FROM _m;
SELECT * FROM T WHERE a > ANY (SELECT a FROM T);
VACUUM main;
```
## Actual output
```sql
PRAGMA automatic_index = NO;
ATTACH DATABASE ':memory:' AS aux83;
BEGIN EXCLUSIVE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
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;
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;
q|2
r|2
p|1
t|1
.imposter t1bc t2
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
WITH _m AS MATERIALIZED (SELECT * FROM T2) SELECT * FROM t2;
Braun|30|3
von|20|2
SELECT b, c FROM t1 ORDER BY b, c;
Braun|30
von|20
.quit
```
## Expectation
```sql
```
## 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
ATTACH DATABASE ':memory:' AS aux65;
CREATE TABLE T (
a INTEGER,
b TEXT,
c INTEGER
);
INSERT INTO T VALUES (NULL,'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;
.timer on
CREATE TABLE T1 (
A VARCHAR(-1445937777629738465),
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 T1 WHERE X < (SELECT MIN(X) FROM T1);
DETACH DATABASE aux65;
SELECT * FROM T2;
```
## Actual output
```sql
|a||1
Run Time: real 0.000 user 0.000144 sys 0.000000
Run Time: real 0.000 user 0.000082 sys 0.000000
Run Time: real 0.000 user 0.000021 sys 0.000000
Run Time: real 0.000 user 0.000014 sys 0.000000
Run Time: real 0.000 user 0.000013 sys 0.000000
a
b
b
Run Time: real 0.000 user 0.000036 sys 0.000000
Run Time: real 0.000 user 0.000044 sys 0.000000
Run Time: real 0.000 user 0.000008 sys 0.000000
b|k
Run Time: real 0.000 user 0.000010 sys 0.000000
```
## Expectation
```sql
|a||1
Run Time: real 0.000056 user 0.000064 sys 0.000000
Run Time: real 0.000032 user 0.000033 sys 0.000000
Run Time: real 0.000011 user 0.000011 sys 0.000000
Run Time: real 0.000006 user 0.000006 sys 0.000000
Run Time: real 0.000005 user 0.000005 sys 0.000000
a
b
b
Run Time: real 0.000016 user 0.000017 sys 0.000000
Run Time: real 0.000021 user 0.000022 sys 0.000000
Run Time: real 0.000005 user 0.000004 sys 0.000000
b|k
Run Time: real 0.000004 user 0.000005 sys 0.000000
```
## Flag
```
```
File diff suppressed because it is too large Load Diff
@@ -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
SAVEPOINT sp800;
SAVEPOINT sp1369;
ATTACH DATABASE ':memory:' AS aux20;
PRAGMA short_column_names = YES;
.progress datetime('Inf', '+1 day')
.shell pwd
CREATE TABLE T (
a TEXT,
b INTEGER,
c REAL
);
INSERT INTO T VALUES (('a' || ''),ceiling(x'c5cb906e1c8cc13d197d23f8b3cc1209'),NULL), ('a',-zeroblob(','),-'%'), ('b',1,4.5);
SELECT a,b,c,
SUM(c) OVER (
PARTITION BY a
ORDER BY b
) AS d
FROM T;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (like('_1%', 1, '_'), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z");
DROP TABLE t0;
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;
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;
PRAGMA cache_spill = NO;
PRAGMA vdbe_listing = inf;
PRAGMA empty_result_callbacks = 0;
.timeout
CREATE TABLE p1(a PRIMARY KEY, b UNIQUE);
CREATE TABLE c1(x, y, z REFERENCES p1(c));
CREATE TABLE c2(x, y, z, w REFERENCES p1(b));
ALTER TABLE c1 DROP COLUMN z;
ALTER TABLE c2 DROP COLUMN z;
SELECT sql FROM sqlite_schema WHERE name IN ('c1', 'c2');
COMMIT TRANSACTION;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE +x<31) SELECT x FROM cnt WHERE x > 15;
CREATE TEMPORARY VIEW IF NOT EXISTS v_c1_2917 AS SELECT z FROM c1;
SELECT * FROM c2 AS a FULL OUTER JOIN c1 AS b ON a.rowid = b.rowid;
SELECT * FROM p1;
UPDATE c2 SET z = NULL WHERE rowid = 1;
CREATE INDEX IF NOT EXISTS idx_c2_3327 ON c2(lower(x)) WHERE x > 0;
creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z");
DROP TABLE t0;
SELECT COUNT(*) FILTER (WHERE z IS NOT NULL), SUM(rowid) FILTER (WHERE z > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(z) FILTER (WHERE z > 0 AND z < 100), COUNT(*) FILTER (WHERE typeof(z) = "text") FROM c2;
SELECT COUNT(*) FILTER (WHERE y IS NOT NULL), SUM(rowid) FILTER (WHERE y > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(y) FILTER (WHERE y > 0 AND y < 100), COUNT(*) FILTER (WHERE typeof(y) = "text") FROM c1;
REINDEX p1;
ALTER TABLE c2 RENAME COLUMN w TO w_r831;
CREATE TABLE T1 (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15) UNIQUE,
C BIGINT
);
CREATE TABLE T2 (
X VARCHAR(20) PRIMARY KEY,
A VARCHAR(10),
FOREIGN KEY (A) REFERENCES T1(A)
);
INSERT INTO T1 VALUES ('a', 'p', 9999999999999);
INSERT INTO T1 VALUES ('b', 'q', -9999999999999);
SELECT 0x0ACB29BM205381;
SELECT sqlite_compileoption_used('我的天你是怎么了');
SELECT 1 >> -999999999999999999999999999;
SELECT sqlite_compileoption_get($1);
SELECT sqlite_version();
INSERT INTO T2 VALUES ('m', 'a');
INSERT INTO T2 VALUES ('n', 'b');
SELECT T2.X, T1.C FROM T2 INNER JOIN T1 ON T2.A = T1.A WHERE T1.C > -1000000000000;
INSERT INTO t1 SELECT * FROM t1;
SELECT * FROM c2 t1 LEFT JOIN c2 t2 ON t1.w = (SELECT w FROM c2 WHERE w = t1.w);
ALTER TABLE p1 DROP COLUMN b;
ANALYZE;
SELECT COUNT(*) FROM T2;
INSERT INTO T1 DEFAULT VALUES;
INSERT INTO T2 VALUES (NULL, NULL);
SELECT * FROM t1 AS a RIGHT JOIN c2 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux20;
RELEASE sp1369;
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;
DROP VIEW IF EXISTS T1;
INSERT INTO p1 DEFAULT VALUES;
SELECT COUNT(*) FROM c2;
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 c2;
ALTER TABLE c1 RENAME COLUMN z TO z_r2716;
SELECT * FROM c2;
DROP INDEX IF EXISTS p1;
RELEASE sp800;
SELECT COUNT(*) FROM c1;
INSERT INTO T2 VALUES (NULL, NULL);
```
## Actual output
```sql
/fuzzer
a|||
a|0|0.0|0.0
b|1|4.5|4.5
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
/fuzzer
a|||
a|0|0.0|0.0
b|1|4.5|4.5
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,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
CREATE TABLE t1(a, b);
CREATE /* CHAR(10) */ INDEX i1 ON t1(a);
INSERT INTO t1 VALUES('aaa', tanh(timediff(sign(0), 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);
ALTER TABLE t1 DROP COLUMN b;
CREATE INDEX IF NOT EXISTS idx_t1_9614 ON t1(a COLLATE NOCASE) WHERE a IS NOT NULL;
SELECT * FROM t1;
SELECT COUNT(*) FROM t1;
INSERT INTO t1 DEFAULT VALUES;
```
## Actual output
```sql
3
ddd
eee
ddd
ccc
eee
3
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,133 @@
## 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
BEGIN TRANSACTION;
ATTACH DATABASE ':memory:' AS aux72;
BEGIN DEFERRED;
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
COMMIT;
REINDEX t1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t3_1118 ON t3(a COLLATE NOCASE) WHERE a > 0;
DROP INDEX IF EXISTS t2;
SELECT LAST_VALUE(a) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t3;
DETACH DATABASE aux72;
ALTER TABLE t1 RENAME COLUMN a TO a_r9525;
ROLLBACK;
ALTER TABLE t3 RENAME COLUMN a TO a_r8773;
PRAGMA defer_foreign_keys = TRUE;
SELECT * FROM t2;
PRAGMA wal_checkpoint('RESTART');
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.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|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
```
-vfs memdb
```
@@ -0,0 +1,117 @@
## 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 case_sensitive_like = YES;
PRAGMA user_version;
PRAGMA wal_checkpoint('NOOP');
.timer 192319231923
DROP TABLE IF EXISTS t1;
CREATE TABLE t1(w INT, x INT);
INSERT INTO t1(w,x) VALUES(1,10),(2,20),(3,30), (2,21),(3,31), (3,32);
CREATE INDEX t1wx ON t1(w,x);
DROP TABLE IF EXISTS t2;
CREATE TABLE t2(w INT, y VARCHAR(8));
INSERT INTO t2(w,y) VALUES(1,'one'),(2,'two'),(3,'three'),(4,'four');
CREATE INDEX t2wy ON t2(w,y);
SELECT cnt, xyz, (SELECT y FROM t2 WHERE w=cnt), '|' FROM (SELECT count(*) AS cnt, w AS xyz FROM t1 GROUP BY 2) ORDER BY cnt, xyz;
SELECT cnt, xyz, lower((SELECT y FROM t2 WHERE w=cnt)), '|' FROM (SELECT count(*) AS cnt, w AS xyz FROM t1 GROUP BY 2) ORDER BY cnt, xyz;
SELECT cnt, xyz, CASE WHEN (SELECT y FROM t2 WHERE w=cnt)=='two' THEN 'aaa' ELSE 'bbb' END, '|' FROM (SELECT count(*) AS cnt, w AS xyz FROM t1 GROUP BY 2) ORDER BY +cnt;
WITH cte AS (SELECT * FROM t2 WHERE w IN (SELECT w FROM t2 LIMIT 5)) SELECT * FROM cte;
REINDEX;
INSERT INTO t1 DEFAULT VALUES;
WITH n AS NOT MATERIALIZED (SELECT * FROM t2) SELECT * FROM n WHERE y > 0;
INSERT INTO t1 SELECT * FROM t1;
```
## Actual output
```sql
0
0|-1|-1
Run Time: real 0.000 user 0.000024 sys 0.000000
Run Time: real 0.000 user 0.000116 sys 0.000000
Run Time: real 0.000 user 0.000029 sys 0.000000
Run Time: real 0.000 user 0.000081 sys 0.000000
Run Time: real 0.000 user 0.000004 sys 0.000000
Run Time: real 0.000 user 0.000053 sys 0.000000
Run Time: real 0.000 user 0.000016 sys 0.000000
Run Time: real 0.000 user 0.000054 sys 0.000000
1|1|one||
2|2|two||
3|3|three||
Run Time: real 0.000 user 0.000088 sys 0.000000
1|1|one||
2|2|two||
3|3|three||
Run Time: real 0.000 user 0.000057 sys 0.000000
1|1|bbb||
2|2|aaa||
3|3|bbb||
Run Time: real 0.000 user 0.000051 sys 0.000000
1|one
2|two
3|three
4|four
Run Time: real 0.001 user 0.000104 sys 0.000000
Run Time: real 0.000 user 0.000027 sys 0.000000
Run Time: real 0.000 user 0.000015 sys 0.000000
1|one
2|two
3|three
4|four
Run Time: real 0.000 user 0.000024 sys 0.000000
Run Time: real 0.000 user 0.000031 sys 0.000000
```
## Expectation
```sql
0
0|-1|-1
Run Time: real 0.000003 user 0.000010 sys 0.000000
Run Time: real 0.000041 user 0.000041 sys 0.000000
Run Time: real 0.000015 user 0.000015 sys 0.000000
Run Time: real 0.000034 user 0.000034 sys 0.000000
Run Time: real 0.000002 user 0.000002 sys 0.000000
Run Time: real 0.000019 user 0.000020 sys 0.000000
Run Time: real 0.000007 user 0.000006 sys 0.000000
Run Time: real 0.000020 user 0.000020 sys 0.000000
1|1|one||
2|2|two||
3|3|three||
Run Time: real 0.000043 user 0.000044 sys 0.000000
1|1|one||
2|2|two||
3|3|three||
Run Time: real 0.000025 user 0.000025 sys 0.000000
1|1|bbb||
2|2|aaa||
3|3|bbb||
Run Time: real 0.000021 user 0.000020 sys 0.000000
1|one
2|two
3|three
4|four
Run Time: real 0.000067 user 0.000067 sys 0.000000
Run Time: real 0.000011 user 0.000012 sys 0.000000
Run Time: real 0.000008 user 0.000008 sys 0.000000
1|one
2|two
3|three
4|four
Run Time: real 0.000010 user 0.000010 sys 0.000000
Run Time: real 0.000021 user 0.000022 sys 0.000000
```
## Flag
```
```
@@ -0,0 +1,45 @@
## 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 stdout
BEGIN DEFERRED TRANSACTION;
SELECT (x'7933d886f723d94ae4daafa168938983' - substr(NULL, CAST((1 - 0) AS DATE)))x0ACB29BM205381;
SELECT sqlite_compileoption_used('我的天你是怎么了');
SELECT 1 >> -999999999999999999999999999;
SELECT sqlite_compileoption_get($1);
SELECT sqlite_version();
COMMIT;
PRAGMA temp_store = 'MEMORY';
PRAGMA empty_result_callbacks = ON;
VACUUM;
```
## Actual output
```sql
0
0
ATOMIC_INTRINSICS=1
3.39.0
```
## Expectation
```sql
0
0
(21) API called with NULL prepared statement
(21) misuse at line 94038 of [281fc0e9af]
ATOMIC_INTRINSICS=1
3.51.1
```
## Flag
```
```
@@ -0,0 +1,41 @@
## 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 sp3312;
SELECT total_changes()x0ACB29BM205381;
SELECT sqlite_compileoption_used('我的天你是怎么了'); /* PRAGMA temp_store_directory; */ SELECT -(-(1)) >> -999999999999999999999999999;
SELECT sqlite_compileoption_get($1);
SELECT sqlite_version();
ROLLBACK TRANSACTION TO SAVEPOINT sp3312;
RELEASE SAVEPOINT sp3312;
```
## Actual output
```sql
0
0
0
ATOMIC_INTRINSICS=1
3.39.0
```
## Expectation
```sql
0
0
0
ATOMIC_INTRINSICS=1
3.51.1
```
## Flag
```
```
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,954 @@
## 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 = NO;
ATTACH DATABASE '' || (':memory:') AS aux25;
PRAGMA vdbe_trace = TRUE;
-- PRAGMA query_only = NO;
.once log.txt
BEGIN DEFERRED;
PRAGMA ignore_check_constraints = NO;
ATTACH DATABASE ':memory:' AS aux44;
.output
SAVEPOINT sp8760;
SAVEPOINT sp9990;
PRAGMA trusted_schema = TRUE;
.once log.txt
CREATE TABLE main.t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (log10(((like(('' || ''), if(replace(x'b9863ad918881c72285170e0e3fb', mod(ceiling(-asin(NULL)) -> '$.a' -> '$.b', power(NULL, 0)), 0), 3.141592653589793, 0, 3.141592653589793)) * 1) - 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
BEGIN TRANSACTION;
ATTACH DATABASE ':memory:' AS aux72;
BEGIN DEFERRED;
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
COMMIT;
REINDEX t1;
CREATE UNIQUE INDEX IF NoT EXISTS idx_t3_1118 ON t3(a COLLATE NOCASE) WHERE NOT NOT (NOT NOT (NOT NOT (NOT NOT (+a > 0)))) ;
DROP INDEX IF EXISTS t2;
SELECT LAST_VALUE(a) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t3;
DETACH DATABASE aux72;
ALTER TABLE t1 RENAME COLUMN a TO a_r9525;
ROLLBACK;
ALTER TABLE t3 RENAME COLUMN a TO a_r8773;
PRAGMA defer_foreign_keys = TRUE;
SELECT * FROM t2;
PRAGMA wal_checkpoint('RESTART');
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (log10(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
BEGIN TRANSACTION;
ATTACH DATABASE ':memory:' AS aux72;
BEGIN DEFERRED;
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
COMMIT;
REINDEX t1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t3_1118 ON t3(a COLLATE NOCASE) WHERE +a > 0;
DROP INDEX IF EXISTS t2;
SELECT LAST_VALUE(a) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t3;
DETACH DATABASE aux72;
ALTER TABLE t1 RENAME COLUMN a TO a_r9525;
ROLLBACK;
ALTER TABLE t3 RENAME COLUMN a TO a_r8773;
PRAGMA defer_foreign_keys = TRUE;
SELECT * FROM t2;
PRAGMA wal_checkpoint('RESTART');
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a;
CREATE TABLE t1(a INTEGER PRIMARY KEY, /**/ b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (log10(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
BEGIN TRANSACTION;
ATTACH DATABASE ':memory:' AS aux72;
BEGIN DEFERRED;
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
COMMIT;
REINDEX t1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t3_1118 ON t3(a COLLATE NOCASE) WHERE +a > 0;
DROP INDEX IF EXISTS t2;
SELECT LAST_VALUE(a) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t3;
DETACH DATABASE aux72;
ALTER TABLE t1 RENAME COLUMN a TO a_r9525;
ROLLBACK;
ALTER TABLE t3 RENAME COLUMN a TO a_r8773;
PRAGMA defer_foreign_keys = TRUE;
SELECT * FROM t2;
PRAGMA wal_checkpoint('RESTART');
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (log10(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
BEGIN TRANSACTION;
ATTACH DATABASE ':memory:' AS aux72;
BEGIN DEFERRED;
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
COMMIT;
REINDEX t1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t3_1118 ON t3(a COLLATE NOCASE) WHERE +a > 0;
DROP INDEX IF EXISTS t2;
SELECT LAST_VALUE(a) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t3;
DETACH DATABASE aux72;
ALTER TABLE t1 RENAME COLUMN a TO a_r9525;
ROLLBACK;
ALTER TABLE t3 RENAME COLUMN a TO a_r8773;
PRAGMA defer_foreign_keys = TRUE;
SELECT * FROM t2;
PRAGMA wal_checkpoint('RESTART');
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (log10(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
BEGIN TRANSACTION;
ATTACH DATABASE ':memory:' AS aux72;
BEGIN DEFERRED;
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
COMMIT;
REINDEX t1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t3_1118 ON t3(a COLLATE NOCASE) WHERE +a > 0;
DROP INDEX IF EXISTS t2;
SELECT LAST_VALUE(a) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t3;
DETACH DATABASE aux72;
ALTER TABLE t1 RENAME COLUMN a TO a_r9525;
ROLLBACK;
ALTER TABLE t3 RENAME COLUMN a TO a_r8773;
PRAGMA defer_foreign_keys = TRUE;
SELECT * FROM t2;
PRAGMA wal_checkpoint('RESTART');
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (log10(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
BEGIN TRANSACTION;
ATTACH DATABASE ':memory:' AS aux72;
BEGIN DEFERRED;
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
COMMIT;
REINDEX t1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t3_1118 ON t3(a COLLATE NOCASE) WHERE +a > 0;
DROP INDEX IF EXISTS t2;
SELECT LAST_VALUE(a) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t3;
DETACH DATABASE aux72;
ALTER TABLE t1 RENAME COLUMN a TO a_r9525;
ROLLBACK;
ALTER TABLE t3 RENAME COLUMN a TO a_r8773;
PRAGMA defer_foreign_keys = TRUE;
SELECT * FROM t2;
PRAGMA wal_checkpoint('RESTART');
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (log10(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
BEGIN TRANSACTION;
ATTACH DATABASE ':memory:' AS aux72;
BEGIN DEFERRED;
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
COMMIT;
REINDEX t1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t3_1118 ON t3(a COLLATE NOCASE) WHERE +a > 0;
DROP INDEX IF EXISTS t2;
WITH _m AS MATERIALIZED (SELECT * FROM T) SELEC_m LAST_VALUE(a) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t3;
DETACH DATABASE aux72;
ALTER TABLE t1 RENAME COLUMN a TO a_r9525;
ROLLBACK;
ALTER TABLE t3 RENAME COLUMN a TO a_r8773;
PRAGMA defer_foreign_keys = TRUE;
CREATE TABLE T (
a TEXT,
b TEXT
);
INSERT INTO T VALUES ('a','b'), ('c','d');
SELECT * FROM T WHERE +a = REPLACE('a;',';','') AND b = 'b';
SELECT * FROM t2;
PRAGMA wal_checkpoint('RESTART');
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (log10(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
BEGIN TRANSACTION;
ATTACH DATABASE ':memory:' AS aux72;
BEGIN DEFERRED;
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
COMMIT;
REINDEX t1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t3_1118 ON t3(a COLLATE NOCASE) WHERE +a > 0;
DROP INDEX IF EXISTS t2;
SELECT LAST_VALUE(a) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t3;
DETACH DATABASE aux72;
ALTER TABLE t1 RENAME COLUMN a TO a_r9525;
ROLLBACK;
ALTER TABLE t3 RENAME COLUMN a TO a_r8773;
PRAGMA defer_foreign_keys = TRUE;
SELECT * FROM t2;
PRAGMA wal_checkpoint('RESTART');
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (log10(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
BEGIN TRANSACTION;
ATTACH DATABASE ':memory:' AS aux72;
BEGIN DEFERRED;
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
COMMIT;
REINDEX t1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t3_1118 ON t3(a COLLATE NOCASE) WHERE +a > 0;
DROP INDEX IF EXISTS t2;
SELECT LAST_VALUE(a) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t3;
DETACH DATABASE aux72;
ALTER TABLE t1 RENAME COLUMN a TO a_r9525;
ROLLBACK;
ALTER TABLE t3 RENAME COLUMN a TO a_r8773;
PRAGMA defer_foreign_keys = TRUE;
SELECT * FROM t2;
PRAGMA wal_checkpoint('RESTART');
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a;
INSERT INTO t1 VALUES (NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a;
INSERT INTO t1 DEFAULT VALUES;
CREATE TEMP VIEW IF NOT EXISTS v_t2_4298 AS SELECT a FROM t2;
SELECT * FROM t1 WHERE a <= ANY (SELECT a FROM t1);
INSERT INTO t3 DEFAULT VALUES;
DELETE FROM t1 WHERE a IS NULL;
INSERT INTO t2 SELECT * FROM t2;
RELEASE sp9990;
INSERT INTO t2 SELECT * FROM t2;
SELECT GROUP_CONCAT(a, '.') OVER (PARTITION BY a ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM t3;
CREATE TRIGGER IF NOT EXISTS trg_t3_7930 BEFORE DELETE ON t3 BEGIN INSERT INTO t3(a) VALUES (NULL); END;
SELECT COUNT(*) FROM t2;
DELETE FROM t2 WHERE a IS NULL;
CREATE INDEX IF NOT EXISTS idx_t1_5741 ON t1(a COLLATE NOCASE);
DELETE FROM t3 WHERE a IS NULL RETURNING *;
ALTER TABLE t1 RENAME COLUMN a TO a_r2002;
SELECT COUNT(*) FROM t1;
CREATE INDEX IF NOT EXISTS idx_t1_9369 ON t1(lower(a));
SELECT GROUP_CONCAT(a) OVER (ORDER BY a) FROM t2;
INSERT INTO t2 VALUES (1) ON CONFLICT(a) DO UPDATE SET a = excluded.a;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t2_1124 ON t2((a + 1)) WHERE a IS NOT NULL;
ALTER TABLE t1 RENAME COLUMN a TO a_r6325;
CREATE TRIGGER IF NOT EXISTS trg_t3_5012 BEFORE DELETE ON t3 FOR EACH ROW BEGIN INSERT INTO t3(a) 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 t3;
INSERT INTO t1 VALUES (NULL);
WITH cte AS (SELECT NULL AS x) SELECT * FROM cte;
WITH RECURSIVE self(x) AS (SELECT 1 UNION ALL SELECT x FROM self) SELECT * FROM self LIMIT 5;
ROLLBACK TO sp8760;
RELEASE sp8760;
INSERT OR ABORT INTO t3 VALUES ('');
ALTER TABLE t2 RENAME TO t2_r9030;
DETACH DATABASE aux44;
INSERT OR ROLLBACK INTO t3 VALUES ('x');
CREATE TRIGGER IF NOT EXISTS trg_t1_4886 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
REINDEX;
INSERT INTO t3 DEFAULT VALUES;
INSERT INTO t2 DEFAULT VALUES;
ALTER TABLE T RENAME TO T_r523;
INSERT OR REPLACE INTO T VALUES (NULL, NULL);
INSERT INTO t2 VALUES (1) ON CONFLICT(a) DO UPDATE SET a = excluded.a;
SELECT * FROM t3 AS a INNER JOIN t3 AS b ON a.rowid = b.rowid;
END TRANSACTION;
INSERT OR ROLLBACK INTO t2 VALUES (NULL);
INSERT INTO t1 SELECT * FROM t1;
ALTER TABLE T RENAME COLUMN b TO b_r7423;
ALTER TABLE t3 RENAME COLUMN a TO a_r690;
SELECT MAX(a) FROM t3;
SELECT STRING_AGG(a, '|') FROM t1;
ALTER TABLE T ADD COLUMN extra_3305 FLOAT DEFAULT (abs(random()) % 1000);
INSERT INTO t3 VALUES (NULL);
VACUUM;
CREATE VIEW IF NOT EXISTS v_t1_3865 AS SELECT a 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;
SELECT * FROM t1 AS a JOIN T AS b ON a.rowid = b.rowid;
WITH cte AS (SELECT a, SUM(a) AS total FROM t2 GROUP BY a) SELECT * FROM cte ORDER BY total DESC;
INSERT INTO t1 VALUES (NULL);
ANALYZE T;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<1) SELECT * FROM cnt;
ALTER TABLE T ADD COLUMN extra_190 DATE DEFAULT 0;
WITH cte AS (SELECT b FROM T UNION SELECT b FROM T) SELECT * FROM cte;
DROP VIEW IF EXISTS t2;
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;
SELECT * FROM t3 AS a LEFT JOIN t2 AS b ON a.rowid = b.rowid;
SELECT * FROM t2;
ALTER TABLE t1 RENAME COLUMN a TO a_r4594;
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 TRIGGER IF NOT EXISTS trg_t1_5962 AFTER UPDATE ON t1 BEGIN SELECT RAISE(FAIL, 'no'); END;
INSERT INTO T SELECT * FROM T;
DROP TABLE IF EXISTS t1;
INSERT OR FAIL INTO t2 VALUES (0);
ALTER TABLE T ADD COLUMN extra_1673 CHARINT;
PRAGMA fullsync = OFF;
INSERT INTO T SELECT * FROM T;
SELECT MAX(a) FROM t1;
INSERT INTO T DEFAULT VALUES;
SELECT * FROM t3 AS a JOIN t1 AS b ON a.rowid = b.rowid;
INSERT OR ABORT INTO t3 VALUES ('x');
DROP VIEW IF EXISTS t1;
INSERT INTO t1 DEFAULT VALUES;
INSERT INTO T DEFAULT VALUES;
SELECT * FROM t2 WHERE a IN (SELECT a FROM t2);
INSERT INTO t3 VALUES (NULL);
INSERT INTO t2 VALUES (NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a;
DETACH DATABASE aux25;
WITH a AS (SELECT * FROM T), RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<75) SELECT * FROM a CROSS JOIN cnt;
ALTER TABLE t1 RENAME TO t1_r9782;
ALTER TABLE t1 RENAME TO t1_r4960;
INSERT INTO t2 SELECT * FROM t2;
REINDEX T;
SELECT * FROM t2 WHERE a IN (SELECT a FROM t2 ORDER BY a LIMIT 1 OFFSET 1000);
ALTER TABLE t1 RENAME TO t1_r1351;
WITH cte AS (SELECT * FROM t2) SELECT * FROM cte c1 JOIN cte c2 ON c1.a = c2.a;
SELECT * FROM t1;
CREATE INDEX IF NOT EXISTS idx_t2_8308 ON t2(lower(a));
DELETE FROM t3 WHERE 1;
ALTER TABLE t2 RENAME COLUMN a TO a_r5048;
WITH cte AS (SELECT a, COUNT(*) FROM t2 GROUP BY a) SELECT * FROM cte;
CREATE TRIGGER IF NOT EXISTS trg_T_1960 AFTER UPDATE OF a ON T FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END;
SELECT MIN(a) FROM T;
VACUUM main;
INSERT INTO T VALUES (NULL, NULL);
CREATE INDEX IF NOT EXISTS idx_t3_6160 ON t3(lower(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
von|20|2
Braun|30
von|20
```
## Expectation
```sql
```
## Flag
```
-noheader
```
@@ -0,0 +1,92 @@
## 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
.eqp off
.prompt
.connection
ATTACH DATABASE ':memory:' AS aux57;
.progress NULL
ATTACH DATABASE ':memory:' AS aux98;
CREATE TABLE T (
a INTEGER,
b TEXT,
c REAL
);
INSERT INTO T VALUES (tan(concat('a', 'b', 'c')),'a',CAST(json_valid(datetime(nullif(NULL, unhex(2147483646, ' ')), '+1 day'), 2) AS SMALLINT)), (2,'b',-3.5), (3,'c',9e999);
WITH d AS (SELECT * FROM T) SELECT * FROM d WHERE NOT +c < 0;
UPDATE T SET b = -85 WHERE b IS NOT NULL;
VACUUM;
DETACH DATABASE aux98;
WITH RECURSIVE tree(id, parent, depth) AS (VALUES(1, NULL, 0) UNION ALL SELECT id+1, id, depth+1 FROM tree WHERE depth<6) SELECT * FROM tree;
SELECT * FROM T AS a JOIn T AS b ON a.rowid = b.rowid;
SELECT * FROM T AS a RIGHT JOIN T AS b ON a.rowid = b.rowid;
PRAGMA trusted_schema = ON;
VACUUM;
WITH cte(x) AS (VALUES(NULL),(1),(NULL)) SELECT * FROM cte WHERE x IS NOT NULL;
DETACH DATABASE aux57;
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'); /* soundex('Rupert') */ SELECT T1.b,
(
SELECT GROUP_CONCAT(b,',')
FROM T2
WHERE T2.a=T1.a
) AS c
FROM T1;
ANALYZE T1;
ANALYZE T1;
DELETE FROM T2 WHERE b > (SELECT AVG(b) FROM T2) RETURNING *;
CREATE TRIGGER IF NOT EXISTS trg_T1_2080 AFTER UPDATE OF b ON T1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
REINDEX T;
DELETE FROM T1 WHERE 0;
ALTER TABLE T2 RENAME COLUMN a TO a_r2;
REINDEX;
CREATE TRIGGER IF NOT EXISTS trg_T_1920 AFTER DELETE ON T BEGIN SELECT RAISE(IGNORE); END;
DROP INDEX IF EXISTS T2;
CREATE TRIGGER IF NOT EXISTS trg_T1_9937 BEFORE UPDATE OF b ON T1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
WITH cte AS (SELECT b, COUNT(*) AS cnt FROM T1 GROUP BY b) SELECT * FROM cte WHERE cnt > 1;
WITH cte AS (SELECT NULL AS x, NULL AS y) SELECT x, y, x IS NULL FROM cte;
INSERT OR IGNORE INTO T1 VALUES (8, -3);
```
## Actual output
```sql
ACTIVE 0: :memory:
1||0
2|1|1
3|2|2
4|3|3
5|4|4
6|5|5
7|6|6
1
a|c,d
b|
1|c
1|d
||1
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,424 @@
## 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 sp4770;
-- typeof(1.0)
.limit
SAVEPOINT sp9818;
ATTACH DATABASE ':memory:' AS aux84;
SAVEPOINT sp2531;
.check
SAVEPOINT sp9694;
PRAGMA encoding = 'UTF-8';
ATTACH DATABASE ':memory:' AS aux44;
CREATE TABLE main.main.`T` (
a REAL,
b REAL,
c REAL
);
INSERT INTO T VALUES (strftime('%s', if(coalesce(NULL, NULL, NULL) -> sqrt(datetime(-(-(CAST(x'2f' AS BLOB))))), typeof(NULL), (-(-(0)) + 9145485036963515638))),1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (SELECT * FROM T) SELEC_m * FROM T) SELEC_m * FROM T WHERE NOT NOT (NOT NOT (+b < 2.0)) ORDER BY b;
DETACH DATABASE aux44;
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T t2 WHERE t2.a = T.a);
INSERT INTO T VALUES (NULL, NULL, NULL);
INSERT OR ROLLBACK INTO T VALUES (NULL, NULL, '');
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE +x<21) SELECT * FROM cnt;
ALTER TABLE T DROP COLUMN b;
DROP VIEW IF EXISTS T;
SELECT ROW_NUMBER() OVER (ORDER BY a ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T;
INSERT OR ROLLBACK INTO T VALUES (-2, NULL, 0);
ROLLBACK TO sp9694;
RELEASE sp9694;
ALTER TABLE T ADD COLUMN extra_4532 UNSIGNED BIG INT DEFAULT (abs(random()) % 1000);
SELECT a, COUNT(*) FROM T GROUP BY a HAVING COUNT(*) = (SELECT COUNT(*) FROM T);
CREATE TRIGGER IF NOT EXISTS trg_T_7371 BEFORE UPDATE ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT COUNT(*) FROM T;
ROLLBACK TO sp2531;
RELEASE sp2531;
INSERT OR ABORT INTO T VALUES (6, 0, 0);
SELECT COUNT(*) FROM T;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION SELECT x+1 FROM cnt WHERE x<8) SELECT * FROM cnt;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<0) SELECT * FROM cnt;
DETACH DATABASE aux84;
SELECT * FROM T t1 JOIN T t2 ON t1.a = (SELECT a FROM T LIMIT 1);
ALTER TABLE T RENAME TO T_r9068;
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;
ROLLBACK TRANSACTION TO SAVEPOINT sp9818;
RELEASE SAVEPOINT sp9818;
SELECT STRING_AGG(a, '|') FROM T;
INSERT INTO T VALUES (NULL, NULL, NULL);
SELECT LEAD(a, 1, NULL) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T;
SELECT RANK() OVER (ORDER BY c GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T;
SELECT COUNT(*) FROM T;
SELECT * FROM T AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
INSERT INTO T VALUES (NULL, NULL, NULL);
ALTER TABLE T ADD COLUMN extra_9504 DOUBLE COLLATE RTRIM;
SELECT * FROM T NATURAL JOIN T;
ANALYZE;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T VALUES (NULL, NULL, NULL);
WITH cte AS (SELECT CASE WHEN a > 0 THEN "pos" ELSE "neg" END AS sign FROM T) SELECT * FROM cte;
SELECT FIRST_VALUE(c) OVER (ORDER BY c ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
ALTER TABLE T ADD COLUMN extra_5697 BIGINT COLLATE NOCASE;
RELEASE sp4770;
PRAGMA short_column_names = OFF;
CREATE TRIGGER IF NOT EXISTS trg_T_534 AFTER UPDATE OF A ON T BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT * FROM T WHERE C = (SELECT GROUP_CONCAT(C) FROM T);
SAVEPOINT sp4770;
.limit
SAVEPOINT sp9818;
ATTACH DATABASE ':memory:' AS aux84;
SAVEPOINT sp2531;
.check
SAVEPOINT sp9694;
PRAGMA encoding = 'UTF-8';
ATTACH DATABASE ':memory:' AS aux44;
CREATE TABLE main.main.`T` (
a REAL,
b REAL,
c REAL
);
INSERT INTO T VALUES (strftime('%s', if(coalesce(NULL, NULL, NULL) -> sqrt(datetime(-(-(CAST(x'2f' AS BLOB))))), typeof(NULL), (0 + 9145485036963515638))),1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (SELECT * FROM T) SELEC_m * FROM T) SELEC_m * FROM T WHERE NOT NOT (NOT NOT (+b < 2.0)) ORDER BY b;
DETACH DATABASE aux44;
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T t2 WHERE t2.a = T.a);
INSERT INTO T VALUES (NULL, NULL, NULL);
INSERT OR ROLLBACK INTO T VALUES (NULL, NULL, '');
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE +x<21) SELECT * FROM cnt;
ALTER TABLE T DROP COLUMN b;
DROP VIEW IF EXISTS T;
SELECT ROW_NUMBER() OVER (ORDER BY a ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T;
INSERT OR ROLLBACK INTO T VALUES (-2, NULL, 0);
ROLLBACK TO sp9694;
RELEASE sp9694;
ALTER TABLE T ADD COLUMN extra_4532 UNSIGNED BIG INT DEFAULT (abs(random()) % 1000);
SELECT a, COUNT(*) FROM T GROUP BY a HAVING COUNT(*) = (SELECT COUNT(*) FROM T);
CREATE TRIGGER IF NOT EXISTS trg_T_7371 BEFORE UPDATE ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT COUNT(*) FROM T;
ROLLBACK TO sp2531;
RELEASE sp2531;
INSERT OR ABORT INTO T VALUES (6, 0, 0);
SELECT COUNT(*) FROM T;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION SELECT x+1 FROM cnt WHERE x<8) SELECT * FROM cnt;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<0) SELECT * FROM cnt;
DETACH DATABASE aux84;
SELECT * FROM T t1 JOIN T t2 ON t1.a = (SELECT a FROM T LIMIT 1);
ALTER TABLE T RENAME TO T_r9068;
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;
ROLLBACK TRANSACTION TO SAVEPOINT sp9818;
RELEASE SAVEPOINT sp9818;
SELECT STRING_AGG(a, '|') FROM T;
INSERT INTO T VALUES (NULL, NULL, NULL);
SELECT LEAD(a, 1, NULL) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T;
SELECT RANK() OVER (ORDER BY c GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T;
SELECT COUNT(*) FROM T;
SELECT * FROM T AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
INSERT INTO T VALUES (NULL, NULL, NULL);
ALTER TABLE T ADD COLUMN extra_9504 DOUBLE COLLATE RTRIM;
SELECT * FROM T NATURAL JOIN T;
ANALYZE;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T VALUES (NULL, NULL, NULL);
WITH cte AS (SELECT CASE WHEN a > 0 THEN "pos" ELSE "neg" END AS sign FROM T) SELECT * FROM cte;
SELECT FIRST_VALUE(c) OVER (ORDER BY c ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
ALTER TABLE T ADD COLUMN extra_5697 BIGINT COLLATE NOCASE;
RELEASE sp4770;
PRAGMA short_column_names = OFF;
CREATE TRIGGER IF NOT EXISTS trg_T_534 AFTER UPDATE OF A ON T BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT * FROM T WHERE C = (SELECT GROUP_CONCAT(C) FROM T);
SAVEPOINT sp4770;
.limit
SAVEPOINT sp9818;
ATTACH DATABASE ':memory:' AS aux84;
SAVEPOINT sp2531;
.check
SAVEPOINT sp9694;
PRAGMA encoding = 'UTF-8';
ATTACH DATABASE ':memory:' AS aux44;
CREATE TABLE main.main.`T` (
a REAL,
b REAL,
c REAL
);
INSERT INTO T VALUES (strftime('%s', if(coalesce(NULL, NULL, NULL) -> sqrt(datetime(-(-(CAST(x'2f' AS BLOB))))), typeof(NULL), (0 + 9145485036963515638))),1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (SELECT * FROM T) SELEC_m * FROM T) SELEC_m * FROM T WHERE NOT NOT (NOT NOT (+b < 2.0)) ORDER BY b;
DETACH DATABASE aux44;
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T t2 WHERE t2.a = T.a);
INSERT INTO T VALUES (NULL, NULL, NULL);
INSERT OR ROLLBACK INTO T VALUES (NULL, NULL, '');
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE +x<21) SELECT * FROM cnt;
ALTER TABLE T DROP COLUMN b;
DROP VIEW IF EXISTS T;
SELECT ROW_NUMBER() OVER (ORDER BY a ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T;
INSERT OR ROLLBACK INTO T VALUES (-2, NULL, 0);
ROLLBACK TO sp9694;
RELEASE sp9694;
ALTER TABLE T ADD COLUMN extra_4532 UNSIGNED BIG INT DEFAULT (abs(random()) % 1000);
SELECT a, COUNT(*) FROM T GROUP BY a HAVING COUNT(*) = (SELECT COUNT(*) FROM T);
CREATE TRIGGER IF NOT EXISTS trg_T_7371 BEFORE UPDATE ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT COUNT(*) FROM T;
ROLLBACK TO sp2531;
RELEASE sp2531;
INSERT OR ABORT INTO T VALUES (6, 0, 0);
SELECT COUNT(*) FROM T;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION SELECT x+1 FROM cnt WHERE x<8) SELECT * FROM cnt;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<0) SELECT * FROM cnt;
DETACH DATABASE aux84;
SELECT * FROM T t1 JOIN T t2 ON t1.a = (SELECT a FROM T LIMIT 1);
ALTER TABLE T RENAME TO T_r9068;
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;
ROLLBACK TRANSACTION TO SAVEPOINT sp9818;
RELEASE SAVEPOINT sp9818;
SELECT STRING_AGG(a, '|') FROM T;
INSERT INTO T VALUES (NULL, NULL, NULL);
SELECT LEAD(a, 1, NULL) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T;
SELECT RANK() OVER (ORDER BY c GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T;
SELECT COUNT(*) FROM T;
SELECT * FROM T AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
INSERT INTO T VALUES (NULL, NULL, NULL);
ALTER TABLE T ADD COLUMN extra_9504 DOUBLE COLLATE RTRIM;
SELECT * FROM T NATURAL JOIN T;
ANALYZE;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T VALUES (NULL, NULL, NULL);
WITH cte AS (SELECT CASE WHEN a > 0 THEN "pos" ELSE "neg" END AS sign FROM T) SELECT * FROM cte;
SELECT FIRST_VALUE(c) OVER (ORDER BY c ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
ALTER TABLE T ADD COLUMN extra_5697 BIGINT COLLATE NOCASE;
RELEASE sp4770;
PRAGMA short_column_names = OFF;
CREATE TRIGGER IF NOT EXISTS trg_T_534 AFTER UPDATE OF A ON T BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT * FROM T WHERE C = (SELECT GROUP_CONCAT(C) FROM T);
SAVEPOINT sp4770;
.limit
SAVEPOINT sp9818;
ATTACH DATABASE ':memory:' AS aux84;
SAVEPOINT sp2531;
.check
SAVEPOINT sp9694;
PRAGMA encoding = 'UTF-8';
ATTACH DATABASE ':memory:' AS aux44;
CREATE TABLE main.main.`T` (
a REAL,
b REAL,
c REAL
);
INSERT INTO T VALUES (strftime('%s', if(coalesce(NULL, NULL, NULL) -> sqrt(datetime(-(-(CAST(x'2f' AS BLOB))))), typeof(NULL), (0 + 9145485036963515638))),1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (SELECT * FROM T) SELEC_m * FROM T) SELEC_m * FROM T WHERE NOT NOT (NOT NOT (+b < 2.0)) ORDER BY b;
DETACH DATABASE aux44;
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T t2 WHERE t2.a = T.a);
INSERT INTO T VALUES (NULL, NULL, NULL);
INSERT OR ROLLBACK INTO T VALUES (NULL, NULL, '');
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE +x<21) SELECT * FROM cnt;
ALTER TABLE T DROP COLUMN b;
DROP VIEW IF EXISTS T;
SELECT ROW_NUMBER() OVER (ORDER BY a ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T;
INSERT OR ROLLBACK INTO T VALUES (-2, NULL, 0);
ROLLBACK TO sp9694;
RELEASE sp9694;
ALTER TABLE T ADD COLUMN extra_4532 UNSIGNED BIG INT DEFAULT (abs(random()) % 1000);
SELECT a, COUNT(*) FROM T GROUP BY a HAVING COUNT(*) = (SELECT COUNT(*) FROM T);
CREATE TRIGGER IF NOT EXISTS trg_T_7371 BEFORE UPDATE ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT COUNT(*) FROM T;
ROLLBACK TO sp2531;
RELEASE sp2531;
INSERT OR ABORT INTO T VALUES (6, 0, 0);
SELECT COUNT(*) FROM T;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION SELECT x+1 FROM cnt WHERE x<8) SELECT * FROM cnt;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<0) SELECT * FROM cnt;
DETACH DATABASE aux84;
SELECT * FROM T t1 JOIN T t2 ON t1.a = (SELECT a FROM T LIMIT 1);
ALTER TABLE T RENAME TO T_r9068;
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;
ROLLBACK TRANSACTION TO SAVEPOINT sp9818;
RELEASE SAVEPOINT sp9818;
SELECT STRING_AGG(a, '|') FROM T;
INSERT INTO T VALUES (NULL, NULL, NULL);
SELECT LEAD(a, 1, NULL) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T;
SELECT RANK() OVER (ORDER BY c GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T;
SELECT COUNT(*) FROM T;
SELECT * FROM T AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
INSERT INTO T VALUES (NULL, NULL, NULL);
ALTER TABLE T ADD COLUMN extra_9504 DOUBLE COLLATE RTRIM;
SELECT * FROM T NATURAL JOIN T;
ANALYZE;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T VALUES (NULL, NULL, NULL);
WITH cte AS (SELECT CASE WHEN a > 0 THEN "pos" ELSE "neg" END AS sign FROM T) SELECT * FROM cte;
SELECT FIRST_VALUE(c) OVER (ORDER BY c ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
ALTER TABLE T ADD COLUMN extra_5697 BIGINT COLLATE NOCASE;
RELEASE sp4770;
PRAGMA short_column_names = OFF;
CREATE TRIGGER IF NOT EXISTS trg_T_534 AFTER UPDATE OF A ON T BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT * FROM T WHERE C = (SELECT GROUP_CONCAT(C) FROM T);
SAVEPOINT sp4770;
.limit
SAVEPOINT sp9818;
ATTACH DATABASE ':memory:' AS aux84;
SAVEPOINT sp2531;
.check
SAVEPOINT sp9694;
PRAGMA encoding = 'UTF-8';
ATTACH DATABASE ':memory:' AS aux44;
CREATE TABLE main.main.`T` (
a REAL,
b REAL,
c REAL
);
INSERT INTO T VALUES (strftime('%s', if(coalesce(NULL, NULL, NULL) -> sqrt(datetime(-(-(CAST(x'2f' AS BLOB))))), typeof(NULL), (0 + 9145485036963515638))),1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (SELECT * FROM T) SELEC_m * FROM T) SELEC_m * FROM T WHERE NOT NOT (NOT NOT (+b < 2.0)) ORDER BY b;
DETACH DATABASE aux44;
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T t2 WHERE t2.a = T.a);
INSERT INTO T VALUES (NULL, NULL, NULL);
INSERT OR ROLLBACK INTO T VALUES (NULL, NULL, '');
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE +x<21) SELECT * FROM cnt;
ALTER TABLE T DROP COLUMN b;
DROP VIEW IF EXISTS T;
SELECT ROW_NUMBER() OVER (ORDER BY a ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T;
INSERT OR ROLLBACK INTO T VALUES (-2, NULL, 0);
ROLLBACK TO sp9694;
RELEASE sp9694;
ALTER TABLE T ADD COLUMN extra_4532 UNSIGNED BIG INT DEFAULT (abs(random()) % 1000);
SELECT a, COUNT(*) FROM T GROUP BY a HAVING COUNT(*) = (SELECT COUNT(*) FROM T);
CREATE TRIGGER IF NOT EXISTS trg_T_7371 BEFORE UPDATE ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT COUNT(*) FROM T;
ROLLBACK TO sp2531;
RELEASE sp2531;
INSERT OR ABORT INTO T VALUES (6, 0, 0);
SELECT COUNT(*) FROM T;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION SELECT x+1 FROM cnt WHERE x<8) SELECT * FROM cnt;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<0) SELECT * FROM cnt;
DETACH DATABASE aux84;
SELECT * FROM T t1 JOIN T t2 ON t1.a = (SELECT a FROM T LIMIT 1);
ALTER TABLE T RENAME TO T_r9068;
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;
ROLLBACK TRANSACTION TO SAVEPOINT sp9818;
RELEASE SAVEPOINT sp9818;
SELECT STRING_AGG(a, '|') FROM T;
INSERT INTO T VALUES (NULL, NULL, NULL);
SELECT LEAD(a, 1, NULL) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T;
SELECT RANK() OVER (ORDER BY c GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T;
SELECT COUNT(*) FROM T;
SELECT * FROM T AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
INSERT INTO T VALUES (NULL, NULL, NULL);
ALTER TABLE T ADD COLUMN extra_9504 DOUBLE COLLATE RTRIM;
SELECT * FROM T NATURAL JOIN T;
ANALYZE;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T VALUES (NULL, NULL, NULL);
WITH cte AS (SELECT CASE WHEN a > 0 THEN "pos" ELSE "neg" END AS sign FROM T) SELECT * FROM cte;
SELECT FIRST_VALUE(c) OVER (ORDER BY c ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
ALTER TABLE T ADD COLUMN extra_5697 BIGINT COLLATE NOCASE;
RELEASE sp4770;
PRAGMA short_column_names = OFF;
CREATE TRIGGER IF NOT EXISTS trg_T_534 AFTER UPDATE OF A ON T BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT * FROM T WHERE C = (SELECT GROUP_CONCAT(C) FROM T);
ALTER TABLE T RENAME TO T_r7047;
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T WHERE EXISTS (SELECT 1 FROM T));
CREATE INDEX IF NOT EXISTS idx_T_4760 ON T(lower(A));
```
## 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
```
## 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
```
## Flag
```
```
@@ -0,0 +1,194 @@
## 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
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 foreign_keys;
-- PRAGMA query_only = TRUE;
.connection
CREATE TABLE T (
a TEXT,
b TEXT,
c REAL
);
INSERT INTO T VALUES ('a','b',concat_ws(',', 1, 2, 3)), ('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;
ANALYZE;
ANALYZE T;
INSERT INTO T VALUES (NULL, NULL, NULL);
SELECT LAST_VALUE(b) OVER (PARTITION BY b ORDER BY b GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T;
SELECT COUNT(b) FROM T;
REINDEX;
SELECT COUNT(*) FROM T;
PRAGMA temp_store;
WITH cte(a, b, c) AS (SELECT c, c, c FROM T) SELECT a, b, c FROM cte;
PRAGMA foreign_keys;
-- PRAGMA query_only = TRUE;
.connection
CREATE TABLE T (
a TEXT,
b TEXT,
c REAL
);
INSERT INTO T VALUES ('a','b',concat_ws(',', 1, 2, 3)), ('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;
ANALYZE;
ANALYZE T;
INSERT INTO T VALUES (NULL, NULL, NULL);
SELECT LAST_VALUE(b) OVER (PARTITION BY b ORDER BY b GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T;
SELECT COUNT(b) FROM T;
REINDEX;
SELECT COUNT(*) FROM T;
PRAGMA temp_store;
WITH cte(a, b, c) AS (SELECT c, c, c FROM T) SELECT a, b, c FROM cte;
PRAGMA foreign_keys;
-- PRAGMA query_only = TRUE;
.connection
CREATE TABLE T (
a TEXT,
b TEXT,
c REAL
);
INSERT INTO T VALUES ('a','b',concat_ws(',', 1, 2, 3)), ('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;
ANALYZE;
ANALYZE T;
INSERT INTO T VALUES (NULL, NULL, NULL);
SELECT LAST_VALUE(b) OVER (PARTITION BY b ORDER BY b GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T;
SELECT COUNT(b) FROM T;
REINDEX;
SELECT COUNT(*) FROM T;
PRAGMA temp_store;
WITH cte(a, b, c) AS (SELECT c, c, c FROM T) SELECT a, b, c FROM cte;
PRAGMA foreign_keys;
-- PRAGMA query_only = TRUE;
.connection
CREATE TABLE T (
a TEXT,
b TEXT,
c REAL
);
INSERT INTO T VALUES ('a','b',concat_ws(',', 1, 2, 3)), ('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;
ANALYZE;
ANALYZE T;
INSERT INTO T VALUES (NULL, NULL, NULL);
SELECT LAST_VALUE(b) OVER (PARTITION BY b ORDER BY b GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T;
SELECT COUNT(b) FROM T;
REINDEX;
SELECT COUNT(*) FROM T;
PRAGMA temp_store;
WITH cte(a, b, c) AS (SELECT c, c, c FROM T) SELECT a, b, c FROM cte;
PRAGMA foreign_keys;
-- PRAGMA query_only = TRUE;
.connection
CREATE TABLE T (
a TEXT,
b TEXT,
c REAL
);
INSERT INTO T VALUES ('a','b',concat_ws(',', 1, 2, 3)), ('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;
ANALYZE;
ANALYZE T;
INSERT INTO T VALUES (NULL, NULL, NULL);
SELECT LAST_VALUE(b) OVER (PARTITION BY b ORDER BY b GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T;
SELECT COUNT(b) FROM T;
REINDEX;
SELECT COUNT(*) FROM T;
PRAGMA temp_store;
WITH cte(a, b, c) AS (SELECT c, c, c FROM T) SELECT a, b, c FROM cte;
PRAGMA foreign_keys;
-- PRAGMA query_only = TRUE;
.connection
CREATE TABLE T (
a TEXT,
b TEXT,
c REAL
);
INSERT INTO T VALUES ('a','b',concat_ws(',', 1, 2, 3)), ('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;
ANALYZE;
ANALYZE T;
INSERT INTO T VALUES (NULL, NULL, NULL);
SELECT LAST_VALUE(b) OVER (PARTITION BY b ORDER BY b GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T;
SELECT COUNT(b) FROM T;
REINDEX;
SELECT COUNT(*) FROM T;
PRAGMA temp_store;
WITH cte(a, b, c) AS (SELECT c, c, c FROM T) SELECT a, b, c FROM cte;
ALTER TABLE T ADD COLUMN extra_6385 DOUB DEFAULT CURRENT_TIMESTAMP;
ALTER TABLE T ADD COLUMN extra_2442 FLOA COLLATE NOCASE;
ALTER TABLE t1 ADD COLUMN extra_8702 TEXT DEFAULT (random());
SELECT COUNT(*) 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,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
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST(nullif(1, NULL) AS CHAR(10)), '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
.dump
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (cosh(1),1.5), (2,-2.5), (3,0.0);
CREATE INDEX c
ON T(b);
SELECT * FROM T WHERE NOT NOT (NOT b >= -2.5 AND b < 2.0) ;
REINDEX T;
UPDATE T SET b = CURRENT_TIMESTAMP WHERE 1 RETURNING *;
INSERT INTO T SELECT * FROM T;
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T WHERE a > 0);
CREATE TABLE T (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15),
C BIGINT,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', -9223372036854775808);
INSERT INTO T VALUES ('b', 'q', 4000);
INSERT INTO T VALUES ('c', 'r', 1700);
INSERT INTO T VALUES ('d', 'r', 9223372036854775807);
INSERT INTO T VALUES ('e', 's', 0);
SELECT A, C FROM T WHERE C > 1200 AND C < 9999999999 ORDER BY C;
WITH m AS MATERIALIZED (SELECT * FROM T) SELECT m.a FROM m JOIN m AS m2 ON m.a = m2.a;
ALTER TABLE T ADD COLUMN extra_7396 FLOA COLLATE NOCASE;
ALTER TABLE T ADD COLUMN extra_5763 BIGINT DEFAULT NULL;
SELECT * FROM T WHERE a IN (SELECT DISTINCT a FROM T);
DELETE FROM T WHERE rowid = 52;
DELETE FROM T WHERE 1;
SELECT STRING_AGG(b) FROM T;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_150 ON T((a + 1));
ALTER TABLE T RENAME COLUMN B TO B_r1410;
```
## 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,430 @@
## 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 incremental_vacuum(100);
.bail off
.clone new_db
BEGIN EXCLUSIVE TRANSACTION;
SAVEPOINT sp374;
ATTACH DATABASE (':memory:' || '') AS aux37;
ATTACH DATABASE ':memory:' AS aux69;
PRAGMA foreign_key_check;
CREATE TABLE t1(a CHARINT PRIMARY KEY, b TEXT, c INT, d INT);
-- PRAGMA legacy_alter_table = OFF;
INSERT INTO t1 VALUES (CAST(CAST((sinh(-concat_ws(NULL, 'a', 'b')) - '$') AS CHARINT) AS ANY), 'Wernher', exp(sqlite_compileoption_used(NULL)), sin(log10(jsonb_extract(total_changes(), '$.key'))));
INSERT INTO t1 VALUES (sqrt(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;
WITH _m AS MATERIALIZED (SELECT * FROM t0) SELECT b, c FROM t1 ORDER BY b, c;
.quit
SAVEPOINT sp9856;
SAVEPOINT sp8755;
ATTACH DATABASE ':memory:' AS aux98;
ATTACH DATABASE ':memory:' AS aux57;
.import corrup_m01.db main
BEGIN DEFERRED TRANSACTION;
CREATE TABLE t0(c0);
INSERT INTO t0(c0) VALUES (NULL);
CREATE INDEX i0 ON t0(-(-(json_extract((like('1%', 1, '\\') + 0), '$.key')))) WHERE NOT NOT (NOT c0 NOT NULL) ;
SELECT 1 FROM t0 WHERE (t0.c0 IS FALSE) IS FALSE;
SELECT 1 FROM t0 WHERE (t0.c0 IS FALSE) BETWEEN FALSE OR TRUE;
UPDATE t0 SET c0 = 'x' WHERE c0 BETWEEN 0 AND 100 RETURNING *;
ANALYZE t0;
SELECT * FROM t0 WHERE c0 IN (SELECT c0 FROM t0 ORDER BY c0 LIMIT 1 OFFSET 1000);
END;
ANALYZE;
SELECT * FROM t0 AS a LEFT JOIN t0 AS b ON a.rowid = b.rowid;
SELECT * FROM t0;
CREATE TEMP VIEW IF NOT EXISTS v_t0_2416 AS SELECT c0 FROM t0;
SELECT COUNT(*) FROM t0;
DETACH DATABASE aux57;
VACUUM main;
WITH cte AS (SELECT c0, SUM(c0) OVER (ORDER BY c0) AS running FROM t0) SELECT * FROM cte;
PRAGMA trusted_schema;
CREATE TEMP VIEW IF NOT EXISTS v_t0_3032 AS SELECT c0 FROM t0;
SELECT LEAD(c0, 2) OVER (ORDER BY c0) FROM t0;
DROP TABLE IF EXISTS t0;
WITH a AS (SELECT * FROM t0), b AS (SELECT * FROM t0) SELECT * FROM a UNION ALL SELECT * FROM b;
SELECT COUNT(*) FROM t0;
SELECT * FROM t0 AS a JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r7864;
DETACH DATABASE aux98;
ROLLBACK TRANSACTION TO SAVEPOINT sp8755;
RELEASE SAVEPOINT sp8755;
ALTER TABLE t0 ADD COLUMN extra_4590 CHARACTER(20) COLLATE RTRIM;
SAVEPOINT sp8755;
ATTACH DATABASE ':memory:' AS aux98;
ATTACH DATABASE ':memory:' AS aux57;
.import corrupt001.db main
BEGIN DEFERRED TRANSACTION;
CREATE TABLE t0(c0);
INSERT INTO t0(c0) VALUES (NULL);
CREATE INDEX i0 ON t0(-(-(json_extract((like('1%', 1, '\\') + 0), '$.key')))) WHERE c0 NOT NULL;
SELECT 1 FROM t0 WHERE (t0.c0 IS FALSE) IS FALSE;
SELECT 1 FROM t0 WHERE (t0.c0 IS FALSE) BETWEEN FALSE OR TRUE;
UPDATE t0 SET c0 = 'x' WHERE c0 BETWEEN 0 AND 100 RETURNING *;
ANALYZE t0;
SELECT * FROM t0 WHERE c0 IN (SELECT c0 FROM t0 ORDER BY c0 LIMIT 1 OFFSET 1000);
END;
ANALYZE;
SELECT * FROM t0 AS a INNER JOIN t0 AS b ON a.rowid = b.rowid;
SELECT * FROM t0;
CREATE TEMP VIEW IF NOT EXISTS v_t0_2416 AS SELECT c0 FROM t0;
SELECT COUNT(*) FROM t0;
DETACH DATABASE aux57;
VACUUM main;
WITH cte AS (SELECT c0, SUM(c0) OVER (ORDER BY c0) AS running FROM t0) SELECT * FROM cte;
PRAGMA trusted_schema;
CREATE TEMP VIEW IF NOT EXISTS v_t0_3032 AS SELECT c0 FROM t0;
SELECT LEAD(c0, 2) OVER (ORDER BY c0) FROM t0;
DROP TABLE IF EXISTS t0;
WITH a AS (SELECT * FROM t0), b AS (SELECT * FROM t0) SELECT * FROM a UNION ALL SELECT * FROM b;
SELECT COUNT(*) FROM t0;
SELECT * FROM t0 AS a JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r7864;
DETACH DATABASE aux98;
ROLLBACK TRANSACTION TO SAVEPOINT sp8755;
RELEASE SAVEPOINT sp8755;
ALTER TABLE t0 ADD COLUMN extra_4590 CHARACTER(20) COLLATE RTRIM;
SAVEPOINT sp8755;
ATTACH DATABASE ':memory:' AS aux98;
ATTACH DATABASE ':memory:' AS aux57;
.import corrupt001.db main
BEGIN DEFERRED TRANSACTION;
CREATE TABLE t0(c0);
INSERT INTO t0(c0) VALUES (NULL);
CREATE INDEX i0 ON t0(-(-(json_extract((like('1%', 1, '\\') + 0), '$.key')))) WHERE c0 NOT NULL;
SELECT 1 FROM t0 WHERE (t0.c0 IS FALSE) IS FALSE;
SELECT 1 FROM t0 WHERE (t0.c0 IS FALSE) BETWEEN FALSE OR TRUE;
UPDATE t0 SET c0 = 'x' WHERE c0 BETWEEN 0 AND 100 RETURNING *;
ANALYZE t0;
SELECT * FROM t0 WHERE c0 IN (SELECT c0 FROM t0 ORDER BY c0 LIMIT 1 OFFSET 1000);
END;
ANALYZE;
SELECT * FROM t0 AS a INNER JOIN t0 AS b ON a.rowid = b.rowid;
SELECT * FROM t0;
CREATE TEMP VIEW IF NOT EXISTS v_t0_2416 AS SELECT c0 FROM t0;
SELECT COUNT(*) FROM t0;
DETACH DATABASE aux57;
VACUUM main;
WITH cte AS (SELECT c0, SUM(c0) OVER (ORDER BY c0) AS running FROM t0) SELECT * FROM cte;
PRAGMA trusted_schema;
CREATE TEMP VIEW IF NOT EXISTS v_t0_3032 AS SELECT c0 FROM t0;
SELECT LEAD(c0, 2) OVER (ORDER BY c0) FROM t0;
DROP TABLE IF EXISTS t0;
WITH a AS (SELECT * FROM t0), b AS (SELECT * FROM t0) SELECT * FROM a UNION ALL SELECT * FROM b;
SELECT COUNT(*) FROM t0;
SELECT * FROM t0 AS a JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r7864;
DETACH DATABASE aux98;
ROLLBACK TRANSACTION TO SAVEPOINT sp8755;
RELEASE SAVEPOINT sp8755;
ALTER TABLE t0 ADD COLUMN extra_4590 CHARACTER(20) COLLATE RTRIM;
SAVEPOINT sp8755;
ATTACH DATABASE ':memory:' AS aux98;
ATTACH DATABASE ':memory:' AS aux57;
.import corrupt001.db main
BEGIN DEFERRED TRANSACTION;
CREATE TABLE t0(c0);
INSERT INTO t0(c0) VALUES (NULL);
CREATE INDEX i0 ON t0(-(-(json_extract((like('1%', 1, '\\') + 0), '$.key')))) WHERE c0 NOT NULL;
SELECT 1 FROM t0 WHERE (t0.c0 IS FALSE) IS FALSE;
SELECT 1 FROM t0 WHERE (t0.c0 IS FALSE) BETWEEN FALSE OR TRUE;
UPDATE t0 SET c0 = 'x' WHERE c0 BETWEEN 0 AND 100 RETURNING *;
ANALYZE t0;
SELECT * FROM t0 WHERE c0 IN (SELECT c0 FROM t0 ORDER BY c0 LIMIT 1 OFFSET 1000);
END;
ANALYZE;
SELECT * FROM t0 AS a INNER JOIN t0 AS b ON a.rowid = b.rowid;
SELECT * FROM t0;
CREATE TEMP VIEW IF NOT EXISTS v_t0_2416 AS SELECT c0 FROM t0;
SELECT COUNT(*) FROM t0;
DETACH DATABASE aux57;
VACUUM main;
WITH cte AS (SELECT c0, SUM(c0) OVER (ORDER BY c0) AS running FROM t0) SELECT * FROM cte;
PRAGMA trusted_schema;
CREATE TEMP VIEW IF NOT EXISTS v_t0_3032 AS SELECT c0 FROM t0;
SELECT LEAD(c0, 2) OVER (ORDER BY c0) FROM t0;
DROP TABLE IF EXISTS t0;
WITH a AS (SELECT * FROM t0), b AS (SELECT * FROM t0) SELECT /* PRAGMA defer_foreign_keys = OFF; */ * FROM a UNION ALL SELECT * FROM b;
SELECT COUNT(*) FROM t0;
SELECT * FROM t0 AS a JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r7864;
DETACH DATABASE aux98;
ROLLBACK TRANSACTION TO SAVEPOINT sp8755;
RELEASE SAVEPOINT sp8755;
ALTER TABLE t0 ADD COLUMN extra_4590 CHARACTER(20) COLLATE RTRIM;
SAVEPOINT sp8755;
ATTACH DATABASE ':memory:' AS aux98;
ATTACH DATABASE ':memory:' AS aux57;
.import corrupt001.db main
BEGIN DEFERRED TRANSACTION;
CREATE TABLE t0(c0);
INSERT INTO t0(c0) VALUES (NULL);
CREATE INDEX i0 ON t0(-(-(json_extract((like('1%', 1, '\\') + 0), '$.key')))) WHERE c0 NOT NULL;
SELECT 1 FROM t0 WHERE (t0.c0 IS FALSE) IS FALSE;
SELECT 1 FROM t0 WHERE (t0.c0 IS FALSE) BETWEEN FALSE OR TRUE;
UPDATE t0 SET c0 = 'x' WHERE c0 BETWEEN 0 AND 100 RETURNING *;
ANALYZE t0;
SELECT * FROM t0 WHERE c0 IN (SELECT c0 FROM t0 ORDER BY c0 LIMIT 1 OFFSET 1000);
END;
ANALYZE;
SELECT * FROM t0 AS a INNER JOIN t0 AS b ON a.rowid = b.rowid;
SELECT * FROM t0;
CREATE TEMP VIEW IF NOT EXISTS v_t0_2416 AS SELECT c0 FROM t0;
SELECT COUNT(*) FROM t0;
DETACH DATABASE aux57;
VACUUM main;
WITH cte AS (SELECT c0, SUM(c0) OVER (ORDER BY c0) AS running FROM t0) SELECT * FROM cte;
PRAGMA trusted_schema;
CREATE TEMP VIEW IF NOT EXISTS v_t0_3032 AS SELECT c0 FROM t0;
SELECT LEAD(c0, 2) OVER (ORDER BY c0) FROM t0;
DROP TABLE IF EXISTS t0;
WITH a AS (SELECT * FROM t0), b AS (SELECT * FROM t0) SELECT * FROM a UNION ALL SELECT * FROM b;
SELECT COUNT(*) FROM t0;
SELECT * FROM t0 AS a JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r7864;
DETACH DATABASE aux98;
ROLLBACK TRANSACTION TO SAVEPOINT sp8755;
RELEASE SAVEPOINT sp8755;
ALTER TABLE t0 ADD COLUMN extra_4590 CHARACTER(20) COLLATE RTRIM;
SAVEPOINT sp8755;
ATTACH DATABASE ':memory:' AS aux98;
ATTACH DATABASE ':memory:' AS aux57;
.import corrupt001.db main
BEGIN DEFERRED TRANSACTION;
CREATE TABLE t0(c0);
INSERT INTO t0(c0) VALUES (NULL);
CREATE INDEX i0 ON t0(-(-(json_extract((like('1%', 1, '\\') + 0), '$.key')))) WHERE c0 NOT NULL;
SELECT 1 FROM t0 WHERE (t0.c0 IS FALSE) IS FALSE;
SELECT 1 FROM t0 WHERE (t0.c0 IS FALSE) BETWEEN FALSE OR TRUE;
UPDATE t0 SET c0 = 'x' WHERE c0 /* hex(NULL) */ BETWEEN 0 AND 100 RETURNING *;
ANALYZE t0;
SELECT * FROM t0 WHERE c0 IN (SELECT c0 FROM t0 ORDER BY c0 LIMIT 1 OFFSET 1000);
END;
ANALYZE;
SELECT * FROM t0 AS a INNER JOIN t0 AS b ON a.rowid = b.rowid;
SELECT * FROM t0;
CREATE TEMP VIEW IF NOT EXISTS v_t0_2416 AS SELECT c0 FROM t0;
SELECT COUNT(*) FROM t0;
DETACH DATABASE aux57;
VACUUM main;
WITH cte AS (SELECT c0, SUM(c0) OVER (ORDER BY c0) AS running FROM t0) SELECT * FROM cte;
PRAGMA trusted_schema;
CREATE TEMP VIEW IF NOT EXISTS v_t0_3032 AS SELECT c0 FROM t0;
SELECT LEAD(c0, 2) OVER (ORDER BY c0) FROM t0;
DROP TABLE IF EXISTS t0;
WITH a AS (SELECT * FROM t0), b AS (SELECT * FROM t0) SELECT * FROM a UNION ALL SELECT * FROM b;
SELECT COUNT(*) FROM t0;
SELECT * FROM t0 AS a JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r7864;
DETACH DATABASE aux98;
ROLLBACK TRANSACTION TO SAVEPOINT sp8755;
RELEASE SAVEPOINT sp8755;
ALTER TABLE t0 ADD COLUMN extra_4590 CHARACTER(20) COLLATE RTRIM;
SAVEPOINT sp8755;
ATTACH DATABASE ':memory:' AS aux98;
ATTACH DATABASE ':memory:' AS aux57;
.import corrupt001.db main
BEGIN DEFERRED TRANSACTION;
CREATE TABLE t0(c0);
INSERT INTO t0(c0) VALUES (NULL);
CREATE INDEX i0 ON t0(-(-(json_extract((like('1%', 1, '\\') + 0), '$.key')))) WHERE c0 NOT NULL;
SELECT 1 FROM t0 WHERE (t0.c0 IS FALSE) IS FALSE;
SELECT 1 FROM t0 WHERE (t0.c0 IS FALSE) BETWEEN FALSE OR TRUE;
UPDATE t0 SET c0 = 'x' WHERE c0 BETWEEN 0 AND 100 RETURNING *;
ANALYZE t0;
SELECT * FROM t0 WHERE c0 IN (SELECT c0 FROM t0 ORDER BY c0 LIMIT 1 OFFSET 1000);
END;
ANALYZE;
SELECT * FROM t0 AS a INNER JOIN t0 AS b ON a.rowid = b.rowid;
SELECT * FROM t0;
CREATE TEMP VIEW IF NOT EXISTS v_t0_2416 AS SELECT c0 FROM t0;
SELECT COUNT(*) FROM t0;
DETACH DATABASE aux57;
VACUUM main;
WITH cte AS (SELECT c0, SUM(c0) OVER (ORDER BY c0) AS running FROM t0) SELECT * FROM cte;
PRAGMA trusted_schema;
CREATE TEMP VIEW IF NOT EXISTS v_t0_3032 AS SELECT c0 FROM t0;
SELECT LEAD(c0, 2) OVER (ORDER BY c0) FROM t0;
DROP TABLE IF EXISTS t0;
WITH a AS (SELECT * FROM t0), b AS (SELECT * FROM t0) SELECT * FROM a UNION ALL SELECT * FROM b;
SELECT COUNT(*) FROM t0;
SELECT * FROM t0 AS a JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r7864;
DETACH DATABASE aux98;
ROLLBACK TRANSACTION TO SAVEPOINT sp8755;
RELEASE SAVEPOINT sp8755;
ALTER TABLE t0 ADD COLUMN extra_4590 CHARACTER(20) COLLATE RTRIM;
SAVEPOINT sp8755;
ATTACH DATABASE ':memory:' AS aux98;
CREATE TABLE T (
a TEXT,
b INTEGER,
c REAL
);
INSERT INTO T VALUES ('a',1,2.0), ('a',2,-3.0), ('b',1,4.5);
SELECT a,b,c,
SUM(c) OVER (
PARTITION BY a
ORDER BY b
) AS d
FROM T;
ATTACH DATABASE ':memory:' AS aux57;
.import corrupt001.db main
BEGIN DEFERRED TRANSACTION;
CREATE TABLE t0(c0);
INSERT INTO t0(c0) VALUES (NULL);
CREATE INDEX i0 ON t0(-(-(json_extract((like('1%', 1, '\\') + 0), '$.key')))) WHERE c0 NOT NULL;
SELECT 1 FROM t0 WHERE (t0.c0 IS FALSE) IS FALSE;
SELECT 1 FROM t0 WHERE (t0.c0 IS FALSE) BETWEEN FALSE OR TRUE;
UPDATE t0 SET c0 = 'x' WHERE c0 BETWEEN 0 AND 100 RETURNING *;
ANALYZE t0;
SELECT * FROM t0 WHERE c0 IN (SELECT c0 FROM t0 ORDER BY c0 LIMIT 1 OFFSET 1000);
END;
ANALYZE;
SELECT * FROM t0 AS a INNER JOIN t0 AS b ON a.rowid = b.rowid;
SELECT * FROM t0;
CREATE TEMP VIEW IF NOT EXISTS v_t0_2416 AS SELECT c0 FROM t0;
SELECT COUNT(*) FROM t0;
DETACH DATABASE aux57;
VACUUM main;
WITH cte AS (SELECT c0, SUM(c0) OVER (ORDER BY c0) AS running FROM t0) SELECT * FROM cte;
PRAGMA trusted_schema;
CREATE TEMP VIEW IF NOT EXISTS v_t0_3032 AS SELECT c0 FROM t0;
SELECT LEAD(c0, 2) OVER (ORDER BY c0) FROM t0;
DROP TABLE IF EXISTS t0;
WITH a AS (SELECT * FROM t0), b AS (SELECT * FROM t0) SELECT * FROM a UNION ALL SELECT * FROM b;
SELECT COUNT(*) FROM t0;
SELECT * FROM t0 AS a JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r7864;
DETACH DATABASE aux98;
ROLLBACK TRANSACTION TO SAVEPOINT sp8755;
RELEASE SAVEPOINT sp8755;
ALTER TABLE t0 ADD COLUMN extra_4590 CHARACTER(20) COLLATE RTRIM;
SAVEPOINT sp8755;
ATTACH DATABASE ':memory:' AS aux98;
ATTACH DATABASE ':memory:' AS aux57;
.import corrupt001.db main
BEGIN DEFERRED TRANSACTION;
CREATE TABLE t0(c0);
INSERT INTO t0(c0) VALUES (NULL);
CREATE INDEX i0 ON t0(-(-(json_extract((like('1%', 1, '\\') + 0), '$.key')))) WHERE c0 NOT NULL;
SELECT 1 FROM t0 WHERE (t0.c0 IS FALSE) IS FALSE;
SELECT 1 FROM t0 WHERE (t0.c0 IS FALSE) BETWEEN FALSE OR TRUE;
UPDATE t0 SET c0 = 'x' WHERE c0 BETWEEN 0 AND 100 RETURNING *;
ANALYZE t0;
SELECT * FROM t0 WHERE c0 IN (SELECT c0 FROM t0 ORDER BY c0 LIMIT 1 OFFSET 1000);
END;
ANALYZE;
SELECT * FROM t0 AS a INNER JOIN t0 AS b ON a.rowid = b.rowid;
SELECT * FROM t0;
CREATE TEMP VIEW IF NOT EXISTS v_t0_2416 AS SELECT c0 FROM t0;
SELECT COUNT(*) FROM t0;
DETACH DATABASE aux57;
VACUUM main;
WITH cte AS (SELECT c0, SUM(c0) OVER (ORDER BY c0) AS running FROM t0) SELECT * FROM cte;
PRAGMA trusted_schema;
CREATE TEMP VIEW IF NOT EXISTS v_t0_3032 AS SELECT c0 FROM t0;
SELECT LEAD(c0, 2) OVER (ORDER BY c0) FROM t0;
DROP TABLE IF EXISTS t0;
WITH a AS (SELECT * FROM t0), b AS (SELECT * FROM t0) SELECT * FROM a UNION ALL SELECT * FROM b;
SELECT COUNT(*) FROM t0;
SELECT * FROM t0 AS a JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r7864;
DETACH DATABASE aux98;
ROLLBACK TRANSACTION TO SAVEPOINT sp8755;
RELEASE SAVEPOINT sp8755;
ALTER TABLE t0 ADD COLUMN extra_4590 CHARACTER(20) COLLATE RTRIM;
INSERT INTO t0 VALUES (NULL) ON CONFLICT(c0) DO UPDATE SET c0 = excluded.c0;
ALTER TABLE t0 RENAME COLUMN c0 TO c0_r3992;
RELEASE sp9856;
ALTER TABLE t0 ADD COLUMN extra_4953 ANY UNIQUE;
ALTER TABLE t0 DROP COLUMN c0;
DETACH DATABASE aux69;
WITH cte AS (SELECT NULL AS x) SELECT COALESCE(x, 0) FROM cte;
DELETE FROM t0 WHERE 0 RETURNING *;
SELECT * FROM t0 WHERE c0 IN (SELECT c0 FROM t0 WHERE ROW_NUMBER() OVER (ORDER BY c0) = 1);
INSERT OR FAIL INTO t0 VALUES (0);
INSERT INTO t0 DEFAULT VALUES;
DETACH DATABASE aux37;
ALTER TABLE t1 RENAME TO t1_r9055;
DELETE FROM t0 WHERE 1;
ALTER TABLE t1 RENAME COLUMN b TO b_r879;
VACUUM;
PRAGMA full_column_names = FALSE;
CREATE INDEX IF NOT EXISTS idx_t0_8212 ON t0(c0);
CREATE TEMPORARY VIEW IF NOT EXISTS v_t0_856 AS SELECT c0 FROM t0;
SELECT MAX(b) FROM t1;
ALTER TABLE t0 RENAME TO t0_r2529;
SELECT * FROM t1;
SELECT * FROM t0 CROSS JOIN t1;
REINDEX;
SELECT COUNT(*) FROM t1;
SELECT * FROM t0 WHERE c0 NOT IN (SELECT c0 FROM t0 WHERE c0 IS NULL);
INSERT INTO t0 SELECT * FROM t0;
DELETE FROM t0 WHERE 0;
ROLLBACK TO sp374;
RELEASE sp374;
PRAGMA vdbe_addoptrace = ON;
INSERT INTO t1 VALUES (NULL, 1, 1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
ANALYZE;
UPDATE t1 SET a = json_object('k', a) WHERE a IS NOT NULL;
END TRANSACTION;
INSERT INTO t1 DEFAULT VALUES;
CREATE TRIGGER IF NOT EXISTS trg_t1_8796 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
INSERT INTO T SELECT * FROM T;
SELECT TOTAL(b) FROM T;
INSERT OR ABORT INTO T VALUES ('', 0, '');
UPDATE t1 SET a = 'x' WHERE a IS NOT NULL;
DROP TRIGGER IF EXISTS t1;
SELECT COUNT(*) FILTER (WHERE b IS NOT NULL), SUM(rowid) FILTER (WHERE b > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(b) FILTER (WHERE b > 0 AND b < 100), COUNT(*) FILTER (WHERE typeof(b) = "text") FROM T;
SELECT * FROM T;
INSERT INTO t1 DEFAULT VALUES;
INSERT INTO t1 VALUES ('x', 1, 'x', 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
INSERT OR IGNORE INTO T VALUES (5, 7, 7);
CREATE TEMPORARY VIEW IF NOT EXISTS v_t0_1374 AS SELECT c0 FROM t0;
DELETE FROM t1 WHERE c > (SELECT AVG(c) FROM t1) RETURNING *;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<0) SELECT * FROM cnt;
INSERT INTO t0 SELECT * FROM t0;
CREATE INDEX IF NOT EXISTS idx_T_8281 ON T(b COLLATE NOCASE) WHERE b > 0;
ALTER TABLE t1 RENAME TO t1_r1412;
VACUUM main;
REINDEX;
ALTER TABLE t0 DROP COLUMN c0;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, '', 0, NULL);
SELECT * FROM T;
ALTER TABLE t1 ADD COLUMN extra_8623 CHARINT COLLATE NOCASE;
SELECT b, (SELECT AVG(b) FROM T) AS avg_val 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|2
von|20|1
Braun|30
von|20
```
## Expectation
```sql
```
## Flag
```
```
@@ -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 wal_checkpoint('PASSIVE');
.prompt 'IPA eli isopropanoli on loistava puhdistusaine joka irrataa'
.width -(-((x'ff77' + jsonb_array(1)))) 2 3
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
-- PRAGMA empty_result_callbacks;
INSERT INTO t1 VALUES (CAST(nullif(1, NULL) AS CHAR(10)), '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
.dump
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (cosh(1),1.5), (2,-2.5), (3,0.0);
CREATE INDEX c
ON T(b);
SELECT * FROM T WHERE NOT NOT (NOT NOT (NOT b >= -2.5 AND b < 2.0)) ;
REINDEX T;
UPDATE T SET b = CURRENT_TIMESTAMP WHERE 1 RETURNING *;
INSERT INTO T SELECT * FROM T;
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T WHERE +a > 0);
CREATE TABLE T (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15),
C BIGINT,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', -9223372036854775808);
INSERT INTO T VALUES ('b', 'q', 4000);
INSERT INTO T VALUES ('c', 'r', 1700);
INSERT INTO T VALUES ('d', 'r', 9223372036854775807);
INSERT INTO T VALUES ('e', 's', 0);
SELECT A, C FROM T WHERE +C > 1200 AND C < 9999999999 ORDER BY C;
WITH m AS MATERIALIZED (SELECT * FROM T) SELECT m.a FROM m JOIN m AS m2 ON m.a = m2.a;
ALTER TABLE T ADD COLUMN extra_7396 FLOA COLLATE NOCASE;
ALTER TABLE T ADD COLUMN extra_5763 BIGINT DEFAULT NULL;
SELECT * FROM T WHERE a IN (SELECT DISTINCT a FROM T);
DELETE FROM T WHERE +rowid = 52;
DELETE FROM T WHERE 1;
SELECT STRING_AGG(b) FROM T;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_150 ON T((a + 1));
ALTER TABLE T RENAME COLUMN B TO B_r1410;
ALTER TABLE t1 DROP COLUMN a;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
ALTER TABLE t1 DROP COLUMN d;
VACUUM;
INSERT INTO T SELECT * FROM T;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_2079 ON T(C COLLATE NOCASE) WHERE C IS NOT NULL;
INSERT INTO T VALUES (1, 1, 'x') ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
```
## 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
```
```
@@ -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
BEGIN IMMEDIATE TRANSACTION;
.tables non_existent_table
CREATE TABLE T (
a INTEGER,
b TEXT,
c INTEGER
);
INSERT INTO T VALUES ((0 + 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 cache_spill = 0;
CREATE TABLE main.artists (id integer NOT NULL PRIMARY KEY AUTOINCREMENT, name varchar(255));
CREATE TABLE albums ( id integer NOT NULL PRIMARY KEY AUTOINCREMENT, name varchar(255), artist_id integer REFERENCES artists);
INSERT INTO artists (name) VALUES ('Ar');
INSERT INTO albums (name, artist_id) VALUES ('Al', 1);
SELECT artists.* FROM artists INNER JOIN artists AS b ON (b.id = artists.id) WHERE (artists.id IN ( SELECT albums.artist_id FROM albums WHERE ((name = 'Al') AND (albums.artist_id IS NOT NULL) AND (albums.id IN ( SELECT id FROM ( SELECT albums.id, row_number() OVER (PARTITION BY /**/ albums.artist_id ORDER BY name) AS x FROM albums WHERE (name = 'Al') ) AS t1 WHERE (x = 1) )) AND (albums.id IN (1, 2))) ));
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
ANALYZE;
REINDEX albums;
REINDEX artists;
SELECT AVG(id) FROM artists;
ALTER TABLE t1 DROP COLUMN c;
DELETE FROM t1 WHERE 0 RETURNING *;
SELECT AVG(b) FROM t1;
CREATE TRIGGER IF NOT EXISTS trg_T_5677 BEFORE UPDATE ON T FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END;
WITH cte AS (SELECT a, COUNT(*) AS cnt FROM t1 GROUP BY a) SELECT * FROM cte WHERE cnt > 1;
INSERT INTO t1 SELECT * FROM t1;
UPDATE albums SET artist_id = artist_id + 1 WHERE artist_id IS NOT NULL RETURNING *;
END;
SELECT DENSE_RANK() OVER (PARTITION BY a ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
```
## Actual output
```sql
1|a||1
2|b|1|2
3|c|2|3
1|Ar
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|a||1
2|b|1|2
3|c|2|3
1|Ar
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,379 @@
## 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 aux78;
.limit
CREATE TABLE T1 (
a INTEGER,
b REAL
);
CREATE TABLE T2 (
a INTEGER,
b REAL
);
INSERT INTO T1 VALUES (ifnull(timediff(concat_ws(',', CAST(upper(-(-(-6.283185307179586))) AS INT2), 2, 3), 1), 2),1.0);
INSERT INTO T2 VALUES (1,-1.0),(2,9e999);
INSERT OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
PRAGMA writable_schema = YES;
SAVEPOINT sp6649;
ATTACH DATABASE ':memory:' AS aux69;
.quit
.trace
CREATE TABLE main.T (
a DOUBLE,
b TEXT,
c REAL
);
INSERT INTO T VALUES (CAST(json_array_length(if(CAST(-(-(length(randomblob(CAST(mod(1.7976931348623157e+308, 1465368752231950166) AS INTEGER))))) AS TINYINT), 1, 0, 1, 0, 1), '$') AS NUMERIC),'a',3.14), (1,'b',-7.75), (2,'c',-9e999);
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT b,a,c,
RANK() OVER (PARTITION BY a ORDER BY c DESC) AS d FROM T;
ATTACH DATABASE ':memory:' AS aux86;
PRAGMA full_column_names = YES;
DROP TABLE IF EXISTS _m;
CREATE TABLE t1 (c0, c1 REAL PRIMARY KEY);
INSERT INTO t1(c0, c1) VALUES ('{', -(-(1))), (0, 0);
UPDATE t1 SET c0 = NULL;
UPDATE OR REPLACE t1 SET c1 = 1;
SELECT DISTINCT * FROM t1 WHERE NOT NOT (NOT NOT (t1.c0 IS NULL)) ;
PRAGMA integrity_check;
SELECT COUNT(*) FROM t1;
SELECT * FROM t1;
DETACH DATABASE aux86;
REINDEX;
ALTER TABLE T ADD COLUMN extra_5481 BLOB NOT NULL DEFAULT 0;
SELECT COUNT(*) FROM T;
CREATE TABLE T1 (
A VARCHAR(15) PRIMARY KEY,
B VARCHAR(30) NOT NULL UNIQUE
);
CREATE TABLE T2 (
A VARCHAR(10) PRIMARY KEY,
X VARCHAR(15) NOT NULL,
C BIGINT,
FOREIGN KEY (X) REFERENCES T1(A)
);
INSERT INTO T1 VALUES ('p', 'x');
INSERT INTO T1 VALUES ('q', 'y');
INSERT INTO T2 VALUES ('a', 'p', 9223372036854775807);
INSERT INTO T2 VALUES ('b', 'q', -9223372036854775808);
SELECT X, SUM(C) AS D, COUNT(*) AS E FROM T2 GROUP BY X;
SELECT LAG(c0, 2, 'default') OVER (PARTITION BY c0 ORDER BY c0 ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
SELECT * FROM t1;
CREATE VIEW IF NOT EXISTS v_t1_6883 AS SELECT c1 FROM t1;
ALTER TABLE t1 ADD COLUMN extra_3184 INT2 COLLATE NOCASE;
SELECT * FROM t1;
REINDEX;
SELECT c, COUNT(*) FROM T GROUP BY c HAVING COUNT(*) = (SELECT COUNT(*) 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;
PRAGMA temp_store = 'MEMORY';
VACUUM main;
SELECT * FROM T1 WHERE EXISTS (SELECT 1 FROM T1 WHERE 1 = 0);
SELECT * FROM T1 WHERE A <> ANY (SELECT A FROM T1);
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5592 AS SELECT c0 FROM t1;
REINDEX T2;
UPDATE T SET b = json_object('k', b);
DETACH DATABASE aux69;
DROP INDEX IF EXISTS T1;
SELECT STRING_AGG(C) FROM T2;
ROLLBACK TO sp6649;
RELEASE sp6649;
INSERT OR ABORT INTO T2 VALUES ('x', -9, -9);
SELECT COUNT(*) FILTER (WHERE c1 IS NOT NULL), SUM(rowid) FILTER (WHERE c1 > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c1) FILTER (WHERE c1 > 0 AND c1 < 100), COUNT(*) FILTER (WHERE typeof(c1) = "text") FROM t1;
ALTER TABLE T RENAME COLUMN b TO b_r9085;
INSERT INTO t1 DEFAULT VALUES;
SELECT GROUP_CONCAT(A, '|') FROM T2;
INSERT OR ROLLBACK INTO T1 VALUES (6, '');
WITH RECURSIVE tree(id, path) AS (VALUES(1, "/1") UNION ALL SELECT id+1, path || "/" || (id+1) FROM tree WHERE id<14) SELECT * FROM tree;
CREATE VIEW IF NOT EXISTS v_T1_7673 AS SELECT 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;
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 OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
SELECT COUNT(c) FROM T;
UPDATE T SET a = a + 1 WHERE 1;
ALTER TABLE T ADD COLUMN extra_6983 DATETIME DEFAULT CURRENT_TIMESTAMP;
INSERT INTO T2 VALUES (NULL, NULL);
.limit
CREATE TABLE T1 (
a INTEGER,
b REAL
);
CREATE TABLE T2 (
a INTEGER,
b REAL
);
INSERT INTO T1 VALUES (ifnull(timediff(concat_ws(',', CAST(upper(1) AS INT2), 2, 3), 1), 2),1.0);
INSERT INTO T2 VALUES (1,-1.0),(2,9e999);
INSERT OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
PRAGMA writable_schema = YES;
SAVEPOINT sp6649;
ATTACH DATABASE ':memory:' AS aux69;
.quit
.trace
CREATE TABLE T (
a DOUBLE,
b TEXT,
c REAL
);
INSERT INTO T VALUES (CAST(json_array_length(if(CAST(-(-(length(randomblob(CAST(mod(1.7976931348623157e+308, 1465368752231950166) AS INTEGER))))) AS TINYINT), 1, 0, 1, 0, 1), '$') AS NUMERIC),'a',3.14), (1,'b',-7.75), (2,'c',-9e999);
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT b,a,c,
RANK() OVER (PARTITION BY a ORDER BY c DESC) AS d FROM T;
ATTACH DATABASE ':memory:' AS aux86;
PRAGMA full_column_names = YES;
DROP TABLE IF EXISTS _m;
CREATE TABLE t1 (c0, c1 REAL PRIMARY KEY);
INSERT INTO t1(c0, c1) VALUES ('{', -(-(1))), (0, 0);
UPDATE t1 SET c0 = NULL;
UPDATE OR REPLACE t1 SET c1 = 1;
SELECT DISTINCT * FROM t1 WHERE NOT NOT (t1.c0 IS NULL);
PRAGMA integrity_check;
SELECT COUNT(*) FROM t1;
SELECT * FROM t1;
DETACH DATABASE aux86;
REINDEX;
ALTER TABLE T ADD COLUMN extra_5481 BLOB NOT NULL DEFAULT 0;
SELECT COUNT(*) FROM T;
CREATE TABLE T1 (
A VARCHAR(15) PRIMARY KEY,
B VARCHAR(30) NOT NULL UNIQUE
);
CREATE TABLE T2 (
A VARCHAR(10) PRIMARY KEY,
X VARCHAR(15) NOT NULL,
C BIGINT,
FOREIGN KEY (X) REFERENCES T1(A)
);
INSERT INTO T1 VALUES ('p', 'x');
INSERT INTO T1 VALUES ('q', 'y');
INSERT INTO T2 VALUES ('a', 'p', 9223372036854775807);
INSERT INTO T2 VALUES ('b', 'q', -9223372036854775808);
SELECT X, SUM(C) AS D, COUNT(*) AS E FROM T2 GROUP BY X;
SELECT LAG(c0, 2, 'default') OVER (PARTITION BY c0 ORDER BY c0 ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
SELECT * FROM t1;
CREATE VIEW IF NOT EXISTS v_t1_6883 AS SELECT c1 FROM t1;
ALTER TABLE t1 ADD COLUMN extra_3184 INT2 COLLATE NOCASE;
SELECT * FROM t1;
REINDEX;
SELECT c, COUNT(*) FROM T GROUP BY c HAVING COUNT(*) = (SELECT COUNT(*) 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;
PRAGMA temp_store = 'MEMORY';
VACUUM main;
SELECT * FROM T1 WHERE EXISTS (SELECT 1 FROM T1 WHERE 1 = 0);
SELECT * FROM T1 WHERE A <> ANY (SELECT A FROM T1);
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5592 AS SELECT c0 FROM t1;
REINDEX T2;
UPDATE T SET b = json_object('k', b);
DETACH DATABASE aux69;
DROP INDEX IF EXISTS T1;
SELECT STRING_AGG(C) FROM T2;
ROLLBACK TO sp6649;
RELEASE sp6649;
INSERT OR ABORT INTO T2 VALUES ('x', -9, -9);
SELECT COUNT(*) FILTER (WHERE c1 IS NOT NULL), SUM(rowid) FILTER (WHERE c1 > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c1) FILTER (WHERE c1 > 0 AND c1 < 100), COUNT(*) FILTER (WHERE typeof(c1) = "text") FROM t1;
ALTER TABLE T RENAME COLUMN b TO b_r9085;
INSERT INTO t1 DEFAULT VALUES;
SELECT GROUP_CONCAT(A, '|') FROM T2;
INSERT OR ROLLBACK INTO T1 VALUES (6, '');
WITH RECURSIVE tree(id, path) AS (VALUES(1, "/1") UNION ALL SELECT id+1, path || "/" || (id+1) FROM tree WHERE id<14) SELECT * FROM tree;
CREATE VIEW IF NOT EXISTS v_T1_7673 AS SELECT 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;
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 OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
SELECT COUNT(c) FROM T;
UPDATE T SET a = a + 1 WHERE 1;
ALTER TABLE T ADD COLUMN extra_6983 DATETIME DEFAULT CURRENT_TIMESTAMP;
INSERT INTO T2 VALUES (NULL, NULL);
.limit
CREATE TABLE T1 (
a INTEGER,
b REAL
);
CREATE TABLE T2 (
a INTEGER,
b REAL
);
INSERT INTO T1 VALUES (ifnull(timediff(concat_ws(',', CAST(upper(1) AS INT2), 2, 3), 1), 2),1.0);
INSERT INTO T2 VALUES (1,-1.0),(2,9e999);
INSERT OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
PRAGMA writable_schema = YES;
SAVEPOINT sp6649;
ATTACH DATABASE ':memory:' AS aux69;
.quit
.trace
CREATE TABLE T (
a DOUBLE,
b TEXT,
c REAL
);
INSERT INTO T VALUES (CAST(json_array_length(if(CAST(-(-(length(randomblob(CAST(mod(1.7976931348623157e+308, 1465368752231950166) AS INTEGER))))) AS TINYINT), 1, 0, 1, 0, 1), '$') AS NUMERIC),'a',3.14), (1,'b',-7.75), (2,'c',-9e999);
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT b,a,c,
RANK() OVER (PARTITION BY a ORDER BY c DESC) AS d FROM T;
ATTACH DATABASE ':memory:' AS aux86;
PRAGMA full_column_names = YES;
DROP TABLE IF EXISTS _m;
CREATE TABLE t1 (c0, c1 REAL PRIMARY KEY);
INSERT INTO t1(c0, c1) VALUES ('{', -(-(1))), (0, 0);
UPDATE t1 SET c0 = NULL;
UPDATE OR REPLACE t1 SET c1 = 1;
SELECT DISTINCT * FROM t1 WHERE NOT NOT (t1.c0 IS NULL);
PRAGMA integrity_check;
SELECT COUNT(*) FROM t1;
SELECT * FROM t1;
DETACH DATABASE aux86;
REINDEX;
ALTER TABLE T ADD COLUMN extra_5481 BLOB NOT NULL DEFAULT 0;
SELECT COUNT(*) FROM T;
CREATE TABLE T1 (
A VARCHAR(15) PRIMARY KEY,
B VARCHAR(30) NOT NULL UNIQUE
);
CREATE TABLE T2 (
A VARCHAR(10) PRIMARY KEY,
X VARCHAR(15) NOT NULL,
C BIGINT,
FOREIGN KEY (X) REFERENCES T1(A)
);
INSERT INTO T1 VALUES ('p', 'x');
INSERT INTO T1 VALUES ('q', 'y');
INSERT INTO T2 VALUES ('a', 'p', 9223372036854775807);
INSERT INTO T2 VALUES ('b', 'q', -9223372036854775808);
SELECT X, SUM(C) AS D, COUNT(*) AS E FROM T2 GROUP BY X;
SELECT LAG(c0, 2, 'default') OVER (PARTITION BY c0 ORDER BY c0 ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
SELECT * FROM t1;
CREATE VIEW IF NOT EXISTS v_t1_6883 AS SELECT c1 FROM t1;
ALTER TABLE t1 ADD COLUMN extra_3184 INT2 COLLATE NOCASE;
SELECT * FROM t1;
REINDEX;
SELECT c, COUNT(*) FROM T GROUP BY c HAVING COUNT(*) = (SELECT COUNT(*) 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;
PRAGMA temp_store = 'MEMORY';
VACUUM main;
SELECT * FROM T1 WHERE EXISTS (SELECT 1 FROM T1 WHERE 1 = 0);
SELECT * FROM T1 WHERE A <> ANY (SELECT A FROM T1);
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5592 AS SELECT c0 FROM t1;
REINDEX T2;
UPDATE T SET b = json_object('k', b);
DETACH DATABASE aux69;
DROP INDEX IF EXISTS T1;
SELECT STRING_AGG(C) FROM T2;
ROLLBACK TO sp6649;
RELEASE sp6649;
INSERT OR ABORT INTO T2 VALUES ('x', -9, -9);
SELECT COUNT(*) FILTER (WHERE c1 IS NOT NULL), SUM(rowid) FILTER (WHERE c1 > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c1) FILTER (WHERE c1 > 0 AND c1 < 100), COUNT(*) FILTER (WHERE typeof(c1) = "text") FROM t1;
ALTER TABLE T RENAME COLUMN b TO b_r9085;
INSERT INTO t1 DEFAULT VALUES;
SELECT GROUP_CONCAT(A, '|') FROM T2;
INSERT OR ROLLBACK INTO T1 VALUES (6, '');
WITH RECURSIVE tree(id, path) AS (VALUES(1, "/1") UNION ALL SELECT id+1, path || "/" || (id+1) FROM tree WHERE id<14) SELECT * FROM tree;
CREATE VIEW IF NOT EXISTS v_T1_7673 AS SELECT 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;
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 OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
SELECT COUNT(c) FROM T;
UPDATE T SET a = a + 1 WHERE 1;
ALTER TABLE T ADD COLUMN extra_6983 DATETIME DEFAULT CURRENT_TIMESTAMP;
INSERT INTO T2 VALUES (NULL, NULL);
VACUUM;
CREATE VIEW IF NOT EXISTS v_T2_6393 AS SELECT a FROM T2;
ALTER TABLE T1 RENAME COLUMN b TO b_r8651;
SELECT LEAD(a) OVER (ORDER BY a) FROM T1;
ALTER TABLE T DROP COLUMN a;
SELECT * FROM T1 AS a INNER JOIN T1 AS b ON a.rowid = b.rowid;
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 c1 IN (SELECT c1 FROM t1 t2 WHERE t2.c1 = t1.c1);
SELECT * FROM T2 AS a INNER JOIN T AS b ON a.rowid = b.rowid;
DETACH DATABASE aux78;
SELECT COUNT(*) FILTER (WHERE c1 IS NOT NULL), SUM(rowid) FILTER (WHERE c1 > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c1) FILTER (WHERE c1 > 0 AND c1 < 100), COUNT(*) FILTER (WHERE typeof(c1) = "text") FROM t1;
UPDATE T2 SET A = 'x';
PRAGMA cache_spill = NO;
INSERT INTO T2 SELECT * FROM T2;
VACUUM main;
```
## 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
1|-1.0
2|Inf
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,215 @@
## 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 sp2891;
SAVEPOINT sp3175;
SAVEPOINT sp7170;
-- NTILE(0)
PRAGMA empty_result_callbacks = TRUE;
SAVEPOINT sp7793;
PRAGMA reverse_unordered_selects = -9223372036854775808;
.quit
PRAGMA writable_schema IS NOT NO;
BEGIN IMMEDIATE TRANSACTION;
PRAGMA cache_size = -strftime('%s', CAST(2000 AS CHAR(10)));
ATTACH DATABASE ':memory:' AS aux23;
PRAGMA empty_result_callbacks = ON;
SAVEPOINT sp2455;
CREATE TABLE T1 (
a DOUBLE PRECISION,
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
SELECT * FROM T2;
SELECT * FROM T1;
.show
ATTACH DATABASE ':memory:' AS aux46;
create temp table `t1`(x);
insert into t1 values('amx');
insert into t1 values('anx');
insert into t1 values('amy');
insert /* -vfs unix */ into t1 values('bmy');
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 t1 WHERE NOT x like 'a__' intersect select * from t1 where x like '_m_' intersect select * from t1 where x like '__x';
SELECT TOTAL(x) FROM t1;
SELECT * FROM t1 AS a LEFT JOIN t1 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux46;
INSERT INTO t1 SELECT * FROM t1;
WITH a AS (SELECT x FROM t1), b AS (SELECT COUNT(*) AS cnt FROM a) SELECT * FROM b;
CREATE VIEW IF NOT EXISTS v_t1_5880 AS SELECT x FROM t1;
DROP INDEX IF EXISTS t1;
INSERT INTO t1 VALUES (NULL);
REINDEX t1;
INSERT INTO t1 SELECT * FROM t1;
SELECT COUNT(x) FROM t1;
SELECT * FROM t1 t1 JOIN (SELECT * FROM t1) AS sub ON t1.x = sub.x;
REINDEX;
INSERT OR ABORT INTO t1 VALUES (-CAST(9 AS DATE));
SELECT MIN(x) FILTER (WHERE x IS NOT NULL) OVER (ORDER BY x ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1;
ALTER TABLE t1 RENAME TO t1_r5893;
INSERT INTO t1 SELECT * FROM t1;
ALTER TABLE T2 ADD COLUMN extra_1904 DATETIME;
RELEASE sp2455;
ANALYZE;
VACUUM;
SELECT * FROM t1 AS a LEFT JOIN T2 AS b ON a.rowid = b.rowid;
CREATE TRIGGER IF NOT EXISTS trg_T1_9347 AFTER uPdaTE ON T1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
VACUUM;
SELECT COUNT(a) FILTER (WHERE NULL) OVER (PARTITION BY a ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T2;
DETACH DATABASE aux23;
INSERT INTO T2 DEFAULT VALUES;
DROP VIEW IF EXISTS t1;
SELECT * FROM t1 NATURAL JOIN T1;
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 OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
END;
SELECT * FROM t1;
INSERT INTO T1 VALUES (NULL, NULL);
INSERT INTO T2 VALUES (NULL, NULL);
INSERT INTO T2 DEFAULT VALUES;
SELECT x FROM t1 EXCEPT SELECT x FROM (SELECT * FROM t1) AS sub;
ANALYZE T2;
SELECT ROW_NUMBER() OVER (PARTITION BY b ORDER BY b RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM T1;
INSERT OR REPLACE INTO t1 VALUES (-8);
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_8548 ON t1(x COLLATE NOCASE) WHERE x IS NOT NULL;
CREATE TRIGGER IF NOT EXISTS trg_t1_9457 BEFORE INSERT ON t1 FOR EACH ROW BEGIN INSERT INTO t1(x) VALUES (NULL); END;
INSERT INTO T2 VALUES (NULL, NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
DELETE FROM t1 WHERE +rowid = 54;
INSERT INTO T1 VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
SELECT * FROM T1;
WITH a AS NOT MATERIALIZED (SELECT * FROM t1), b AS MATERIALIZED (SELECT * FROM a) SELECT * FROM b;
CREATE TEMP VIEW IF /* PRAGMA read_uncommitted = OFF; */ NOT EXISTS v_T2_3416 AS SELECT a FROM T2;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_2725 ON t1(x) WHERE x > 0;
SELECT LAG(x, 1) OVER (PARTITION BY x ORDER BY x RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) 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 T2;
CREATE TABLE T (
A VARCHAR(15) PRIMARY KEY,
B VARCHAR(30) NOT NULL,
C BIGINT 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 C > 0 ORDER BY C DESC;
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 VALUES (NULL, NULL);
ROLLBACK TO sp7793;
RELEASE sp7793;
SELECT AVG(B) FROM T;
DROP TABLE IF EXISTS T2;
WITH a AS (SELECT a FROM T2), b AS (SELECT a FROM a), c AS (SELECT a FROM b) SELECT * FROM c;
SELECT * FROM T1 WHERE a > (SELECT MAX(a) FROM T1);
SELECT FIRST_VALUE(a) OVER (PARTITION BY a ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T2;
RELEASE sp7170;
CREATE TABLE T (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15),
C BIGINT,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', -9223372036854775808);
INSERT INTO T VALUES ('b', 'q', 4000);
CREATE TABLE T1 (
A VARCHAR(15) PRIMARY KEY,
B VARCHAR(30) NOT NULL UNIQUE
);
CREATE TABLE T2 (
A VARCHAR(10) PRIMARY KEY,
X VARCHAR(15) NOT NULL,
C BIGINT,
FOREIGN KEY (X) REFERENCES T1(A)
);
INSERT INTO T1 VALUES ('p', 'x');
INSERT INTO T1 VALUES ('q', 'y');
INSERT INTO T2 VALUES ('a', 'p', 9223372036854775807);
INSERT INTO T2 VALUES ('b', 'q', -9223372036854775808);
SELECT X, SUM(C) AS D, COUNT(*) AS E FROM T2 GROUP BY X;
INSERT INTO T VALUES ('c', 'r', 1700);
INSERT INTO T VALUES ('d', 'r', 9223372036854775807);
INSERT INTO T VALUES ('e', 's', 0);
SELECT A, C FROM T WHERE C > 1200 AND C < 9999999999 ORDER BY C;
CREATE TEMP VIEW IF NOT EXISTS v_T1_1990 AS SELECT b FROM T1;
INSERT INTO T VALUES (1, 'x', 'x') ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
SELECT * FROM T1 AS a RIGHT JOIN T AS b ON a.rowid = b.rowid;
SELECT * FROM T2 AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
ALTER TABLE T1 ADD COLUMN extra_5061 NATIVE CHARACTER(70)NVARCHAR(100) DEFAULT (abs(random()) % 1000);
INSERT INTO t1 DEFAULT VALUES;
DELETE FROM T1 WHERE b > (SELECT AVG(b) FROM T1) RETURNING *;
VACUUM;
REINDEX T;
INSERT OR REPLACE INTO T2 VALUES (7, 'x', '');
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;
INSERT INTO T2 SELECT * FROM T2;
INSERT OR REPLACE INTO T2 VALUES (-2, 'x', 0);
CREATE TRIGGER IF NOT EXISTS trg_T_3874 BEFORE INSERT ON T BEGIN SELECT RAISE(FAIL, 'no'); END;
ROLLBACK TRANSACTION TO SAVEPOINT sp3175;
RELEASE SAVEPOINT sp3175;
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;
UPDATE t1 SET x = 'x' WHERE rowid = 1 RETURNING *;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
INSERT INTO t1 DEFAULT VALUES;
RELEASE sp2891;
```
## 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,62 @@
## 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 aux63;
ATTACH DATABASE ':memory:' AS aux96;
DROP TABLE IF EXISTS t1;
CREATE TABLE t1(w INT, x INT);
INSERT INTO t1(w,x) VALUES(9223372036854775808,10),(2,20),(3,30), (2,21),(3,31), (3,32);
CREATE INDEX t1wx ON t1(w,x);
DROP TABLE IF EXISTS t2;
CREATE TABLE t2(w INT, y VARCHAR(8));
INSERT INTO t2(w,y) VALUES(1,'one'),(2,'two'),(3,'three'),(4,'four');
CREATE INDEX t2wy ON t2(w,y);
WITH _m AS MATERIALIZED (SELECT * FROM t2) SELECT cnt, xyz, (SELECT y FROM _m WHERE w=cnt), '|' FROM (SELECT count(*) AS cnt, w AS xyz FROM t1 GROUP BY 2) ORDER BY cnt, xyz;
SELECT cnt, xyz, lower((SELECT y FROM t2 WHERE w=cnt)), '|' FROM (SELECT count(*) AS cnt, w AS xyz FROM t1 GROUP BY 2) ORDER BY cnt, xyz;
SELECT cnt, xyz, CASE WHEN (SELECT y FROM t2 WHERE w=cnt)=='two' THEN 'aaa' ELSE 'bbb' END, '|' FROM (SELECT count(*) AS cnt, w AS xyz FROM t1 GROUP BY 2) ORDER BY +cnt;
DETACH DATABASE aux96;
SELECT COUNT(*) FROM t1;
ALTER TABLE t2 ADD COLUMN extra_1857 MEDIUMINT DEFAULT NULL;
UPDATE t1 SET w = CURRENT_TIMESTAMP WHERE rowid = 1;
DETACH DATABASE aux63;
DELETE FROM t1 WHERE x > (SELECT AVG(x) FROM t1) RETURNING *;
SELECT STRING_AGG(x, '|') FROM t1;
```
## Actual output
```sql
1|9.22337203685478e+18|one||
2|2|two||
3|3|three||
1|9.22337203685478e+18|one||
2|2|two||
3|3|three||
1|9.22337203685478e+18|bbb||
2|2|aaa||
3|3|bbb||
6
3|30
3|31
3|32
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,689 @@
## 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
.dbconfig
BEGIN TRANSACTION;
-- PRAGMA hard_heap_limit = 50000000;
CREATE TABLE T (
a TEXT,
b TEXT,
c REAL
);
INSERT INTO T VALUES (('a' || ''),'b',cos(json_array(2147483648, 2147483648))), ('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;
.exit --1
ATTACH DATABASE ':memory:' AS aux29;
BEGIN DEFERRED TRANSACTION;
PRAGMA cache_spill = OFF;
PRAGMA default_cache_size = -1000;
PRAGMA soft_heap_limit = 10000000;
.eqp off
CREATE TABLE T (
a INTEGER,
b TEXT,
c REAL
);
INSERT INTO T VALUES (1,'a',1.25), (2,'b',-3.5), (3,'c',9e999);
WITH d AS (SELECT * FROM T) SELECT * FROM d WHERE NOT NOT (c > 0) ;
COMMIT TRANSACTION;
ALTER TABLE T RENAME COLUMN a TO a_r9356;
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
SELECT * FROM T2;
SELECT * FROM T1;
INSERT INTO T WITH _m AS MATERIALIZED (SELECT * FROM T2) SELECT * FROM T;
INSERT INTO T DEFAULT VALUES;
CREATE TABLE T1 (
a INTEGER,
b REAL
);
CREATE TABLE _m (
a INTEGER,
b REAL
);
INSERT INTO T1 VALUES (1,1.0);
INSERT INTO T2 VALUES (1,-1.0),(2,9e999);
INSERT OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
INSERT INTO T1
VALUES (1, 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
SELECT * FROM T1;
DETACH DATABASE aux29;
SELECT LAG(b, 0) OVER (ORDER BY b ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T1;
SELECT * FROM T1;
INSERT INTO T VALUES (NULL, NULL, NULL);
INSERT INTO T1 VALUES ('x', 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
PRAGMA application_id;
ALTER TABLE T1 RENAME COLUMN a TO a_r5154;
SELECT * FROM T1;
SELECT * FROM T2 AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
END;
INSERT INTO T1 DEFAULT VALUES;
DELETE FROM T1 WHERE b IS NULL;
ALTER TABLE _m RENAME TO _m_r6295;
SELECT * FROM T1 WHERE NOT EXISTS (SELECT 1 FROM T1 t2 WHERE t2.b = T1.b);
WITH RECURSIVE self(x) AS (SELECT 1 UNION ALL SELECT x FROM self) SELECT * FROM self LIMIT 5;
DELETE FROM T WHERE 1;
CREATE TRIGGER IF NOT EXISTS trg_T1_9606 BEFORE DELETE ON T1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte;
SELECT * FROM T WHERE +c < (SELECT AVG(c) FROM T);
SELECT NTH_VALUE(a, 2) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) 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 T1;
ALTER TABLE T RENAME TO T_r1340;
ALTER TABLE T2 RENAME COLUMN a TO a_r3688;
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;
SELECT * FROM T2 CROSS JOIN T;
PRAGMA read_uncommitted = TRUE;
INSERT OR REPLACE INTO T2 VALUES (NULL, 'x');
BEGIN TRANSACTION;
-- PRAGMA hard_heap_limit = 50000000;
CREATE TABLE T (
a TEXT,
b TEXT,
c REAL
);
INSERT INTO T VALUES (('a' || ''),'b',2147483648), ('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;
.exit --1
ATTACH DATABASE ':memory:' AS aux29;
BEGIN DEFERRED TRANSACTION;
PRAGMA cache_spill = OFF;
PRAGMA default_cache_size = -1000;
PRAGMA soft_heap_limit = 10000000;
.eqp off
CREATE TABLE T (
a INTEGER,
b TEXT,
c REAL
);
INSERT INTO T VALUES (1,'a',1.25), (2,'b',-3.5), (3,'c',9e999);
WITH d AS (SELECT * FROM T) SELECT * FROM d WHERE NOT NOT (c > 0) ;
COMMIT TRANSACTION;
ALTER TABLE T RENAME COLUMN a TO a_r9356;
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
SELECT * FROM T2;
SELECT * FROM T1;
INSERT INTO T WITH _m AS MATERIALIZED (SELECT * FROM T2) SELECT * FROM T;
INSERT INTO T DEFAULT VALUES;
CREATE TABLE T1 (
a INTEGER,
b REAL
);
CREATE TABLE _m (
a INTEGER,
b REAL
);
INSERT INTO T1 VALUES (1,1.0);
INSERT INTO T2 VALUES (1,-1.0),(2,9e999);
INSERT OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
INSERT INTO T1
VALUES (1, 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
SELECT * FROM T1;
DETACH DATABASE aux29;
SELECT LAG(b, 0) OVER (ORDER BY b ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T1;
SELECT * FROM T1;
INSERT INTO T VALUES (NULL, NULL, NULL);
INSERT INTO T1 VALUES ('x', 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
PRAGMA application_id;
ALTER TABLE T1 RENAME COLUMN a TO a_r5154;
SELECT * FROM T1;
SELECT * FROM T2 AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
END;
INSERT INTO T1 DEFAULT VALUES;
DELETE FROM T1 WHERE b IS NULL;
ALTER TABLE _m RENAME TO _m_r6295;
SELECT * FROM T1 WHERE NOT EXISTS (SELECT 1 FROM T1 t2 WHERE t2.b = T1.b);
WITH RECURSIVE self(x) AS (SELECT 1 UNION ALL SELECT x FROM self) SELECT * FROM self LIMIT 5;
DELETE FROM T WHERE 1;
CREATE TRIGGER IF NOT EXISTS trg_T1_9606 BEFORE DELETE ON T1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte;
SELECT * FROM T WHERE +c < (SELECT AVG(c) FROM T);
SELECT NTH_VALUE(a, 2) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) 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 T1;
ALTER TABLE T RENAME TO T_r1340;
ALTER TABLE T2 RENAME COLUMN a TO a_r3688;
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;
SELECT * FROM T2 CROSS JOIN T;
PRAGMA read_uncommitted = TRUE;
INSERT OR REPLACE INTO T2 VALUES (NULL, 'x');
BEGIN TRANSACTION;
-- PRAGMA hard_heap_limit = 50000000;
CREATE TABLE T (
a TEXT,
b TEXT,
c REAL
);
INSERT INTO T VALUES (('a' || ''),'b',2147483648), ('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;
.exit --1
ATTACH DATABASE ':memory:' AS aux29;
BEGIN DEFERRED TRANSACTION;
PRAGMA cache_spill = OFF;
PRAGMA default_cache_size = -1000;
PRAGMA soft_heap_limit = 10000000;
.eqp off
CREATE TABLE T (
a INTEGER,
b TEXT,
c REAL
);
INSERT INTO T VALUES (1,'a',1.25), (2,'b',-3.5), (3,'c',9e999);
WITH d AS (SELECT * FROM T) SELECT * FROM d WHERE NOT NOT (c > 0) ;
COMMIT TRANSACTION;
ALTER TABLE T RENAME COLUMN a TO a_r9356;
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
SELECT * FROM T2;
SELECT * FROM T1;
INSERT INTO T WITH _m AS MATERIALIZED (SELECT * FROM T2) SELECT * FROM T;
INSERT INTO T DEFAULT VALUES;
CREATE TABLE T1 (
a INTEGER,
b REAL
);
CREATE TABLE _m (
a INTEGER,
b REAL
);
INSERT INTO T1 VALUES (1,1.0);
INSERT INTO T2 VALUES (1,-1.0),(2,9e999);
INSERT OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
INSERT INTO T1
VALUES (1, 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
SELECT * FROM T1;
DETACH DATABASE aux29;
SELECT LAG(b, 0) OVER (ORDER BY b ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T1;
SELECT * FROM T1;
INSERT INTO T VALUES (NULL, NULL, NULL);
INSERT INTO T1 VALUES ('x', 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
PRAGMA application_id;
ALTER TABLE T1 RENAME COLUMN a TO a_r5154;
SELECT * FROM T1;
SELECT * FROM T2 AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
END;
INSERT INTO T1 DEFAULT VALUES;
DELETE FROM T1 WHERE b IS NULL;
ALTER TABLE _m RENAME TO _m_r6295;
SELECT * FROM T1 WHERE NOT EXISTS (SELECT 1 FROM T1 t2 WHERE t2.b = T1.b);
WITH RECURSIVE self(x) AS (SELECT 1 UNION ALL SELECT x FROM self) SELECT * FROM self LIMIT 5;
DELETE FROM T WHERE 1;
CREATE TRIGGER IF NOT EXISTS trg_T1_9606 BEFORE DELETE ON T1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte;
SELECT * FROM T WHERE +c < (SELECT AVG(c) FROM T);
SELECT NTH_VALUE(a, 2) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) 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 T1;
ALTER TABLE T RENAME TO T_r1340;
ALTER TABLE T2 RENAME COLUMN a TO a_r3688;
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;
SELECT * FROM T2 CROSS JOIN T;
PRAGMA read_uncommitted = TRUE;
INSERT OR REPLACE INTO T2 VALUES (NULL, 'x');
BEGIN TRANSACTION;
-- PRAGMA hard_heap_limit = 50000000;
CREATE TABLE T (
a TEXT,
b TEXT,
c REAL
);
INSERT INTO T VALUES (('a' || ''),'b',2147483648), ('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;
.exit --1
ATTACH DATABASE ':memory:' AS aux29;
BEGIN DEFERRED TRANSACTION;
PRAGMA cache_spill = OFF;
PRAGMA default_cache_size = -1000;
PRAGMA soft_heap_limit = 10000000;
.eqp off
CREATE TABLE T (
a INTEGER,
b TEXT,
c REAL
);
INSERT INTO T VALUES (1,'a',1.25), (2,'b',-3.5), (3,'c',9e999);
WITH d AS (SELECT * FROM T) SELECT * FROM d WHERE NOT NOT (c > 0) ;
COMMIT TRANSACTION;
ALTER TABLE T RENAME COLUMN a TO a_r9356;
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
SELECT * FROM T2;
SELECT * FROM T1;
INSERT INTO T WITH _m AS MATERIALIZED (SELECT * FROM T2) SELECT * FROM T;
INSERT INTO T DEFAULT VALUES;
CREATE TABLE T1 (
a INTEGER,
b REAL
);
CREATE TABLE _m (
a INTEGER,
b REAL
);
INSERT INTO T1 VALUES (1,1.0);
INSERT INTO T2 VALUES (1,-1.0),(2,9e999);
INSERT OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
INSERT INTO T1
VALUES (1, 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
SELECT * FROM T1;
DETACH DATABASE aux29;
SELECT LAG(b, 0) OVER (ORDER BY b ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T1;
SELECT * FROM T1;
INSERT INTO T VALUES (NULL, NULL, NULL);
INSERT INTO T1 VALUES ('x', 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
PRAGMA application_id;
ALTER TABLE T1 RENAME COLUMN a TO a_r5154;
SELECT * FROM T1;
SELECT * FROM T2 AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
END;
INSERT INTO T1 DEFAULT VALUES;
DELETE FROM T1 WHERE b IS NULL;
ALTER TABLE _m RENAME TO _m_r6295;
SELECT * FROM T1 WHERE NOT EXISTS (SELECT 1 FROM T1 t2 WHERE t2.b = T1.b);
WITH RECURSIVE self(x) AS (SELECT 1 UNION ALL SELECT x FROM self) SELECT * FROM self LIMIT 5;
DELETE FROM T WHERE 1;
CREATE TRIGGER IF NOT EXISTS trg_T1_9606 BEFORE DELETE ON T1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte;
SELECT * FROM T WHERE +c < (SELECT AVG(c) FROM T);
SELECT NTH_VALUE(a, 2) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) 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 T1;
ALTER TABLE T RENAME TO T_r1340;
ALTER TABLE T2 RENAME COLUMN a TO a_r3688;
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;
SELECT * FROM T2 CROSS JOIN T;
PRAGMA read_uncommitted = TRUE;
INSERT OR REPLACE INTO T2 VALUES (NULL, 'x');
BEGIN TRANSACTION;
-- PRAGMA hard_heap_limit = 50000000;
CREATE TABLE T (
a TEXT,
b TEXT,
c REAL
);
INSERT INTO T VALUES (('a' || ''),'b',2147483648), ('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;
.exit --1
ATTACH DATABASE ':memory:' AS aux29;
BEGIN DEFERRED TRANSACTION;
PRAGMA cache_spill = OFF;
PRAGMA default_cache_size = -1000;
PRAGMA soft_heap_limit = 10000000;
.eqp off
CREATE TABLE T (
a INTEGER,
b TEXT,
c REAL
);
INSERT INTO T VALUES (1,'a',1.25), (2,'b',-3.5), (3,'c',9e999);
WITH d AS (SELECT * FROM T) SELECT * FROM d WHERE NOT NOT (c > 0) ;
COMMIT TRANSACTION;
ALTER TABLE T RENAME COLUMN a TO a_r9356;
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
SELECT * FROM T2;
SELECT * FROM T1;
INSERT INTO T WITH _m AS MATERIALIZED (SELECT * FROM T2) SELECT * FROM T;
INSERT INTO T DEFAULT VALUES;
CREATE TABLE T1 (
a INTEGER,
b REAL
);
CREATE TABLE _m (
a INTEGER,
b REAL
);
INSERT INTO T1 VALUES (1,1.0);
INSERT INTO T2 VALUES (1,-1.0),(2,9e999);
INSERT OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
INSERT INTO T1
VALUES (1, 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
SELECT * FROM T1;
DETACH DATABASE aux29;
SELECT LAG(b, 0) OVER (ORDER BY b ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T1;
SELECT * FROM T1;
INSERT INTO T VALUES (NULL, NULL, NULL);
INSERT INTO T1 VALUES ('x', 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
PRAGMA application_id;
ALTER TABLE T1 RENAME COLUMN a TO a_r5154;
SELECT * FROM T1;
SELECT * FROM T2 AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
END;
INSERT INTO T1 DEFAULT VALUES;
DELETE FROM T1 WHERE b IS NULL;
ALTER TABLE _m RENAME TO _m_r6295;
SELECT * FROM T1 WHERE NOT EXISTS (SELECT 1 FROM T1 t2 WHERE t2.b = T1.b);
WITH RECURSIVE self(x) AS (SELECT 1 UNION ALL SELECT x FROM self) SELECT * FROM self LIMIT 5;
DELETE FROM T WHERE 1;
CREATE TRIGGER IF NOT EXISTS trg_T1_9606 BEFORE DELETE ON T1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte;
SELECT * FROM T WHERE +c < (SELECT AVG(c) FROM T);
SELECT NTH_VALUE(a, 2) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) 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 T1;
ALTER TABLE T RENAME TO T_r1340;
ALTER TABLE T2 RENAME COLUMN a TO a_r3688;
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;
SELECT * FROM T2 CROSS JOIN T;
PRAGMA read_uncommitted = TRUE;
INSERT OR REPLACE INTO T2 VALUES (NULL, 'x');
BEGIN TRANSACTION;
-- PRAGMA hard_heap_limit = 50000000;
CREATE TABLE T (
a TEXT,
b TEXT,
c REAL
);
INSERT INTO T VALUES (('a' || ''),'b',2147483648), ('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;
.exit --1
ATTACH DATABASE ':memory:' AS aux29;
BEGIN DEFERRED TRANSACTION;
PRAGMA cache_spill = OFF;
PRAGMA default_cache_size = -1000;
PRAGMA soft_heap_limit = 10000000;
.eqp off
CREATE TABLE T (
a INTEGER,
b TEXT,
c REAL
);
INSERT INTO T VALUES (1,'a',1.25), (2,'b',-3.5), (3,'c',9e999);
WITH d AS (SELECT * FROM T) SELECT * FROM d WHERE NOT NOT (c > 0) ;
COMMIT TRANSACTION;
ALTER TABLE T RENAME COLUMN a TO a_r9356;
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
SELECT * FROM T2;
SELECT * FROM T1;
INSERT INTO T WITH _m AS MATERIALIZED (SELECT * FROM T2) SELECT * FROM T;
INSERT INTO T DEFAULT VALUES;
CREATE TABLE T1 (
a INTEGER,
b REAL
);
CREATE TABLE _m (
a INTEGER,
b REAL
);
INSERT INTO T1 VALUES (1,1.0);
INSERT INTO T2 VALUES (1,-1.0),(2,9e999);
INSERT OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
INSERT INTO T1
VALUES (1, 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
SELECT * FROM T1;
DETACH DATABASE aux29;
SELECT LAG(b, 0) OVER (ORDER BY b ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T1;
SELECT * FROM T1;
INSERT INTO T VALUES (NULL, NULL, NULL);
INSERT INTO T1 VALUES ('x', 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
PRAGMA application_id;
ALTER TABLE T1 RENAME COLUMN a TO a_r5154;
SELECT * FROM T1;
SELECT * FROM T2 AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
END;
INSERT INTO T1 DEFAULT VALUES;
DELETE FROM T1 WHERE b IS NULL;
ALTER TABLE _m RENAME TO _m_r6295;
SELECT * FROM T1 WHERE NOT EXISTS (SELECT 1 FROM T1 t2 WHERE t2.b = T1.b);
WITH RECURSIVE self(x) AS (SELECT 1 UNION ALL SELECT x FROM self) SELECT * FROM self LIMIT 5;
DELETE FROM T WHERE 1;
CREATE TRIGGER IF NOT EXISTS trg_T1_9606 BEFORE DELETE ON T1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte;
SELECT * FROM T WHERE +c < (SELECT AVG(c) FROM T);
SELECT NTH_VALUE(a, 2) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) 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 T1;
ALTER TABLE T RENAME TO T_r1340;
ALTER TABLE T2 RENAME COLUMN a TO a_r3688;
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;
SELECT * FROM T2 CROSS JOIN T;
PRAGMA read_uncommitted = TRUE;
INSERT OR REPLACE INTO T2 VALUES (NULL, 'x');
DROP TRIGGER IF EXISTS T2;
ANALYZE _m;
UPDATE _m SET a = json_object('k', a) WHERE a IS NOT NULL RETURNING *;
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 _m;
ALTER TABLE _m DROP COLUMN a;
SELECT GROUP_CONCAT(a, a) OVER (PARTITION BY a ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM _m;
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;
SELECT * FROM _m CROSS JOIN _m;
PRAGMA wal_checkpoint('FULL');
WITH cte AS (SELECT a, COUNT(*) AS cnt FROM T1 GROUP BY a) SELECT * FROM cte;
```
## Actual output
```sql
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
a|0|-2.25
b|4.75|0
```
## Expectation
```sql
attach_create on
attach_write on
comments on
defensive on
dqs_ddl off
dqs_dml off
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
reverse_scanorder off
stmt_scanstatus off
trigger_eqp off
trusted_schema off
writable_schema off
a|0|-2.25
b|4.75|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
.tables non_existent_table
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 VALUES (NULL, 'x', 1, NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
UPDATE t1 SET c = '' WHERE c IS NOT NULL RETURNING *;
SELECT COUNT(*) FROM t1;
SELECT c, COUNT(*) FROM t1 GROUP BY c HAVING COUNT(*) > (SELECT COUNT(*) FROM t1 LIMIT 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
```
-column
```
@@ -0,0 +1,927 @@
## 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_trace = TRUE;
-- PRAGMA query_only = NO;
.once log.txt
BEGIN DEFERRED;
PRAGMA ignore_check_constraints = NO;
ATTACH DATABASE ':memory:' AS aux44;
.output
SAVEPOINT sp8760;
SAVEPOINT sp9990;
PRAGMA trusted_schema = TRUE;
.once log.txt
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (log10(((like(('' || ''), if(replace(x'b9863ad918881c72285170e0e3fb', mod(ceiling(-asin(NULL)) -> '$.a' -> '$.b', power(0, 0)), 0), 3.141592653589793, 0, 3.141592653589793)) * 1) - 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
BEGIN TRANSACTION;
ATTACH DATABASE ':memory:' AS aux72;
BEGIN DEFERRED;
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
COMMIT;
REINDEX t1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t3_1118 ON t3(a COLLATE NOCASE) WHERE NOT NOT (NOT NOT (NOT NOT (NOT NOT (+a > 0)))) ;
DROP INDEX IF EXISTS t2;
SELECT LAST_VALUE(a) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t3;
DETACH DATABASE aux72;
ALTER TABLE t1 RENAME COLUMN a TO a_r9525;
ROLLBACK;
ALTER TABLE t3 RENAME COLUMN a TO a_r8773;
PRAGMA defer_foreign_keys = TRUE;
SELECT * FROM t2;
PRAGMA wal_checkpoint('RESTART');
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (log10(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
BEGIN TRANSACTION;
ATTACH DATABASE ':memory:' AS aux72;
BEGIN DEFERRED;
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
COMMIT;
REINDEX t1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t3_1118 ON t3(a COLLATE NOCASE) WHERE +a > 0;
DROP INDEX IF EXISTS t2;
SELECT LAST_VALUE(a) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t3;
DETACH DATABASE aux72;
ALTER TABLE t1 RENAME COLUMN a TO a_r9525;
ROLLBACK;
ALTER TABLE t3 RENAME COLUMN a TO a_r8773;
PRAGMA defer_foreign_keys = TRUE;
SELECT * FROM t2;
PRAGMA wal_checkpoint('RESTART');
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (log10(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
BEGIN TRANSACTION;
ATTACH DATABASE ':memory:' AS aux72;
BEGIN DEFERRED;
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
COMMIT;
REINDEX t1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t3_1118 ON t3(a COLLATE NOCASE) WHERE +a > 0;
DROP INDEX IF EXISTS t2;
SELECT LAST_VALUE(a) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t3;
DETACH DATABASE aux72;
ALTER TABLE t1 RENAME COLUMN a TO a_r9525;
ROLLBACK;
ALTER TABLE t3 RENAME COLUMN a TO a_r8773;
PRAGMA defer_foreign_keys = TRUE;
SELECT * FROM t2;
PRAGMA wal_checkpoint('RESTART');
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (log10(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
BEGIN TRANSACTION;
ATTACH DATABASE ':memory:' AS aux72;
BEGIN DEFERRED;
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
COMMIT;
REINDEX t1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t3_1118 ON t3(a COLLATE NOCASE) WHERE +a > 0;
DROP INDEX IF EXISTS t2;
SELECT LAST_VALUE(a) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t3;
DETACH DATABASE aux72;
ALTER TABLE t1 RENAME COLUMN a TO a_r9525;
ROLLBACK;
ALTER TABLE t3 RENAME COLUMN a TO a_r8773;
PRAGMA defer_foreign_keys = TRUE;
SELECT * FROM t2;
PRAGMA wal_checkpoint('RESTART');
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (log10(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
BEGIN TRANSACTION;
ATTACH DATABASE ':memory:' AS aux72;
BEGIN DEFERRED;
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
COMMIT;
REINDEX t1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t3_1118 ON t3(a COLLATE NOCASE) WHERE +a > 0;
DROP INDEX IF EXISTS t2;
SELECT LAST_VALUE(a) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t3;
DETACH DATABASE aux72;
ALTER TABLE t1 RENAME COLUMN a TO a_r9525;
ROLLBACK;
ALTER TABLE t3 RENAME COLUMN a TO a_r8773;
PRAGMA defer_foreign_keys = TRUE;
SELECT * FROM t2;
PRAGMA wal_checkpoint('RESTART');
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (log10(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
BEGIN TRANSACTION;
ATTACH DATABASE ':memory:' AS aux72;
BEGIN DEFERRED;
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
COMMIT;
REINDEX t1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t3_1118 ON t3(a COLLATE NOCASE) WHERE +a > 0;
DROP INDEX IF EXISTS t2;
SELECT LAST_VALUE(a) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t3;
DETACH DATABASE aux72;
ALTER TABLE t1 RENAME COLUMN a TO a_r9525;
ROLLBACK;
ALTER TABLE t3 RENAME COLUMN a TO a_r8773;
PRAGMA defer_foreign_keys = TRUE;
SELECT * FROM t2;
PRAGMA wal_checkpoint('RESTART');
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (log10(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
BEGIN TRANSACTION;
ATTACH DATABASE ':memory:' AS aux72;
BEGIN DEFERRED;
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
COMMIT;
REINDEX t1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t3_1118 ON t3(a COLLATE NOCASE) WHERE +a > 0;
DROP INDEX IF EXISTS t2;
WITH _m AS MATERIALIZED (SELECT * FROM T) SELEC_m LAST_VALUE(a) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t3;
DETACH DATABASE aux72;
ALTER TABLE t1 RENAME COLUMN a TO a_r9525;
ROLLBACK;
ALTER TABLE t3 RENAME COLUMN a TO a_r8773;
PRAGMA defer_foreign_keys = TRUE;
CREATE TABLE T (
a TEXT,
b TEXT
);
INSERT INTO T VALUES ('a','b'), ('c','d');
SELECT * FROM T WHERE +a = REPLACE('a;',';','') AND b = 'b';
SELECT * FROM t2;
PRAGMA wal_checkpoint('RESTART');
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (log10(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
BEGIN TRANSACTION;
ATTACH DATABASE ':memory:' AS aux72;
BEGIN DEFERRED;
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
COMMIT;
REINDEX t1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t3_1118 ON t3(a COLLATE NOCASE) WHERE +a > 0;
DROP INDEX IF EXISTS t2;
SELECT LAST_VALUE(a) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t3;
DETACH DATABASE aux72;
ALTER TABLE t1 RENAME COLUMN a TO a_r9525;
ROLLBACK;
ALTER TABLE t3 RENAME COLUMN a TO a_r8773;
PRAGMA defer_foreign_keys = TRUE;
SELECT * FROM t2;
PRAGMA wal_checkpoint('RESTART');
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (log10(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
BEGIN TRANSACTION;
ATTACH DATABASE ':memory:' AS aux72;
BEGIN DEFERRED;
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
COMMIT;
REINDEX t1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t3_1118 ON t3(a COLLATE NOCASE) WHERE +a > 0;
DROP INDEX IF EXISTS t2;
SELECT LAST_VALUE(a) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t3;
DETACH DATABASE aux72;
ALTER TABLE t1 RENAME COLUMN a TO a_r9525;
ROLLBACK;
ALTER TABLE t3 RENAME COLUMN a TO a_r8773;
PRAGMA defer_foreign_keys = TRUE;
SELECT * FROM t2;
PRAGMA wal_checkpoint('RESTART');
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a;
INSERT INTO t1 VALUES (NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a;
INSERT INTO t1 DEFAULT VALUES;
CREATE TEMP VIEW IF NOT EXISTS v_t2_4298 AS SELECT a FROM t2;
SELECT * FROM t1 WHERE a <= ANY (SELECT a FROM t1);
INSERT INTO t3 DEFAULT VALUES;
DELETE FROM t1 WHERE a IS NULL;
INSERT INTO t2 SELECT * FROM t2;
RELEASE sp9990;
INSERT INTO t2 SELECT * FROM t2;
SELECT GROUP_CONCAT(a, '.') OVER (PARTITION BY a ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM t3;
CREATE TRIGGER IF NOT EXISTS trg_t3_7930 BEFORE DELETE ON t3 BEGIN INSERT INTO t3(a) VALUES (NULL); END;
SELECT COUNT(*) FROM t2;
DELETE FROM t2 WHERE a IS NULL;
CREATE INDEX IF NOT EXISTS idx_t1_5741 ON t1(a COLLATE NOCASE);
DELETE FROM t3 WHERE a IS NULL RETURNING *;
ALTER TABLE t1 RENAME COLUMN a TO a_r2002;
SELECT COUNT(*) FROM t1;
CREATE INDEX IF NOT EXISTS idx_t1_9369 ON t1(lower(a));
SELECT GROUP_CONCAT(a) OVER (ORDER BY a) FROM t2;
INSERT INTO t2 VALUES (1) ON CONFLICT(a) DO UPDATE SET a = excluded.a;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t2_1124 ON t2((a + 1)) WHERE a IS NOT NULL;
ALTER TABLE t1 RENAME COLUMN a TO a_r6325;
CREATE TRIGGER IF NOT EXISTS trg_t3_5012 BEFORE DELETE ON t3 FOR EACH ROW BEGIN INSERT INTO t3(a) 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 t3;
INSERT INTO t1 VALUES (NULL);
WITH cte AS (SELECT NULL AS x) SELECT * FROM cte;
WITH RECURSIVE self(x) AS (SELECT 1 UNION ALL SELECT x FROM self) SELECT * FROM self LIMIT 5;
ROLLBACK TO sp8760;
RELEASE sp8760;
INSERT OR ABORT INTO t3 VALUES ('');
ALTER TABLE t2 RENAME TO t2_r9030;
DETACH DATABASE aux44;
INSERT OR ROLLBACK INTO t3 VALUES ('x');
CREATE TRIGGER IF NOT EXISTS trg_t1_4886 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
REINDEX;
INSERT INTO t3 DEFAULT VALUES;
INSERT INTO t2 DEFAULT VALUES;
ALTER TABLE T RENAME TO T_r523;
INSERT OR REPLACE INTO T VALUES (NULL, NULL);
INSERT INTO t2 VALUES (1) ON CONFLICT(a) DO UPDATE SET a = excluded.a;
SELECT * FROM t3 AS a INNER JOIN t3 AS b ON a.rowid = b.rowid;
END TRANSACTION;
INSERT OR ROLLBACK INTO t2 VALUES (NULL);
INSERT INTO t1 SELECT * FROM t1;
ALTER TABLE T RENAME COLUMN b TO b_r7423;
ALTER TABLE t3 RENAME COLUMN a TO a_r690;
SELECT MAX(a) FROM t3;
SELECT STRING_AGG(a, '|') FROM t1;
ALTER TABLE T ADD COLUMN extra_3305 FLOAT DEFAULT (abs(random()) % 1000);
INSERT INTO t3 VALUES (NULL);
VACUUM;
CREATE VIEW IF NOT EXISTS v_t1_3865 AS SELECT a 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;
SELECT * FROM t1 AS a JOIN T AS b ON a.rowid = b.rowid;
WITH cte AS (SELECT a, SUM(a) AS total FROM t2 GROUP BY a) SELECT * FROM cte ORDER BY total DESC;
INSERT INTO t1 VALUES (NULL);
ANALYZE T;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<1) SELECT * FROM cnt;
ALTER TABLE T ADD COLUMN extra_190 DATE DEFAULT 0;
WITH cte AS (SELECT b FROM T UNION SELECT b FROM T) SELECT * FROM cte;
DROP VIEW IF EXISTS t2;
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;
SELECT * FROM t3 AS a LEFT JOIN t2 AS b ON a.rowid = b.rowid;
SELECT * FROM t2;
ALTER TABLE t1 RENAME COLUMN a TO a_r4594;
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 TRIGGER IF NOT EXISTS trg_t1_5962 AFTER UPDATE ON t1 BEGIN SELECT RAISE(FAIL, 'no'); END;
INSERT INTO T SELECT * FROM T;
DROP TABLE IF EXISTS t1;
INSERT OR FAIL INTO t2 VALUES (0);
ALTER TABLE T ADD COLUMN extra_1673 CHARINT;
PRAGMA fullsync = OFF;
INSERT INTO T SELECT * FROM T;
SELECT MAX(a) FROM t1;
INSERT INTO T DEFAULT VALUES;
SELECT * FROM t3 AS a JOIN t1 AS b ON a.rowid = b.rowid;
INSERT OR ABORT INTO t3 VALUES ('x');
```
## 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,651 @@
## 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 sp8595;
SAVEPOINT sp6434;
CREATE TABLE T (
a TEXT,
b TEXT
);
INSERT INTO T VALUES ('a','b'), ('c','d');
SELECT * FROM T WHERE a <= REPLACE('a;',';','') AND b = 'b';
SELECT GROUP_CONCAT(b, '|') FROM T;
ROLLBACK TRANSACTION TO SAVEPOINT sp6434;
RELEASE SAVEPOINT sp6434;
ROLLBACK TRANSACTION TO SAVEPOINT sp8595;
RELEASE SAVEPOINT sp8595;
```
## Actual output
```sql
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(): 6663
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: 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: 38 (max 38)
Successful lookaside attempts: 42
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(): 6757
Bytes sent to write(): 1285
Read() system calls: 15
Write() system calls: 1
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
Memory Used: 86232 (max 86752) bytes
Number of Outstanding Allocations: 171 (max 176)
Number of Pcache Overflow Bytes: 16928 (max 16928) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4360 bytes
Lookaside Slots Used: 34 (max 90)
Successful lookaside attempts: 117
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 13592 bytes
Page cache hits: 4
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Schema Heap Usage: 1008 bytes
Statement Heap/Lookaside Usage: 2416 bytes
Fullscan Steps: 0
Sort Operations: 0
Autoindex Inserts: 0
Virtual Machine Steps: 30
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 2416
Bytes received by read(): 7110
Bytes sent to write(): 2573
Read() system calls: 18
Write() system calls: 2
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
Memory Used: 83840 (max 86752) bytes
Number of Outstanding Allocations: 160 (max 176)
Number of Pcache Overflow Bytes: 16928 (max 16928) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4360 bytes
Lookaside Slots Used: 44 (max 90)
Successful lookaside attempts: 143
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 13592 bytes
Page cache hits: 1
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Schema Heap Usage: 1032 bytes
Statement Heap/Lookaside Usage: 3424 bytes
Fullscan Steps: 0
Sort Operations: 0
Autoindex Inserts: 0
Virtual Machine Steps: 24
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 3424
Bytes received by read(): 7207
Bytes sent to write(): 3869
Read() system calls: 20
Write() system calls: 3
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
a|b
Memory Used: 83840 (max 86752) bytes
Number of Outstanding Allocations: 160 (max 176)
Number of Pcache Overflow Bytes: 16928 (max 16928) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4360 bytes
Lookaside Slots Used: 53 (max 90)
Successful lookaside attempts: 200
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 13592 bytes
Page cache hits: 1
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Schema Heap Usage: 1032 bytes
Statement Heap/Lookaside Usage: 5648 bytes
Fullscan Steps: 1
Sort Operations: 0
Autoindex Inserts: 0
Virtual Machine Steps: 24
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 5648
Bytes received by read(): 7304
Bytes sent to write(): 5165
Read() system calls: 22
Write() system calls: 4
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
b|d
Memory Used: 83840 (max 86752) bytes
Number of Outstanding Allocations: 160 (max 176)
Number of Pcache Overflow Bytes: 16928 (max 16928) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4360 bytes
Lookaside Slots Used: 44 (max 90)
Successful lookaside attempts: 231
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 13592 bytes
Page cache hits: 1
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Schema Heap Usage: 1032 bytes
Statement Heap/Lookaside Usage: 3424 bytes
Fullscan Steps: 1
Sort Operations: 0
Autoindex Inserts: 0
Virtual Machine Steps: 18
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 3424
Bytes received by read(): 7401
Bytes sent to write(): 6465
Read() system calls: 24
Write() system calls: 5
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
Memory Used: 82784 (max 86752) bytes
Number of Outstanding Allocations: 134 (max 176)
Number of Pcache Overflow Bytes: 16928 (max 16928) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4360 bytes
Lookaside Slots Used: 38 (max 90)
Successful lookaside attempts: 235
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 13592 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(): 7498
Bytes sent to write(): 7765
Read() system calls: 26
Write() system calls: 6
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
Memory Used: 77104 (max 86752) bytes
Number of Outstanding Allocations: 128 (max 176)
Number of Pcache Overflow Bytes: 16928 (max 16928) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4360 bytes
Lookaside Slots Used: 37 (max 90)
Successful lookaside attempts: 239
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 13592 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(): 7595
Bytes sent to write(): 9057
Read() system calls: 28
Write() system calls: 7
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
Memory Used: 77104 (max 86752) bytes
Number of Outstanding Allocations: 128 (max 176)
Number of Pcache Overflow Bytes: 16928 (max 16928) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4360 bytes
Lookaside Slots Used: 37 (max 90)
Successful lookaside attempts: 243
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 13592 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(): 7692
Bytes sent to write(): 10349
Read() system calls: 30
Write() system calls: 8
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
Memory Used: 71072 (max 86752) bytes
Number of Outstanding Allocations: 124 (max 176)
Number of Pcache Overflow Bytes: 12568 (max 16928) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4360 bytes
Lookaside Slots Used: 36 (max 90)
Successful lookaside attempts: 247
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: 0 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(): 7790
Bytes sent to write(): 11642
Read() system calls: 33
Write() system calls: 9
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
```
## Expectation
```sql
Memory Used: 63416 (max 63416) bytes
Number of Outstanding Allocations: 132 (max 132)
Number of Pcache Overflow Bytes: 4104 (max 4104) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4104 bytes
Lookaside Slots Used: 53 (max 53)
Successful lookaside attempts: 53
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
Temporary data spilled to disk: 0
Schema Heap Usage: 0 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(): 7439
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: 63416 (max 63416) bytes
Number of Outstanding Allocations: 132 (max 132)
Number of Pcache Overflow Bytes: 4104 (max 4104) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4104 bytes
Lookaside Slots Used: 54 (max 54)
Successful lookaside attempts: 58
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
Temporary data spilled to disk: 0
Schema Heap Usage: 0 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(): 7533
Bytes sent to write(): 1324
Read() system calls: 16
Write() system calls: 1
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
Memory Used: 86688 (max 87200) bytes
Number of Outstanding Allocations: 181 (max 186)
Number of Pcache Overflow Bytes: 16936 (max 16936) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4368 bytes
Lookaside Slots Used: 50 (max 99)
Successful lookaside attempts: 126
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 13608 bytes
Page cache hits: 4
Page cache misses: 0
Page cache writes: 0
Page cache spills: 0
Temporary data spilled to disk: 0
Schema Heap Usage: 856 bytes
Statement Heap/Lookaside Usage: 2304 bytes
Fullscan Steps: 0
Sort Operations: 0
Autoindex Inserts: 0
Virtual Machine Steps: 30
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 2304
Bytes received by read(): 7630
Bytes sent to write(): 2651
Read() system calls: 18
Write() system calls: 2
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
Memory Used: 84392 (max 87200) bytes
Number of Outstanding Allocations: 170 (max 186)
Number of Pcache Overflow Bytes: 16936 (max 16936) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4368 bytes
Lookaside Slots Used: 61 (max 99)
Successful lookaside attempts: 158
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 13608 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: 864 bytes
Statement Heap/Lookaside Usage: 4624 bytes
Fullscan Steps: 0
Sort Operations: 0
Autoindex Inserts: 0
Virtual Machine Steps: 24
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 4624
Bytes received by read(): 7727
Bytes sent to write(): 3985
Read() system calls: 20
Write() system calls: 3
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
a|b
Memory Used: 84392 (max 87200) bytes
Number of Outstanding Allocations: 170 (max 186)
Number of Pcache Overflow Bytes: 16936 (max 16936) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4368 bytes
Lookaside Slots Used: 65 (max 99)
Successful lookaside attempts: 211
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 13608 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: 864 bytes
Statement Heap/Lookaside Usage: 5136 bytes
Fullscan Steps: 1
Sort Operations: 0
Autoindex Inserts: 0
Virtual Machine Steps: 24
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 5136
Bytes received by read(): 7824
Bytes sent to write(): 5319
Read() system calls: 22
Write() system calls: 4
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
b|d
Memory Used: 84392 (max 87200) bytes
Number of Outstanding Allocations: 170 (max 186)
Number of Pcache Overflow Bytes: 16936 (max 16936) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4368 bytes
Lookaside Slots Used: 59 (max 99)
Successful lookaside attempts: 241
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 13608 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: 864 bytes
Statement Heap/Lookaside Usage: 3296 bytes
Fullscan Steps: 1
Sort Operations: 0
Autoindex Inserts: 0
Virtual Machine Steps: 18
Reprepare operations: 0
Number of times run: 1
Memory used by prepared stmt: 3296
Bytes received by read(): 7921
Bytes sent to write(): 6657
Read() system calls: 24
Write() system calls: 5
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
Memory Used: 83528 (max 87200) bytes
Number of Outstanding Allocations: 144 (max 186)
Number of Pcache Overflow Bytes: 16936 (max 16936) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4368 bytes
Lookaside Slots Used: 54 (max 99)
Successful lookaside attempts: 245
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 13608 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: 0 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(): 8018
Bytes sent to write(): 7995
Read() system calls: 26
Write() system calls: 6
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
Memory Used: 77896 (max 87200) bytes
Number of Outstanding Allocations: 138 (max 186)
Number of Pcache Overflow Bytes: 16936 (max 16936) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4368 bytes
Lookaside Slots Used: 53 (max 99)
Successful lookaside attempts: 249
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 13608 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: 0 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(): 8115
Bytes sent to write(): 9326
Read() system calls: 28
Write() system calls: 7
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
Memory Used: 77896 (max 87200) bytes
Number of Outstanding Allocations: 138 (max 186)
Number of Pcache Overflow Bytes: 16936 (max 16936) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4368 bytes
Lookaside Slots Used: 53 (max 99)
Successful lookaside attempts: 253
Lookaside failures due to size: 0
Lookaside failures due to OOM: 0
Pager Heap Usage: 13608 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: 0 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(): 8212
Bytes sent to write(): 10657
Read() system calls: 30
Write() system calls: 8
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
Memory Used: 71880 (max 87200) bytes
Number of Outstanding Allocations: 134 (max 186)
Number of Pcache Overflow Bytes: 12568 (max 16936) bytes
Largest Allocation: 48000 bytes
Largest Pcache Allocation: 4368 bytes
Lookaside Slots Used: 52 (max 99)
Successful lookaside attempts: 257
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: 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(): 8310
Bytes sent to write(): 11989
Read() system calls: 33
Write() system calls: 9
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
```
## Flag
```
-stats
```
@@ -0,0 +1,140 @@
## 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 on
CREATE TEMPORARY TABLE t0(x, y, z);
SELECT -99999999999999999999999999999999999999999999999999;
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
DROP TABLE t0;
ATTACH DATABASE ':memory:' AS aux41;
ATTACH DATABASE ':memory:' AS aux57;
CREATE TABLE "T" (
a INTEGER,
b REAL
);
inSeRT INTO T VALUES (pi(),-9223372036854775808), (2,-2.5), (3,0.0);
CREATE INDEX c
ON T(b);
SELECT * FROM T WHERE b >= -2.5 AND b < 2.0;
SELECT COUNT(*) FROM T;
REINDEX;
SELECT SUM(b) FROM T;
SELECT COUNT(*) FROM T;
DELETE FROM T WHERE 0;
DELETE FROM T WHERE b > (SELECT AVG(b) FROM T);
CREATE TRIGGER IF NOT EXISTS trg_T_842 BEFORE DELETE ON T BEGIN SELECT RAISE(IGNORE); END;
CREATE INDEX IF NOT EXISTS idx_T_1447 ON T(lower(b));
DETACH DATABASE aux57;
SELECT AVG(a) FILTER (WHERE a != 0) OVER (PARTITION BY a ORDER BY a ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T;
DELETE FROM T WHERE b IS NULL;
WITH a AS (SELECT * FROM T), b AS (SELECT * FROM a) SELECT * FROM b;
DETACH DATABASE aux41;
SELECT COUNT(*) FROM T;
PRAGMA defer_foreign_keys = NO;
SELECT * FROM T WHERE a IN (SELECT a FROM T WHERE 1/0 = 0);SELECT * FROM T WHERE a IN (SELECT a FROM T LIMIT -1);
SELECT COUNT(*) FROM T;
SELECT * FROM T WHERE b IN (SELECT ALL b FROM T);
```
## Actual output
```sql
Run Time: real 0.001 user 0.000329 sys 0.000000
-1.0e+50
Run Time: real 0.000 user 0.000014 sys 0.000000
Run Time: real 0.000 user 0.000026 sys 0.000000
Run Time: real 0.000 user 0.000110 sys 0.000000
Run Time: real 0.000 user 0.000035 sys 0.000000
Run Time: real 0.000 user 0.000026 sys 0.000000
Run Time: real 0.000 user 0.000060 sys 0.000000
Run Time: real 0.000 user 0.000025 sys 0.000000
Run Time: real 0.000 user 0.000069 sys 0.000000
2|-2.5
3|0.0
Run Time: real 0.000 user 0.000030 sys 0.000000
3
Run Time: real 0.000 user 0.000011 sys 0.000000
Run Time: real 0.000 user 0.000012 sys 0.000000
-9.22337203685478e+18
Run Time: real 0.000 user 0.000017 sys 0.000000
3
Run Time: real 0.000 user 0.000007 sys 0.000000
Run Time: real 0.000 user 0.000009 sys 0.000000
Run Time: real 0.000 user 0.000031 sys 0.000000
Run Time: real 0.000 user 0.000056 sys 0.000000
Run Time: real 0.000 user 0.000059 sys 0.000000
Run Time: real 0.000 user 0.000007 sys 0.000000
Run Time: real 0.000 user 0.000087 sys 0.000000
Run Time: real 0.000 user 0.000028 sys 0.000000
3.14159265358979|-9.22337203685478e+18
Run Time: real 0.000 user 0.000030 sys 0.000000
Run Time: real 0.000 user 0.000004 sys 0.000000
1
Run Time: real 0.000 user 0.000008 sys 0.000000
Run Time: real 0.000 user 0.000009 sys 0.000000
3.14159265358979|-9.22337203685478e+18
Run Time: real 0.000 user 0.000057 sys 0.000000
1
Run Time: real 0.000 user 0.000007 sys 0.000000
3.14159265358979|-9.22337203685478e+18
Run Time: real 0.001 user 0.000026 sys 0.000000
```
## Expectation
```sql
Run Time: real 0.000115 user 0.000123 sys 0.000000
-1.0e+50
Run Time: real 0.000007 user 0.000007 sys 0.000000
Run Time: real 0.000011 user 0.000011 sys 0.000000
Run Time: real 0.000047 user 0.000047 sys 0.000000
Run Time: real 0.000015 user 0.000015 sys 0.000000
Run Time: real 0.000010 user 0.000011 sys 0.000000
Run Time: real 0.000025 user 0.000025 sys 0.000000
Run Time: real 0.000013 user 0.000013 sys 0.000000
Run Time: real 0.000026 user 0.000027 sys 0.000000
2|-2.5
3|0.0
Run Time: real 0.000011 user 0.000012 sys 0.000000
3
Run Time: real 0.000005 user 0.000005 sys 0.000000
Run Time: real 0.000004 user 0.000005 sys 0.000000
-9.22337203685478e+18
Run Time: real 0.000007 user 0.000007 sys 0.000000
3
Run Time: real 0.000003 user 0.000002 sys 0.000000
Run Time: real 0.000003 user 0.000004 sys 0.000000
Run Time: real 0.000015 user 0.000015 sys 0.000000
Run Time: real 0.000023 user 0.000022 sys 0.000000
Run Time: real 0.000023 user 0.000024 sys 0.000000
Run Time: real 0.000003 user 0.000003 sys 0.000000
Run Time: real 0.000040 user 0.000039 sys 0.000000
Run Time: real 0.000011 user 0.000012 sys 0.000000
3.14159265358979|-9.22337203685478e+18
Run Time: real 0.000012 user 0.000013 sys 0.000000
Run Time: real 0.000002 user 0.000002 sys 0.000000
1
Run Time: real 0.000003 user 0.000003 sys 0.000000
Run Time: real 0.000002 user 0.000003 sys 0.000000
3.14159265358979|-9.22337203685478e+18
Run Time: real 0.000025 user 0.000026 sys 0.000000
1
Run Time: real 0.000002 user 0.000003 sys 0.000000
3.14159265358979|-9.22337203685478e+18
Run Time: real 0.000010 user 0.000011 sys 0.000000
```
## Flag
```
```
@@ -0,0 +1,42 @@
## 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
CREATE TABLE main.T (
a INTEGER,
b TEXT,
c REAL
);
INSERT INTO T VALUES (concat('a', 'b', 'c'),'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;
WITH cte AS (SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T WHERE a > 0)) SELECT * FROM cte;
PRAGMA short_column_names = NO;
INSERT INTO T VALUES (NULL, NULL, NULL);
SELECT * FROM T NATURAL JOIN T;
SELECT * FROM (SELECT b FROM T WHERE b IS NOT NULL) AS sub;
```
## Actual output
```sql
Parse error near line 7: no such function: concat
INSERT INTO T VALUES (concat('a', 'b', 'c'),'a',3.14), (1,'b',-7.75), (2,'c',-
^--- error here
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,117 @@
## 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 short_column_names;
ATTACH DATABASE ':memory:' AS aux31;
ATTACH DATABASE ':memory:' AS aux55;
-- json_set({v}, '$.new_key', {v})
ATTACH DATABASE ':memory:' AS aux6;
CREATE TABLE T (
a INTEGER,
b TEXT,
c REAL
);
INSERT INTO T VALUES (asinh(-7932293039094677366),'a',1.25), (2,'b',-3.5), (3,'c',9e999);
WITH d AS (SELECT * FROM T) SELECT * FROM d WHERE c > 0;
PRAGMA module_list;
PRAGMA journal_mode;
PRAGMA user_version;
.prompt 'IPA eli isopropanoli on loistava puhdistusaine joka irrataa'
CREATE TABLE t1(a,b,x);
CREATE TABLE t2(c,d,y);
CREATE INDEX t1b ON t1(b);
CREATE INDEX t2d ON t2(d);
ANALYZE sqlite_master;
INSERT INTO sqlite_stat1 VALUES('t1','t1b','10000 500');
INSERT INTO sqlite_stat1 VALUES('t2','t2d','10000 500');
ANALYZE sqlite_master;
SELECT * FROM t1, t2 WHERE d=b;
SELECT * FROM t1, t2 WHERE d>b AND x=y;
DETACH DATABASE aux6;
SELECT * FROM T WHERE a IN (SELECT a FROM T);
SELECT MAX(x) FROM t1;
PRAGMA soft_heap_limit = 10000000;
CREATE TEMP VIEW IF NOT EXISTS v_T_6525 AS SELECT a FROM T;
SELECT * FROM t2 AS a JOIN t1 AS b ON a.rowid = b.rowid;
REINDEX;
SELECT SUM(c) OVER (ORDER BY c RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t2;
DETACH DATABASE aux55;
DETACH DATABASE aux31;
UPDATE t1 SET b = CURRENT_TIMESTAMP;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_6727 AS SELECT a FROM t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL);
```
## Actual output
```sql
1
-44.210621008338|a|1.25
3|c|Inf
sqlite_dbdata
generate_series
completion
fsdir
tables_used
sqlite_stmt
json_tree
fts4aux
fts3
fts4
sqlite_dbptr
fts3tokenize
bytecode
rtree_i32
sqlite_dbpage
rtree
dbstat
json_each
memory
0
-44.210621008338|a|1.25
2|b|-3.5
3|c|Inf
10000000
```
## Expectation
```sql
1
-44.210621008338|a|1.25
3|c|Inf
fsdir
generate_series
bytecode
dbstat
tables_used
sqlite_stmt
sqlite_dbpage
rtree_i32
fts4aux
fts3
zipfile
fts4
completion
rtree
fts3tokenize
memory
0
-44.210621008338|a|1.25
2|b|-3.5
3|c|Inf
10000000
```
## Flag
```
```
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,40 @@
## 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
SELECT asinh(-x'c36e2d')x0ACB29BM205381;
SELECT sqlite_compileoption_used('我的天你是怎么了');
SELECT -(-(1)) >> -999999999999999999999999999;
SELECT sqlite_compileoption_get($1);
SELECT sqlite_version();
VACUUM main;
```
## Actual output
```sql
0.0
0
0
ATOMIC_INTRINSICS=1
3.39.0
```
## Expectation
```sql
0.0
0
0
ATOMIC_INTRINSICS=1
3.51.1
```
## Flag
```
```
@@ -0,0 +1,39 @@
## 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
SELECT json_array_length(0)x0ACB29BM205381;
SELECT sqlite_compileoption_used('我的天你是怎么了');
SELECT 1 >> -999999999999999999999999999;
SELECT sqlite_compileoption_get($1);
SELECT sqlite_version();
```
## Actual output
```sql
0
0
0
ATOMIC_INTRINSICS=1
3.39.0
```
## Expectation
```sql
0
0
0
ATOMIC_INTRINSICS=1
3.51.1
```
## 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
.eqp off
.prompt
.connection
ATTACH DATABASE ':memory:' AS aux57;
.progress NULL
ATTACH DATABASE ':memory:' AS aux98;
CREATE TABLE T (
a INTEGER,
b TEXT,
c REAL
);
INSERT INTO T VALUES (tan(concat('a', 'b', 'c')),'a',CAST(json_valid(1.25, 2) AS SMALLINT)), (2,'b',-3.5), (3,'c',9e999);
WITH d AS (SELECT * FROM T) SELECT * FROM d WHERE +c < 0;
UPDATE T SET b = -85 WHERE b IS NOT NULL;
VACUUM;
DETACH DATABASE aux98;
WITH RECURSIVE tree(id, parent, depth) AS (VALUES(1, NULL, 0) UNION ALL SELECT id+1, id, depth+1 FROM tree WHERE depth<6) SELECT * FROM tree;
SELECT * FROM T AS a JOIn T AS b ON a.rowid = b.rowid;
SELECT * FROM T AS a RIGHT JOIN T AS b ON a.rowid = b.rowid;
PRAGMA trusted_schema = ON;
VACUUM;
WITH cte(x) AS (VALUES(NULL),(1),(NULL)) SELECT * FROM cte WHERE x IS NOT NULL;
DETACH DATABASE aux57;
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;
ANALYZE T1;
ANALYZE T1;
DELETE FROM T2 WHERE b > (SELECT AVG(b) FROM T2) RETURNING *;
CREATE TRIGGER IF NOT EXISTS trg_T1_2080 AFTER UPDATE OF b ON T1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
REINDEX T;
DELETE FROM T1 WHERE 0;
ALTER TABLE T2 RENAME COLUMN a TO a_r2;
REINDEX;
CREATE TRIGGER IF NOT EXISTS trg_T_1920 AFTER DELETE ON T BEGIN SELECT RAISE(IGNORE); END;
DROP INDEX IF EXISTS T2;
CREATE TRIGGER IF NOT EXISTS trg_T1_9937 BEFORE UPDATE OF b ON T1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
```
## Actual output
```sql
ACTIVE 0: :memory:
1||0
2|1|1
3|2|2
4|3|3
5|4|4
6|5|5
7|6|6
1
a|c,d
b|
1|c
1|d
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,450 @@
## 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 = ON;
ATTACH DATABASE (':memory:' || '') AS aux24;
.lint
BEGIN EXCLUSIVE TRANSACTION;
-- PRAGMA trusted_schema = 1;
.system false && echo "success" || echo "error code: $?"
CREATE TABLE main.t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (unixepoch(likelihood(-(-(-jsonb_object('k1', load_extension(datetime(2147483649, '+1 day'), 2147483649), 'k2', 2147483649))), 0.0625)), '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 sp6237;
CREATE TABLE T (
A VARCHAR(concat_ws('', 'a', 'b', 'c')) PRIMARY KEY,
B VARCHAR(if(0,30,0,30,0,30,0,30,0,30,0,30,30)) NOT NULL,
C BIGINT 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 C > 0 ORDER BY C DESC;
BEGIN EXCLUSIVE TRANSACTION;
.timer off
.schema
PRAGMA foreign_keys = -CAST(-1 AS BIGINT);
PRAGMA threads;
PRAGMA foreign_keys = ON;
.timeout -1
CREATE TABLE t0 (c0, c1 NOT NULL DEFAULT 1, 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 (SELECT * FROM t0) AS sub;
REINDEX;
CREATE INDEX IF NOT EXISTS idx_t0_6740 ON t0(c2 COLLATE NOCASE) WHERE c2 IS NOT NULL;
SELECT * FROM t0 WHERE c1 = (SELECT c1 FROM t0 t2 WHERE t2.c1 = t0.c1 LIMIT 1);
CREATE TRIGGER IF NOT EXISTS trg_t0_2041 BEFORE INSERT ON t0 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<37), filtered AS (SELECT * FROM cnt WHERE x > 18) SELECT * FROM filtered;
CREATE TRIGGER IF NOT EXISTS trg_t0_1600 BEFORE INSERT ON t0 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
INSERT OR FAIL INTO t0 VALUES (0, 0, '');
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;
ROLLBACK;
UPDATE t0 SET c1 = json_object('k', c1);
SELECT * FROM t0;
ROLLBACK TRANSACTION TO SAVEPOINT sp6237;
RELEASE SAVEPOINT sp6237;
INSERT OR ABORT INTO t0 VALUES ('', NULL, NULL);
WITH RECURSIVE multi(a, b) AS (VALUES(1, "x") UNION ALL SELECT a+1, "x" FROM multi WHERE a<2) SELECT * FROM multi;
END;
CREATE VIEW IF NOT EXISTS v_t0_7574 AS SELECT c1 FROM t0;
ANALYZE;
PRAGMA writable_schema = YES;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<5) SELECT SUM(x) FROM cnt;
SELECT * FROM T WHERE B = (SELECT MAX(B) FROM T WHERE B = (SELECT MAX(B) FROM T));
DELETE FROM t1 WHERE 1;
INSERT INTO T1 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
VACUUM main;
INSERT INTO t1 SELECT * FROM t1;
SELECT COUNT(*) FROM T;
ANALYZE;
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;
SELECT * FROM T1 WHERE A > (SELECT MAX(A) FROM T1);
SELECT * FROM t1;
INSERT OR ROLLBACK INTO t1 VALUES ('', -2, 6, -9);
CREATE TEMP VIEW IF NOT EXISTS v_T_9745 AS SELECT a FROM T;
ALTER TABLE T1 RENAME TO T1_r1976;
REINDEX;
CREATE TRIGGER IF NOT EXISTS trg_T1_4621 BEFORE DELETE ON T1 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
SELECT * FROM T2 AS a LEFT JOIN T1 AS b ON a.rowid = b.rowid;
ALTER TABLE T ADD COLUMN extra_1665 DOUBLE;
INSERT INTO T2 VALUES (NULL, 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
DROP VIEW IF EXISTS T1;
INSERT INTO T VALUES (NULL, NULL, NULL);
INSERT INTO T1 VALUES (NULL, NULL);
CREATE TRIGGER IF NOT EXISTS trg_T1_5266 AFTER UPDATE OF A ON T1 BEGIN INSERT INTO T1(A) VALUES (NULL); END;
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 t0 VALUES ('x', 1, 1) ON CONFLICT(c0) DO UPDATE SET c0 = excluded.c0, c1 = excluded.c1, c2 = excluded.c2;
.lint
BEGIN EXCLUSIVE TRANSACTION;
-- PRAGMA trusted_schema = 1;
.system false && echo "success" || echo "error code: $?"
CREATE TABLE main.t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (unixepoch(likelihood(-(-(-jsonb_object('k1', 2147483649, 'k2', 2147483649))), 0.0625)), '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 sp6237;
CREATE TABLE T (
A VARCHAR(concat_ws('', 'a', 'b', 'c')) PRIMARY KEY,
B VARCHAR(if(0,30,0,30,0,30,0,30,0,30,0,30,30)) NOT NULL,
C BIGINT 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 C > 0 ORDER BY C DESC;
BEGIN EXCLUSIVE TRANSACTION;
.timer off
.schema
PRAGMA foreign_keys = -CAST(-1 AS BIGINT);
PRAGMA threads;
PRAGMA foreign_keys = ON;
.timeout -1
CREATE TABLE t0 (c0, c1 NOT NULL DEFAULT 1, 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 (SELECT * FROM t0) AS sub;
REINDEX;
CREATE INDEX IF NOT EXISTS idx_t0_6740 ON t0(c2 COLLATE NOCASE) WHERE c2 IS NOT NULL;
SELECT * FROM t0 WHERE c1 = (SELECT c1 FROM t0 t2 WHERE t2.c1 = t0.c1 LIMIT 1);
CREATE TRIGGER IF NOT EXISTS trg_t0_2041 BEFORE INSERT ON t0 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<37), filtered AS (SELECT * FROM cnt WHERE x > 18) SELECT * FROM filtered;
CREATE TRIGGER IF NOT EXISTS trg_t0_1600 BEFORE INSERT ON t0 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
INSERT OR FAIL INTO t0 VALUES (0, 0, '');
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;
ROLLBACK;
UPDATE t0 SET c1 = json_object('k', c1);
SELECT * FROM t0;
ROLLBACK TRANSACTION TO SAVEPOINT sp6237;
RELEASE SAVEPOINT sp6237;
INSERT OR ABORT INTO t0 VALUES ('', NULL, NULL);
WITH RECURSIVE multi(a, b) AS (VALUES(1, "x") UNION ALL SELECT a+1, "x" FROM multi WHERE a<2) SELECT * FROM multi;
END;
CREATE VIEW IF NOT EXISTS v_t0_7574 AS SELECT c1 FROM t0;
ANALYZE;
PRAGMA writable_schema = YES;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<5) SELECT SUM(x) FROM cnt;
SELECT * FROM T WHERE B = (SELECT MAX(B) FROM T WHERE B = (SELECT MAX(B) FROM T));
DELETE FROM t1 WHERE 1;
INSERT INTO T1 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
VACUUM main;
INSERT INTO t1 SELECT * FROM t1;
SELECT COUNT(*) FROM T;
ANALYZE;
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;
SELECT * FROM T1 WHERE A > (SELECT MAX(A) FROM T1);
SELECT * FROM t1;
INSERT OR ROLLBACK INTO t1 VALUES ('', -2, 6, -9);
CREATE TEMP VIEW IF NOT EXISTS v_T_9745 AS SELECT a FROM T;
ALTER TABLE T1 RENAME TO T1_r1976;
REINDEX;
CREATE TRIGGER IF NOT EXISTS trg_T1_4621 BEFORE DELETE ON T1 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
SELECT * FROM T2 AS a LEFT JOIN T1 AS b ON a.rowid = b.rowid;
ALTER TABLE T ADD COLUMN extra_1665 DOUBLE;
INSERT INTO T2 VALUES (NULL, 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
DROP VIEW IF EXISTS T1;
INSERT INTO T VALUES (NULL, NULL, NULL);
INSERT INTO T1 VALUES (NULL, NULL);
CREATE TRIGGER IF NOT EXISTS trg_T1_5266 AFTER UPDATE OF A ON T1 BEGIN INSERT INTO T1(A) VALUES (NULL); END;
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 t0 VALUES ('x', 1, 1) ON CONFLICT(c0) DO UPDATE SET c0 = excluded.c0, c1 = excluded.c1, c2 = excluded.c2;
.lint
BEGIN EXCLUSIVE TRANSACTION;
-- PRAGMA trusted_schema = 1;
.system false && echo "success" || echo "error code: $?"
CREATE TABLE main.t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (unixepoch(likelihood(-(-(-jsonb_object('k1', 2147483649, 'k2', 2147483649))), 0.0625)), '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 sp6237;
CREATE TABLE T (
A VARCHAR(concat_ws('', 'a', 'b', 'c')) PRIMARY KEY,
B VARCHAR(if(0,30,0,30,0,30,0,30,0,30,0,30,30)) NOT NULL,
C BIGINT 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 C > 0 ORDER BY C DESC;
BEGIN EXCLUSIVE TRANSACTION;
.timer off
.schema
PRAGMA foreign_keys = -CAST(-1 AS BIGINT);
PRAGMA threads;
PRAGMA foreign_keys = ON;
.timeout -1
CREATE TABLE t0 (c0, c1 NOT NULL DEFAULT 1, 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 (SELECT * FROM t0) AS sub;
REINDEX;
CREATE INDEX IF NOT EXISTS idx_t0_6740 ON t0(c2 COLLATE NOCASE) WHERE c2 IS NOT NULL;
SELECT * FROM t0 WHERE c1 = (SELECT c1 FROM t0 t2 WHERE t2.c1 = t0.c1 LIMIT 1);
CREATE TRIGGER IF NOT EXISTS trg_t0_2041 BEFORE INSERT ON t0 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<37), filtered AS (SELECT * FROM cnt WHERE x > 18) SELECT * FROM filtered;
CREATE TRIGGER IF NOT EXISTS trg_t0_1600 BEFORE INSERT ON t0 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
INSERT OR FAIL INTO t0 VALUES (0, 0, '');
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;
ROLLBACK;
UPDATE t0 SET c1 = json_object('k', c1);
SELECT * FROM t0;
ROLLBACK TRANSACTION TO SAVEPOINT sp6237;
RELEASE SAVEPOINT sp6237;
INSERT OR ABORT INTO t0 VALUES ('', NULL, NULL);
WITH RECURSIVE multi(a, b) AS (VALUES(1, "x") UNION ALL SELECT a+1, "x" FROM multi WHERE a<2) SELECT * FROM multi;
END;
CREATE VIEW IF NOT EXISTS v_t0_7574 AS SELECT c1 FROM t0;
ANALYZE;
PRAGMA writable_schema = YES;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<5) SELECT SUM(x) FROM cnt;
SELECT * FROM T WHERE B = (SELECT MAX(B) FROM T WHERE B = (SELECT MAX(B) FROM T));
DELETE FROM t1 WHERE 1;
INSERT INTO T1 VALUES ('x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
VACUUM main;
INSERT INTO t1 SELECT * FROM t1;
SELECT COUNT(*) FROM T;
ANALYZE;
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;
SELECT * FROM T1 WHERE A > (SELECT MAX(A) FROM T1);
SELECT * FROM t1;
INSERT OR ROLLBACK INTO t1 VALUES ('', -2, 6, -9);
CREATE TEMP VIEW IF NOT EXISTS v_T_9745 AS SELECT a FROM T;
ALTER TABLE T1 RENAME TO T1_r1976;
REINDEX;
CREATE TRIGGER IF NOT EXISTS trg_T1_4621 BEFORE DELETE ON T1 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
SELECT * FROM T2 AS a LEFT JOIN T1 AS b ON a.rowid = b.rowid;
ALTER TABLE T ADD COLUMN extra_1665 DOUBLE;
INSERT INTO T2 VALUES (NULL, 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
DROP VIEW IF EXISTS T1;
INSERT INTO T VALUES (NULL, NULL, NULL);
INSERT INTO T1 VALUES (NULL, NULL);
CREATE TRIGGER IF NOT EXISTS trg_T1_5266 AFTER UPDATE OF A ON T1 BEGIN INSERT INTO T1(A) VALUES (NULL); END;
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 t0 VALUES ('x', 1, 1) ON CONFLICT(c0) DO UPDATE SET c0 = excluded.c0, c1 = excluded.c1, c2 = excluded.c2;
WITH RECURSIVE r AS (SELECT Y FROM T2 UNION ALL SELECT Y FROM T2 LIMIT 5) SELECT * FROM r;
DETACH DATABASE aux24;
VACUUM;
SELECT * FROM T;
ALTER TABLE t1 DROP COLUMN b;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
SELECT * FROM T1 AS a FULL JOIN T1 AS b ON a.rowid = b.rowid;
INSERT INTO t0 DEFAULT VALUES;
ALTER TABLE t1 ADD COLUMN extra_3968 INT8 UNIQUE;
CREATE VIEW IF NOT EXISTS v_T1_673 AS SELECT A FROM T1;
WITH cte AS (SELECT c2, SUM(c2) AS total FROM t0 GROUP BY c2) SELECT * FROM cte ORDER BY total DESC;
INSERT INTO T2 VALUES (1, 'x') ON CONFLICT(A) DO UPDATE SET A = excluded.A, Y = excluded.Y;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_5205 ON T((b + 1)) WHERE b > 0;
UPDATE T1 SET X = '' WHERE X IS NOT NULL RETURNING *;
SELECT * FROM T WHERE c NOT IN (SELECT c FROM T WHERE c IS NULL);
SELECT COUNT(*) FROM T1;
```
## Actual output
```sql
error code: 1
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
von|20|2
Braun|30
von|20
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,916 @@
## 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 index_list(users);
PRAGMA trusted_schema = NO;
BEGIN TRANSACTION;
.timeout -jsonb_extract(typeof('#'), '$')
SAVEPOINT sp4770;
-- typeof(1.0)
.limit
SAVEPOINT sp9818;
ATTACH DATABASE ':memory:' AS aux84;
SAVEPOINT sp2531;
.check
SAVEPOINT sp9694;
PRAGMA encoding < 'UTF-8';
ATTACH DATABASE ':memory:' AS aux44;
CREATE TABLE main.main.`T` (
a DOUBLE,
b REAL,
c REAL
);
INSERT INTO T VALUES (strftime('%s', if(coalesce(NULL, NULL, NULL) -> sqrt(datetime(-(-(CAST(x'2f' AS BLOB))))), typeof(NULL), (-(-(datetime(CAST(((json_object('k', json(x'096c11a26d368c64')) + 0.0) + 0.0) AS BIGINT)))) + 9145485036963515638))),1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (SELECT * FROM T) SELEC_m * FROM T) SELEC_m * FROM T) SELEC_m * FROM T WHERE NOT NOT (NOT NOT (+b < 2.0)) ORDER BY b;
DETACH DATABASE aux44;
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T t2 WHERE t2.a = T.a);
INSERT INTO T VALUES (NULL, NULL, NULL);
INSERT OR ROLLBACK INTO T VALUES (NULL, NULL, '');
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE +x<21) SELECT * FROM cnt;
ALTER TABLE T DROP COLUMN b;
DROP VIEW IF EXISTS T;
SELECT ROW_NUMBER() OVER (ORDER BY a ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T;
INSERT OR ROLLBACK INTO T VALUES (-2, NULL, 0);
ROLLBACK TO sp9694;
RELEASE sp9694;
ALTER TABLE T ADD COLUMN extra_4532 UNSIGNED BIG INT DEFAULT (abs(random()) % 1000);
SELECT a, COUNT(*) FROM T GROUP BY a HAVING COUNT(*) = (SELECT COUNT(*) FROM T);
CREATE TRIGGER IF NOT EXISTS trg_T_7371 BEFORE UPDATE ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT COUNT(*) FROM T;
ROLLBACK TO sp2531;
RELEASE sp2531;
INSERT OR ABORT INTO T VALUES (6, 0, 0);
SELECT COUNT(*) FROM T;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION SELECT x+1 FROM cnt WHERE x<8) SELECT * FROM cnt;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<0) SELECT * FROM cnt;
DETACH DATABASE aux84;
SELECT * FROM T t1 JOIN T t2 ON t1.a = (SELECT a FROM T LIMIT 1);
ALTER TABLE T RENAME TO T_r9068;
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;
ROLLBACK TRANSACTION TO SAVEPOINT sp9818;
RELEASE SAVEPOINT sp9818;
SELECT STRING_AGG(a, '|') FROM T;
INSERT INTO T VALUES (NULL, NULL, NULL);
SELECT LEAD(a, 1, NULL) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T;
SELECT RANK() OVER (ORDER BY c GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T;
SELECT COUNT(*) FROM T;
SELECT * FROM T AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
INSERT INTO T VALUES (NULL, NULL, NULL);
ALTER TABLE T ADD COLUMN extra_9504 DOUBLE COLLATE RTRIM;
SELECT * FROM T NATURAL JOIN T;
ANALYZE;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T VALUES (NULL, NULL, NULL);
WITH cte AS (SELECT CASE WHEN a > 0 THEN "pos" ELSE "neg" END AS sign FROM T) SELECT * FROM cte;
SELECT FIRST_VALUE(c) OVER (ORDER BY c ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
ALTER TABLE T ADD COLUMN extra_5697 BIGINT COLLATE NOCASE;
RELEASE sp4770;
PRAGMA short_column_names = OFF;
CREATE TRIGGER IF NOT EXISTS trg_T_534 AFTER UPDATE OF A ON T BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT * FROM T WHERE C = (SELECT GROUP_CONCAT(C) FROM T);
SAVEPOINT sp4770;
.limit
SAVEPOINT sp9818;
ATTACH DATABASE ':memory:' AS aux84;
SAVEPOINT sp2531;
.check
SAVEPOINT sp9694;
PRAGMA encoding = 'UTF-8';
ATTACH DATABASE ':memory:' AS aux44;
CREATE TABLE main.main.`T` (
a REAL,
b REAL,
c REAL
);
INSERT INTO T VALUES (strftime('%s', if(coalesce(NULL, NULL, NULL) -> sqrt(datetime(-(-(CAST(x'2f' AS BLOB))))), typeof(NULL), (0 + 9145485036963515638))),1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (SELECT * FROM T) SELEC_m * FROM T) SELEC_m * FROM T WHERE NOT NOT (NOT NOT (+b < 2.0)) ORDER BY b;
DETACH DATABASE aux44;
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T t2 WHERE t2.a = T.a);
INSERT INTO T VALUES (NULL, NULL, NULL);
INSERT OR ROLLBACK INTO T VALUES (NULL, NULL, '');
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE +x<21) SELECT * FROM cnt;
ALTER TABLE T DROP COLUMN b;
DROP VIEW IF EXISTS T;
SELECT ROW_NUMBER() OVER (ORDER BY a ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T;
INSERT OR ROLLBACK INTO T VALUES (-2, NULL, 0);
ROLLBACK TO sp9694;
RELEASE sp9694;
ALTER TABLE T ADD COLUMN extra_4532 UNSIGNED BIG INT DEFAULT (abs(random()) % 1000);
SELECT a, COUNT(*) FROM T GROUP BY a HAVING COUNT(*) = (SELECT COUNT(*) FROM T);
CREATE TRIGGER IF NOT EXISTS trg_T_7371 BEFORE UPDATE ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT COUNT(*) FROM T;
ROLLBACK TO sp2531;
RELEASE sp2531;
INSERT OR ABORT INTO T VALUES (6, 0, 0);
SELECT COUNT(*) FROM T;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION SELECT x+1 FROM cnt WHERE x<8) SELECT * FROM cnt;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<0) SELECT * FROM cnt;
DETACH DATABASE aux84;
SELECT * FROM T t1 JOIN T t2 ON t1.a = (SELECT a FROM T LIMIT 1);
ALTER TABLE T RENAME TO T_r9068;
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;
ROLLBACK TRANSACTION TO SAVEPOINT sp9818;
RELEASE SAVEPOINT sp9818;
SELECT STRING_AGG(a, '|') FROM T;
INSERT INTO T VALUES (NULL, NULL, NULL);
SELECT LEAD(a, 1, NULL) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T;
SELECT RANK() OVER (ORDER BY c GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T;
SELECT COUNT(*) FROM T;
SELECT * FROM T AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
INSERT INTO T VALUES (NULL, NULL, NULL);
ALTER TABLE T ADD COLUMN extra_9504 DOUBLE COLLATE RTRIM;
SELECT * FROM T NATURAL JOIN T;
ANALYZE;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T VALUES (NULL, NULL, NULL);
WITH cte AS (SELECT CASE WHEN a > 0 THEN "pos" ELSE "neg" END AS sign FROM T) SELECT * FROM cte;
SELECT FIRST_VALUE(c) OVER (ORDER BY c ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
ALTER TABLE T ADD COLUMN extra_5697 BIGINT COLLATE NOCASE;
RELEASE sp4770;
PRAGMA short_column_names = OFF;
CREATE TRIGGER IF NOT EXISTS trg_T_534 AFTER UPDATE OF A ON T BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT * FROM T WHERE C = (SELECT GROUP_CONCAT(C) FROM T);
SAVEPOINT sp4770;
.limit
SAVEPOINT sp9818;
ATTACH DATABASE ':memory:' AS aux84;
SAVEPOINT sp2531;
.check
SAVEPOINT sp9694;
PRAGMA encoding = 'UTF-8';
ATTACH DATABASE ':memory:' AS aux44;
CREATE TABLE main.main.`T` (
a REAL,
b REAL,
c REAL
);
INSERT INTO T VALUES (strftime('%s', if(coalesce(NULL, NULL, NULL) -> sqrt(datetime(-(-(CAST(x'2f' AS BLOB))))), typeof(NULL), (0 + 9145485036963515638))),1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (SELECT * FROM T) SELEC_m * FROM T) SELEC_m * FROM T WHERE NOT NOT (NOT NOT (+b < 2.0)) ORDER BY b;
DETACH DATABASE aux44;
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T t2 WHERE t2.a = T.a);
INSERT INTO T VALUES (NULL, NULL, NULL);
INSERT OR ROLLBACK INTO T VALUES (NULL, NULL, '');
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE +x<21) SELECT * FROM cnt;
ALTER TABLE T DROP COLUMN b;
DROP VIEW IF EXISTS T;
SELECT ROW_NUMBER() OVER (ORDER BY a ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T;
INSERT OR ROLLBACK INTO T VALUES (-2, NULL, 0);
ROLLBACK TO sp9694;
RELEASE sp9694;
ALTER TABLE T ADD COLUMN extra_4532 UNSIGNED BIG INT DEFAULT (abs(random()) % 1000);
SELECT a, COUNT(*) FROM T GROUP BY a HAVING COUNT(*) = (SELECT COUNT(*) FROM T);
CREATE TRIGGER IF NOT EXISTS trg_T_7371 BEFORE UPDATE ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT COUNT(*) FROM T;
ROLLBACK TO sp2531;
RELEASE sp2531;
INSERT OR ABORT INTO T VALUES (6, 0, 0);
SELECT COUNT(*) FROM T;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION SELECT x+1 FROM cnt WHERE x<8) SELECT * FROM cnt;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<0) SELECT * FROM cnt;
DETACH DATABASE aux84;
SELECT * FROM T t1 JOIN T t2 ON t1.a = (SELECT a FROM T LIMIT 1);
ALTER TABLE T RENAME TO T_r9068;
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;
ROLLBACK TRANSACTION TO SAVEPOINT sp9818;
RELEASE SAVEPOINT sp9818;
SELECT STRING_AGG(a, '|') FROM T;
INSERT INTO T VALUES (NULL, NULL, NULL);
SELECT LEAD(a, 1, NULL) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T;
SELECT RANK() OVER (ORDER BY c GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T;
SELECT COUNT(*) FROM T;
SELECT * FROM T AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
INSERT INTO T VALUES (NULL, NULL, NULL);
ALTER TABLE T ADD COLUMN extra_9504 DOUBLE COLLATE RTRIM;
SELECT * FROM T NATURAL JOIN T;
ANALYZE;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T VALUES (NULL, NULL, NULL);
WITH cte AS (SELECT CASE WHEN a > 0 THEN "pos" ELSE "neg" END AS sign FROM T) SELECT * FROM cte;
SELECT FIRST_VALUE(c) OVER (ORDER BY c ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
ALTER TABLE T ADD COLUMN extra_5697 BIGINT COLLATE NOCASE;
RELEASE sp4770;
PRAGMA short_column_names = OFF;
CREATE TRIGGER IF NOT EXISTS trg_T_534 AFTER UPDATE OF A ON T BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT * FROM T WHERE C = (SELECT GROUP_CONCAT(C) FROM T);
SAVEPOINT sp4770;
.limit
SAVEPOINT sp9818;
ATTACH DATABASE ':memory:' AS aux84;
SAVEPOINT sp2531;
.check
SAVEPOINT sp9694;
PRAGMA encoding = 'UTF-8';
ATTACH DATABASE ':memory:' AS aux44;
CREATE TABLE main.main.`T` (
a REAL,
b REAL,
c REAL
);
INSERT INTO T VALUES (strftime('%s', if(coalesce(NULL, NULL, NULL) -> sqrt(datetime(-(-(CAST(x'2f' AS BLOB))))), typeof(NULL), (0 + 9145485036963515638))),1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (SELECT * FROM T) SELEC_m * FROM T) SELEC_m * FROM T WHERE NOT NOT (NOT NOT (+b < 2.0)) ORDER BY b;
DETACH DATABASE aux44;
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T t2 WHERE t2.a = T.a);
INSERT INTO T VALUES (NULL, NULL, NULL);
INSERT OR ROLLBACK INTO T VALUES (NULL, NULL, '');
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE +x<21) SELECT * FROM cnt;
ALTER TABLE T DROP COLUMN b;
DROP VIEW IF EXISTS T;
SELECT ROW_NUMBER() OVER (ORDER BY a ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T;
INSERT OR ROLLBACK INTO T VALUES (-2, NULL, 0);
ROLLBACK TO sp9694;
RELEASE sp9694;
ALTER TABLE T ADD COLUMN extra_4532 UNSIGNED BIG INT DEFAULT (abs(random()) % 1000);
SELECT a, COUNT(*) FROM T GROUP BY a HAVING COUNT(*) = (SELECT COUNT(*) FROM T);
CREATE TRIGGER IF NOT EXISTS trg_T_7371 BEFORE UPDATE ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT COUNT(*) FROM T;
ROLLBACK TO sp2531;
RELEASE sp2531;
INSERT OR ABORT INTO T VALUES (6, 0, 0);
SELECT COUNT(*) FROM T;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION SELECT x+1 FROM cnt WHERE x<8) SELECT * FROM cnt;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<0) SELECT * FROM cnt;
DETACH DATABASE aux84;
SELECT * FROM T t1 JOIN T t2 ON t1.a = (SELECT a FROM T LIMIT 1);
ALTER TABLE T RENAME TO T_r9068;
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;
ROLLBACK TRANSACTION TO SAVEPOINT sp9818;
RELEASE SAVEPOINT sp9818;
SELECT STRING_AGG(a, '|') FROM T;
INSERT INTO T VALUES (NULL, NULL, NULL);
SELECT LEAD(a, 1, NULL) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T;
SELECT RANK() OVER (ORDER BY c GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T;
SELECT COUNT(*) FROM T;
SELECT * FROM T AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
INSERT INTO T VALUES (NULL, NULL, NULL);
ALTER TABLE T ADD COLUMN extra_9504 DOUBLE COLLATE RTRIM;
SELECT * FROM T NATURAL JOIN T;
ANALYZE;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T VALUES (NULL, NULL, NULL);
WITH cte AS (SELECT CASE WHEN a > 0 THEN "pos" ELSE "neg" END AS sign FROM T) SELECT * FROM cte;
SELECT FIRST_VALUE(c) OVER (ORDER BY c ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
ALTER TABLE T ADD COLUMN extra_5697 BIGINT COLLATE NOCASE;
RELEASE sp4770;
PRAGMA short_column_names = OFF;
CREATE TRIGGER IF NOT EXISTS trg_T_534 AFTER UPDATE OF A ON T BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT * FROM T WHERE C = (SELECT GROUP_CONCAT(C) FROM T);
SAVEPOINT sp4770;
.limit
SAVEPOINT sp9818;
ATTACH DATABASE ':memory:' AS aux84;
SAVEPOINT sp2531;
.check
SAVEPOINT sp9694;
PRAGMA encoding = 'UTF-8';
ATTACH DATABASE ':memory:' AS aux44;
CREATE TABLE main.main.`T` (
a REAL,
b REAL,
c REAL
);
INSERT INTO T VALUES (strftime('%s', if(coalesce(NULL, NULL, NULL) -> sqrt(datetime(-(-(CAST(x'2f' AS BLOB))))), typeof(NULL), (0 + 9145485036963515638))),1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (SELECT * FROM T) SELEC_m * FROM T) SELEC_m * FROM T WHERE NOT NOT (NOT NOT (+b < 2.0)) ORDER BY b;
DETACH DATABASE aux44;
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T t2 WHERE t2.a = T.a);
INSERT INTO T VALUES (NULL, NULL, NULL);
INSERT OR ROLLBACK INTO T VALUES (NULL, NULL, '');
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE +x<21) SELECT * FROM cnt;
ALTER TABLE T DROP COLUMN b;
DROP VIEW IF EXISTS T;
SELECT ROW_NUMBER() OVER (ORDER BY a ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T;
INSERT OR ROLLBACK INTO T VALUES (-2, NULL, 0);
ROLLBACK TO sp9694;
RELEASE sp9694;
ALTER TABLE T ADD COLUMN extra_4532 UNSIGNED BIG INT DEFAULT (abs(random()) % 1000);
SELECT a, COUNT(*) FROM T GROUP BY a HAVING COUNT(*) = (SELECT COUNT(*) FROM T);
CREATE TRIGGER IF NOT EXISTS trg_T_7371 BEFORE UPDATE ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT COUNT(*) FROM T;
ROLLBACK TO sp2531;
RELEASE sp2531;
INSERT OR ABORT INTO T VALUES (6, 0, 0);
SELECT COUNT(*) FROM T;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION SELECT x+1 FROM cnt WHERE x<8) SELECT * FROM cnt;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<0) SELECT * FROM cnt;
DETACH DATABASE aux84;
SELECT * FROM T t1 JOIN T t2 ON t1.a = (SELECT a FROM T LIMIT 1);
ALTER TABLE T RENAME TO T_r9068;
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;
ROLLBACK TRANSACTION TO SAVEPOINT sp9818;
RELEASE SAVEPOINT sp9818;
SELECT STRING_AGG(a, '|') FROM T;
INSERT INTO T VALUES (NULL, NULL, NULL);
SELECT LEAD(a, 1, NULL) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T;
SELECT RANK() OVER (ORDER BY c GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T;
SELECT COUNT(*) FROM T;
SELECT * FROM T AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
INSERT INTO T VALUES (NULL, NULL, NULL);
ALTER TABLE T ADD COLUMN extra_9504 DOUBLE COLLATE RTRIM;
SELECT * FROM T NATURAL JOIN T;
ANALYZE;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T VALUES (NULL, NULL, NULL);
WITH cte AS (SELECT CASE WHEN a > 0 THEN "pos" ELSE "neg" END AS sign FROM T) SELECT * FROM cte;
SELECT FIRST_VALUE(c) OVER (ORDER BY c ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
ALTER TABLE T ADD COLUMN extra_5697 BIGINT COLLATE NOCASE;
RELEASE sp4770;
PRAGMA short_column_names = OFF;
CREATE TRIGGER IF NOT EXISTS trg_T_534 AFTER UPDATE OF A ON T BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT * FROM T WHERE C = (SELECT GROUP_CONCAT(C) FROM T);
ALTER TABLE T RENAME TO T_r7047;
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T WHERE EXISTS (SELECT 1 FROM T));
CREATE INDEX IF NOT EXISTS idx_T_4760 ON T(lower(A));
INSERT INTO T DEFAULT VALUES;
DROP TABLE IF EXISTS T;
INSERT INTO T VALUES (NULL, NULL, 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
DELETE FROM t1 WHERE a IS NULL;
VACUUM main;
CREATE INDEX IF NOT EXISTS idx_T_3264 ON T((B + 1)) WHERE B > 0;
ALTER TABLE T RENAME COLUMN A TO A_r3473;
SELECT * FROM T AS a FULL JOIN T AS b ON a.rowid = b.rowid;
INSERT INTO T SELECT * FROM T;
DELETE FROM T WHERE rowid = 71;
CREATE TABLE T (
a TEXT,
b INTEGER,
c REAL
);
INSERT INTO T VALUES ('a',1,2.0), ('a',2,-3.0), ('b',1,4.5);
SELECT a,b,c,
SUM(c) OVER (
PARTITION BY a
ORDER BY b
) AS d
FROM T;
INSERT INTO T DEFAULT VALUES;
SELECT MAX(c) FROM t1;
SELECT * FROM t1;
SELECT MIN(b) FROM T;
WITH RECURSIVE r AS (SELECT c FROM t1 UNION ALL SELECT c FROM t1 LIMIT 5) SELECT * FROM r;
REINDEX;
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;
DELETE FROM t1 WHERE 0;
SELECT TOTAL(d) FROM t1;
SELECT * FROM t1 WHERE EXISTS (SELECT 1 FROM t1 t2 WHERE t2.a = t1.a);
CREATE TRIGGER IF NOT EXISTS trg_T_1588 BEFORE UPDATE OF c ON T FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
ANALYZE;
COMMIT;
INSERT INTO t1 SELECT * FROM t1;
SELECT * FROM t1 NATURAL JOIN T;
PRAGMA trusted_schema = NO;
BEGIN TRANSACTION;
.timeout -jsonb_extract(typeof('#'), '$')
SAVEPOINT sp4770;
-- typeof(1.0)
.limit
SAVEPOINT sp9818;
ATTACH DATABASE ':memory:' AS aux84;
SAVEPOINT sp2531;
.check
SAVEPOINT sp9694;
PRAGMA encoding < 'UTF-8';
ATTACH DATABASE ':memory:' AS aux44;
CREATE TABLE main.main.`T` (
a DOUBLE,
b REAL,
c REAL
);
INSERT INTO T VALUES (strftime('%s', if(coalesce(NULL, NULL, NULL) -> sqrt(datetime(-(-(CAST(x'2f' AS BLOB))))), typeof(NULL), (-(-(datetime(CAST(((json_object('k', json(x'096c11a26d368c64')) + 0.0) + 0.0) AS BIGINT)))) + 9145485036963515638))),1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (SELECT * FROM T) SELEC_m * FROM T) SELEC_m * FROM T) SELEC_m * FROM T WHERE NOT NOT (NOT NOT (+b < 2.0)) ORDER BY b;
DETACH DATABASE aux44;
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T t2 WHERE t2.a = T.a);
INSERT INTO T VALUES (NULL, NULL, NULL);
INSERT OR ROLLBACK INTO T VALUES (NULL, NULL, '');
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE +x<21) SELECT * FROM cnt;
ALTER TABLE T DROP COLUMN b;
DROP VIEW IF EXISTS T;
SELECT ROW_NUMBER() OVER (ORDER BY a ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T;
INSERT OR ROLLBACK INTO T VALUES (-2, NULL, 0);
ROLLBACK TO sp9694;
RELEASE sp9694;
ALTER TABLE T ADD COLUMN extra_4532 UNSIGNED BIG INT DEFAULT (abs(random()) % 1000);
SELECT a, COUNT(*) FROM T GROUP BY a HAVING COUNT(*) = (SELECT COUNT(*) FROM T);
CREATE TRIGGER IF NOT EXISTS trg_T_7371 BEFORE UPDATE ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT COUNT(*) FROM T;
ROLLBACK TO sp2531;
RELEASE sp2531;
INSERT OR ABORT INTO T VALUES (6, 0, 0);
SELECT COUNT(*) FROM T;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION SELECT x+1 FROM cnt WHERE x<8) SELECT * FROM cnt;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<0) SELECT * FROM cnt;
DETACH DATABASE aux84;
SELECT * FROM T t1 JOIN T t2 ON t1.a = (SELECT a FROM T LIMIT 1);
ALTER TABLE T RENAME TO T_r9068;
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;
ROLLBACK TRANSACTION TO SAVEPOINT sp9818;
RELEASE SAVEPOINT sp9818;
SELECT STRING_AGG(a, '|') FROM T;
INSERT INTO T VALUES (NULL, NULL, NULL);
SELECT LEAD(a, 1, NULL) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T;
SELECT RANK() OVER (ORDER BY c GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T;
SELECT COUNT(*) FROM T;
SELECT * FROM T AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
INSERT INTO T VALUES (NULL, NULL, NULL);
ALTER TABLE T ADD COLUMN extra_9504 DOUBLE COLLATE RTRIM;
SELECT * FROM T NATURAL JOIN T;
ANALYZE;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T VALUES (NULL, NULL, NULL);
WITH cte AS (SELECT CASE WHEN a > 0 THEN "pos" ELSE "neg" END AS sign FROM T) SELECT * FROM cte;
SELECT FIRST_VALUE(c) OVER (ORDER BY c ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
ALTER TABLE T ADD COLUMN extra_5697 BIGINT COLLATE NOCASE;
RELEASE sp4770;
PRAGMA short_column_names = OFF;
CREATE TRIGGER IF NOT EXISTS trg_T_534 AFTER UPDATE OF A ON T BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT * FROM T WHERE C = (SELECT GROUP_CONCAT(C) FROM T);
SAVEPOINT sp4770;
.limit
SAVEPOINT sp9818;
ATTACH DATABASE ':memory:' AS aux84;
SAVEPOINT sp2531;
.check
SAVEPOINT sp9694;
PRAGMA encoding = 'UTF-8';
ATTACH DATABASE ':memory:' AS aux44;
CREATE TABLE main.main.`T` (
a REAL,
b REAL,
c REAL
);
INSERT INTO T VALUES (strftime('%s', if(coalesce(NULL, NULL, NULL) -> sqrt(datetime(-(-(CAST(x'2f' AS BLOB))))), typeof(NULL), (0 + 9145485036963515638))),1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (SELECT * FROM T) SELEC_m * FROM T) SELEC_m * FROM T WHERE NOT NOT (NOT NOT (+b < 2.0)) ORDER BY b;
DETACH DATABASE aux44;
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T t2 WHERE t2.a = T.a);
INSERT INTO T VALUES (NULL, NULL, NULL);
INSERT OR ROLLBACK INTO T VALUES (NULL, NULL, '');
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE +x<21) SELECT * FROM cnt;
ALTER TABLE T DROP COLUMN b;
DROP VIEW IF EXISTS T;
SELECT ROW_NUMBER() OVER (ORDER BY a ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T;
INSERT OR ROLLBACK INTO T VALUES (-2, NULL, 0);
ROLLBACK TO sp9694;
RELEASE sp9694;
ALTER TABLE T ADD COLUMN extra_4532 UNSIGNED BIG INT DEFAULT (abs(random()) % 1000);
SELECT a, COUNT(*) FROM T GROUP BY a HAVING COUNT(*) = (SELECT COUNT(*) FROM T);
CREATE TRIGGER IF NOT EXISTS trg_T_7371 BEFORE UPDATE ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT COUNT(*) FROM T;
ROLLBACK TO sp2531;
RELEASE sp2531;
INSERT OR ABORT INTO T VALUES (6, 0, 0);
SELECT COUNT(*) FROM T;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION SELECT x+1 FROM cnt WHERE x<8) SELECT * FROM cnt;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<0) SELECT * FROM cnt;
DETACH DATABASE aux84;
SELECT * FROM T t1 JOIN T t2 ON t1.a = (SELECT a FROM T LIMIT 1);
ALTER TABLE T RENAME TO T_r9068;
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;
ROLLBACK TRANSACTION TO SAVEPOINT sp9818;
RELEASE SAVEPOINT sp9818;
SELECT STRING_AGG(a, '|') FROM T;
INSERT INTO T VALUES (NULL, NULL, NULL);
SELECT LEAD(a, 1, NULL) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T;
SELECT RANK() OVER (ORDER BY c GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T;
SELECT COUNT(*) FROM T;
SELECT * FROM T AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
INSERT INTO T VALUES (NULL, NULL, NULL);
ALTER TABLE T ADD COLUMN extra_9504 DOUBLE COLLATE RTRIM;
SELECT * FROM T NATURAL JOIN T;
ANALYZE;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T VALUES (NULL, NULL, NULL);
WITH cte AS (SELECT CASE WHEN a > 0 THEN "pos" ELSE "neg" END AS sign FROM T) SELECT * FROM cte;
SELECT FIRST_VALUE(c) OVER (ORDER BY c ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
ALTER TABLE T ADD COLUMN extra_5697 BIGINT COLLATE NOCASE;
RELEASE sp4770;
PRAGMA short_column_names = OFF;
CREATE TRIGGER IF NOT EXISTS trg_T_534 AFTER UPDATE OF A ON T BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT * FROM T WHERE C = (SELECT GROUP_CONCAT(C) FROM T);
SAVEPOINT sp4770;
.limit
SAVEPOINT sp9818;
ATTACH DATABASE ':memory:' AS aux84;
SAVEPOINT sp2531;
.check
SAVEPOINT sp9694;
PRAGMA encoding = 'UTF-8';
ATTACH DATABASE ':memory:' AS aux44;
CREATE TABLE main.main.`T` (
a REAL,
b REAL,
c REAL
);
INSERT INTO T VALUES (strftime('%s', if(coalesce(NULL, NULL, NULL) -> sqrt(datetime(-(-(CAST(x'2f' AS BLOB))))), typeof(NULL), (0 + 9145485036963515638))),1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (SELECT * FROM T) SELEC_m * FROM T) SELEC_m * FROM T WHERE NOT NOT (NOT NOT (+b < 2.0)) ORDER BY b;
DETACH DATABASE aux44;
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T t2 WHERE t2.a = T.a);
INSERT INTO T VALUES (NULL, NULL, NULL);
INSERT OR ROLLBACK INTO T VALUES (NULL, NULL, '');
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE +x<21) SELECT * FROM cnt;
ALTER TABLE T DROP COLUMN b;
DROP VIEW IF EXISTS T;
SELECT ROW_NUMBER() OVER (ORDER BY a ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T;
INSERT OR ROLLBACK INTO T VALUES (-2, NULL, 0);
ROLLBACK TO sp9694;
RELEASE sp9694;
ALTER TABLE T ADD COLUMN extra_4532 UNSIGNED BIG INT DEFAULT (abs(random()) % 1000);
SELECT a, COUNT(*) FROM T GROUP BY a HAVING COUNT(*) = (SELECT COUNT(*) FROM T);
CREATE TRIGGER IF NOT EXISTS trg_T_7371 BEFORE UPDATE ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT COUNT(*) FROM T;
ROLLBACK TO sp2531;
RELEASE sp2531;
INSERT OR ABORT INTO T VALUES (6, 0, 0);
SELECT COUNT(*) FROM T;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION SELECT x+1 FROM cnt WHERE x<8) SELECT * FROM cnt;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<0) SELECT * FROM cnt;
DETACH DATABASE aux84;
SELECT * FROM T t1 JOIN T t2 ON t1.a = (SELECT a FROM T LIMIT 1);
ALTER TABLE T RENAME TO T_r9068;
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;
ROLLBACK TRANSACTION TO SAVEPOINT sp9818;
RELEASE SAVEPOINT sp9818;
SELECT STRING_AGG(a, '|') FROM T;
INSERT INTO T VALUES (NULL, NULL, NULL);
SELECT LEAD(a, 1, NULL) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T;
SELECT RANK() OVER (ORDER BY c GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T;
SELECT COUNT(*) FROM T;
SELECT * FROM T AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
INSERT INTO T VALUES (NULL, NULL, NULL);
ALTER TABLE T ADD COLUMN extra_9504 DOUBLE COLLATE RTRIM;
SELECT * FROM T NATURAL JOIN T;
ANALYZE;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T VALUES (NULL, NULL, NULL);
WITH cte AS (SELECT CASE WHEN a > 0 THEN "pos" ELSE "neg" END AS sign FROM T) SELECT * FROM cte;
SELECT FIRST_VALUE(c) OVER (ORDER BY c ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
ALTER TABLE T ADD COLUMN extra_5697 BIGINT COLLATE NOCASE;
RELEASE sp4770;
PRAGMA short_column_names = OFF;
CREATE TRIGGER IF NOT EXISTS trg_T_534 AFTER UPDATE OF A ON T BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT * FROM T WHERE C = (SELECT GROUP_CONCAT(C) FROM T);
SAVEPOINT sp4770;
.limit
SAVEPOINT sp9818;
ATTACH DATABASE ':memory:' AS aux84;
SAVEPOINT sp2531;
.check
SAVEPOINT sp9694;
PRAGMA encoding = 'UTF-8';
ATTACH DATABASE ':memory:' AS aux44;
CREATE TABLE main.main.`T` (
a REAL,
b REAL,
c REAL
);
INSERT INTO T VALUES (strftime('%s', if(coalesce(NULL, NULL, NULL) -> sqrt(datetime(-(-(CAST(x'2f' AS BLOB))))), typeof(NULL), (0 + 9145485036963515638))),1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (SELECT * FROM T) SELEC_m * FROM T) SELEC_m * FROM T WHERE NOT NOT (NOT NOT (+b < 2.0)) ORDER BY b;
DETACH DATABASE aux44;
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T t2 WHERE t2.a = T.a);
INSERT INTO T VALUES (NULL, NULL, NULL);
INSERT OR ROLLBACK INTO T VALUES (NULL, NULL, '');
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE +x<21) SELECT * FROM cnt;
ALTER TABLE T DROP COLUMN b;
DROP VIEW IF EXISTS T;
SELECT ROW_NUMBER() OVER (ORDER BY a ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T;
INSERT OR ROLLBACK INTO T VALUES (-2, NULL, 0);
ROLLBACK TO sp9694;
RELEASE sp9694;
ALTER TABLE T ADD COLUMN extra_4532 UNSIGNED BIG INT DEFAULT (abs(random()) % 1000);
SELECT a, COUNT(*) FROM T GROUP BY a HAVING COUNT(*) = (SELECT COUNT(*) FROM T);
CREATE TRIGGER IF NOT EXISTS trg_T_7371 BEFORE UPDATE ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT COUNT(*) FROM T;
ROLLBACK TO sp2531;
RELEASE sp2531;
INSERT OR ABORT INTO T VALUES (6, 0, 0);
SELECT COUNT(*) FROM T;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION SELECT x+1 FROM cnt WHERE x<8) SELECT * FROM cnt;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<0) SELECT * FROM cnt;
DETACH DATABASE aux84;
SELECT * FROM T t1 JOIN T t2 ON t1.a = (SELECT a FROM T LIMIT 1);
ALTER TABLE T RENAME TO T_r9068;
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;
ROLLBACK TRANSACTION TO SAVEPOINT sp9818;
RELEASE SAVEPOINT sp9818;
SELECT STRING_AGG(a, '|') FROM T;
INSERT INTO T VALUES (NULL, NULL, NULL);
SELECT LEAD(a, 1, NULL) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T;
SELECT RANK() OVER (ORDER BY c GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T;
SELECT COUNT(*) FROM T;
SELECT * FROM T AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
INSERT INTO T VALUES (NULL, NULL, NULL);
ALTER TABLE T ADD COLUMN extra_9504 DOUBLE COLLATE RTRIM;
SELECT * FROM T NATURAL JOIN T;
ANALYZE;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T VALUES (NULL, NULL, NULL);
WITH cte AS (SELECT CASE WHEN a > 0 THEN "pos" ELSE "neg" END AS sign FROM T) SELECT * FROM cte;
SELECT FIRST_VALUE(c) OVER (ORDER BY c ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
ALTER TABLE T ADD COLUMN extra_5697 BIGINT COLLATE NOCASE;
RELEASE sp4770;
PRAGMA short_column_names = OFF;
CREATE TRIGGER IF NOT EXISTS trg_T_534 AFTER UPDATE OF A ON T BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT * FROM T WHERE C = (SELECT GROUP_CONCAT(C) FROM T);
SAVEPOINT sp4770;
.limit
SAVEPOINT sp9818;
ATTACH DATABASE ':memory:' AS aux84;
SAVEPOINT sp2531;
.check
SAVEPOINT sp9694;
PRAGMA encoding = 'UTF-8';
ATTACH DATABASE ':memory:' AS aux44;
CREATE TABLE main.main.`T` (
a REAL,
b REAL,
c REAL
);
INSERT INTO T VALUES (strftime('%s', if(coalesce(NULL, NULL, NULL) -> sqrt(datetime(-(-(CAST(x'2f' AS BLOB))))), typeof(NULL), (0 + 9145485036963515638))),1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (SELECT * FROM T) SELEC_m * FROM T) SELEC_m * FROM T WHERE NOT NOT (NOT NOT (+b < 2.0)) ORDER BY b;
DETACH DATABASE aux44;
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T t2 WHERE t2.a = T.a);
INSERT INTO T VALUES (NULL, NULL, NULL);
INSERT OR ROLLBACK INTO T VALUES (NULL, NULL, '');
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE +x<21) SELECT * FROM cnt;
ALTER TABLE T DROP COLUMN b;
DROP VIEW IF EXISTS T;
SELECT ROW_NUMBER() OVER (ORDER BY a ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T;
INSERT OR ROLLBACK INTO T VALUES (-2, NULL, 0);
ROLLBACK TO sp9694;
RELEASE sp9694;
ALTER TABLE T ADD COLUMN extra_4532 UNSIGNED BIG INT DEFAULT (abs(random()) % 1000);
SELECT a, COUNT(*) FROM T GROUP BY a HAVING COUNT(*) = (SELECT COUNT(*) FROM T);
CREATE TRIGGER IF NOT EXISTS trg_T_7371 BEFORE UPDATE ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT COUNT(*) FROM T;
ROLLBACK TO sp2531;
RELEASE sp2531;
INSERT OR ABORT INTO T VALUES (6, 0, 0);
SELECT COUNT(*) FROM T;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION SELECT x+1 FROM cnt WHERE x<8) SELECT * FROM cnt;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<0) SELECT * FROM cnt;
DETACH DATABASE aux84;
SELECT * FROM T t1 JOIN T t2 ON t1.a = (SELECT a FROM T LIMIT 1);
ALTER TABLE T RENAME TO T_r9068;
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;
ROLLBACK TRANSACTION TO SAVEPOINT sp9818;
RELEASE SAVEPOINT sp9818;
SELECT STRING_AGG(a, '|') FROM T;
INSERT INTO T VALUES (NULL, NULL, NULL);
SELECT LEAD(a, 1, NULL) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T;
SELECT RANK() OVER (ORDER BY c GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T;
SELECT COUNT(*) FROM T;
SELECT * FROM T AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
INSERT INTO T VALUES (NULL, NULL, NULL);
ALTER TABLE T ADD COLUMN extra_9504 DOUBLE COLLATE RTRIM;
SELECT * FROM T NATURAL JOIN T;
ANALYZE;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T VALUES (NULL, NULL, NULL);
WITH cte AS (SELECT CASE WHEN a > 0 THEN "pos" ELSE "neg" END AS sign FROM T) SELECT * FROM cte;
SELECT FIRST_VALUE(c) OVER (ORDER BY c ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
ALTER TABLE T ADD COLUMN extra_5697 BIGINT COLLATE NOCASE;
RELEASE sp4770;
PRAGMA short_column_names = OFF;
CREATE TRIGGER IF NOT EXISTS trg_T_534 AFTER UPDATE OF A ON T BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT * FROM T WHERE C = (SELECT GROUP_CONCAT(C) FROM T);
ALTER TABLE T RENAME TO T_r7047;
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T WHERE EXISTS (SELECT 1 FROM T));
CREATE INDEX IF NOT EXISTS idx_T_4760 ON T(lower(A));
INSERT INTO T DEFAULT VALUES;
DROP TABLE IF EXISTS T;
INSERT INTO T VALUES (NULL, NULL, 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
DELETE FROM t1 WHERE a IS NULL;
VACUUM main;
CREATE INDEX IF NOT EXISTS idx_T_3264 ON T((B + 1)) WHERE B > 0;
ALTER TABLE T RENAME COLUMN A TO A_r3473;
SELECT * FROM T AS a FULL JOIN T AS b ON a.rowid = b.rowid;
INSERT INTO T SELECT * FROM T;
DELETE FROM T WHERE rowid = 71;
CREATE TABLE T (
a TEXT,
b INTEGER,
c REAL
);
INSERT INTO T VALUES ('a',1,2.0), ('a',2,-3.0), ('b',1,4.5);
SELECT a,b,c,
SUM(c) OVER (
PARTITION BY a
ORDER BY b
) AS d
FROM T;
INSERT INTO T DEFAULT VALUES;
SELECT MAX(c) FROM t1;
SELECT * FROM t1;
SELECT MIN(b) FROM T;
WITH RECURSIVE r AS (SELECT c FROM t1 UNION ALL SELECT c FROM t1 LIMIT 5) SELECT * FROM r;
REINDEX;
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;
DELETE FROM t1 WHERE 0;
SELECT TOTAL(d) FROM t1;
SELECT * FROM t1 WHERE EXISTS (SELECT 1 FROM t1 t2 WHERE t2.a = t1.a);
CREATE TRIGGER IF NOT EXISTS trg_T_1588 BEFORE UPDATE OF c ON T FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
ANALYZE;
COMMIT;
INSERT INTO t1 SELECT * FROM t1;
SELECT * FROM t1 NATURAL JOIN T;
VACUUM main;
ALTER TABLE T RENAME TO T_r8860;
```
## 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
```
## 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
```
## 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
CREATE TABLE T (
a TEXT,
b TEXT,
c REAL
);
INSERT INTO T VALUES ('a','b',if(1, 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;
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 DEFAULT VALUES;
INSERT INTO T2 VALUES (NULL, NULL);
UPDATE T2 SET b = 74 WHERE b BETWEEN 0 AND 100;
INSERT INTO T2 SELECT * FROM T2;
UPDATE T SET a = -84 WHERE +rowid = 1;
SELECT * FROM T2;
SELECT * FROM T;
WITH cte AS (SELECT COUNT(*) AS cnt FROM T1) SELECT * FROM cte WHERE +cnt > 0;
CREATE INDEX IF NOT EXISTS idx_T1_97 ON T1((a + 1)) WHERE a IS NOT NULL;
```
## Actual output
```sql
a|c,d
b|
1|c
1|d
|
1|c
1|d
|
3
```
## Expectation
```sql
```
## 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
PRAGMA analysis_limit;
PRAGMA full_column_names = YES;
PRAGMA query_only = 0;
.mode
CREATE TABLE T1 (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15) UNIQUE,
C BIGINT
);
CREATE TABLE T2 (
X VARCHAR(20) PRIMARY KEY,
A VARCHAR(10),
FOREIGN KEY (A) REFERENCES T1(A)
);
INSERT INTO T1 VALUES ('a', 'p', 9999999999999);
INSERT INTO T1 VALUES ('b', 'q', -9999999999999);
INSERT INTO T2 VALUES ('m', 'a');
INSERT INTO T2 VALUES ('n', 'b');
SELECT T2.X, T1.C FROM T2 INNER JOIN T1 ON T2.A = T1.A WHERE T1.C > -1000000000000;
DELETE FROM T2 WHERE A > (SELECT AVG(A) FROM T2) RETURNING *;
REINDEX T2;
CREATE INDEX IF NOT EXISTS idx_T2_3616 ON T2(lower(X)) WHERE X > 0;
INSERT INTO T1 VALUES (NULL, NULL, NULL);
CREATE UNIQUE INDEX IF NOT EXISTS idx_T2_745 ON T2((X + 1)) WHERE X > 0;
SELECT * FROM T1 NATURAL JOIN T1;
SELECT * FROM T1;
```
## Actual output
```sql
0
current output mode: list
m|9999999999999
m|a
n|b
a|p|9999999999999
b|q|-9999999999999
a|p|9999999999999
b|q|-9999999999999
||
```
## Expectation
```sql
0
current output mode: list --escape ascii
m|9999999999999
m|a
n|b
a|p|9999999999999
b|q|-9999999999999
a|p|9999999999999
b|q|-9999999999999
||
```
## Flag
```
```
@@ -0,0 +1,927 @@
## 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_trace = TRUE;
-- PRAGMA query_only = NO;
.once log.txt
BEGIN DEFERRED;
PRAGMA ignore_check_constraints = NO;
ATTACH DATABASE ':memory:' AS aux44;
.output
SAVEPOINT sp8760;
SAVEPOINT sp9990;
PRAGMA trusted_schema = TRUE;
.once log.txt
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (log10(((like(('' || ''), if(replace(x'b9863ad918881c72285170e0e3fb', mod(ceiling(-asin(NULL)) -> '$.a' -> '$.b', power(0, 0)), 0), 3.141592653589793, 0, 3.141592653589793)) * 1) - 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
BEGIN TRANSACTION;
ATTACH DATABASE ':memory:' AS aux72;
BEGIN DEFERRED;
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
COMMIT;
REINDEX t1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t3_1118 ON t3(a COLLATE NOCASE) WHERE NOT NOT (NOT NOT (NOT NOT (NOT NOT (+a > 0)))) ;
DROP INDEX IF EXISTS t2;
SELECT LAST_VALUE(a) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t3;
DETACH DATABASE aux72;
ALTER TABLE t1 RENAME COLUMN a TO a_r9525;
ROLLBACK;
ALTER TABLE t3 RENAME COLUMN a TO a_r8773;
PRAGMA defer_foreign_keys = TRUE;
SELECT * FROM t2;
PRAGMA wal_checkpoint('RESTART');
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (log10(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
BEGIN TRANSACTION;
ATTACH DATABASE ':memory:' AS aux72;
BEGIN DEFERRED;
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
COMMIT;
REINDEX t1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t3_1118 ON t3(a COLLATE NOCASE) WHERE +a > 0;
DROP INDEX IF EXISTS t2;
SELECT LAST_VALUE(a) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t3;
DETACH DATABASE aux72;
ALTER TABLE t1 RENAME COLUMN a TO a_r9525;
ROLLBACK;
ALTER TABLE t3 RENAME COLUMN a TO a_r8773;
PRAGMA defer_foreign_keys = TRUE;
SELECT * FROM t2;
PRAGMA wal_checkpoint('RESTART');
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (log10(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
BEGIN TRANSACTION;
ATTACH DATABASE ':memory:' AS aux72;
BEGIN DEFERRED;
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
COMMIT;
REINDEX t1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t3_1118 ON t3(a COLLATE NOCASE) WHERE +a > 0;
DROP INDEX IF EXISTS t2;
SELECT LAST_VALUE(a) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t3;
DETACH DATABASE aux72;
ALTER TABLE t1 RENAME COLUMN a TO a_r9525;
ROLLBACK;
ALTER TABLE t3 RENAME COLUMN a TO a_r8773;
PRAGMA defer_foreign_keys = TRUE;
SELECT * FROM t2;
PRAGMA wal_checkpoint('RESTART');
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (log10(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
BEGIN TRANSACTION;
ATTACH DATABASE ':memory:' AS aux72;
BEGIN DEFERRED;
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
COMMIT;
REINDEX t1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t3_1118 ON t3(a COLLATE NOCASE) WHERE +a > 0;
DROP INDEX IF EXISTS t2;
SELECT LAST_VALUE(a) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t3;
DETACH DATABASE aux72;
ALTER TABLE t1 RENAME COLUMN a TO a_r9525;
ROLLBACK;
ALTER TABLE t3 RENAME COLUMN a TO a_r8773;
PRAGMA defer_foreign_keys = TRUE;
SELECT * FROM t2;
PRAGMA wal_checkpoint('RESTART');
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (log10(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
BEGIN TRANSACTION;
ATTACH DATABASE ':memory:' AS aux72;
BEGIN DEFERRED;
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
COMMIT;
REINDEX t1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t3_1118 ON t3(a COLLATE NOCASE) WHERE +a > 0;
DROP INDEX IF EXISTS t2;
SELECT LAST_VALUE(a) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t3;
DETACH DATABASE aux72;
ALTER TABLE t1 RENAME COLUMN a TO a_r9525;
ROLLBACK;
ALTER TABLE t3 RENAME COLUMN a TO a_r8773;
PRAGMA defer_foreign_keys = TRUE;
SELECT * FROM t2;
PRAGMA wal_checkpoint('RESTART');
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (log10(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
BEGIN TRANSACTION;
ATTACH DATABASE ':memory:' AS aux72;
BEGIN DEFERRED;
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
COMMIT;
REINDEX t1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t3_1118 ON t3(a COLLATE NOCASE) WHERE +a > 0;
DROP INDEX IF EXISTS t2;
SELECT LAST_VALUE(a) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t3;
DETACH DATABASE aux72;
ALTER TABLE t1 RENAME COLUMN a TO a_r9525;
ROLLBACK;
ALTER TABLE t3 RENAME COLUMN a TO a_r8773;
PRAGMA defer_foreign_keys = TRUE;
SELECT * FROM t2;
PRAGMA wal_checkpoint('RESTART');
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (log10(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
BEGIN TRANSACTION;
ATTACH DATABASE ':memory:' AS aux72;
BEGIN DEFERRED;
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
COMMIT;
REINDEX t1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t3_1118 ON t3(a COLLATE NOCASE) WHERE +a > 0;
DROP INDEX IF EXISTS t2;
WITH _m AS MATERIALIZED (SELECT * FROM T) SELEC_m LAST_VALUE(a) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t3;
DETACH DATABASE aux72;
ALTER TABLE t1 RENAME COLUMN a TO a_r9525;
ROLLBACK;
ALTER TABLE t3 RENAME COLUMN a TO a_r8773;
PRAGMA defer_foreign_keys = TRUE;
CREATE TABLE T (
a TEXT,
b TEXT
);
INSERT INTO T VALUES ('a','b'), ('c','d');
SELECT * FROM T WHERE +a = REPLACE('a;',';','') AND b = 'b';
SELECT * FROM t2;
PRAGMA wal_checkpoint('RESTART');
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (log10(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
BEGIN TRANSACTION;
ATTACH DATABASE ':memory:' AS aux72;
BEGIN DEFERRED;
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
COMMIT;
REINDEX t1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t3_1118 ON t3(a COLLATE NOCASE) WHERE +a > 0;
DROP INDEX IF EXISTS t2;
SELECT LAST_VALUE(a) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t3;
DETACH DATABASE aux72;
ALTER TABLE t1 RENAME COLUMN a TO a_r9525;
ROLLBACK;
ALTER TABLE t3 RENAME COLUMN a TO a_r8773;
PRAGMA defer_foreign_keys = TRUE;
SELECT * FROM t2;
PRAGMA wal_checkpoint('RESTART');
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (log10(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
BEGIN TRANSACTION;
ATTACH DATABASE ':memory:' AS aux72;
BEGIN DEFERRED;
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
CREATE TABLE t1(a);
INSERT INTO t1 VALUES('abc'),('def'),('ghi');
CREATE TABLE t2(a);
INSERT INTO t2 VALUES('DEF'),('abc');
CREATE TABLE t3(a);
INSERT INTO t3 VALUES('def'),('jkl');
SELECT a FROM t1 EXCEPT SELECT a FROM t2 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE nocase;
SELECT a FROM t2 EXCEPT SELECT a FROM t3 ORDER BY a COLLATE binary;
DELETE FROM t2;
DELETE FROM t3;
INSERT INTO t2 VALUES('ABC'),('def'),('GHI'),('jkl');
INSERT INTO t3 SELECT lower(a) FROM t2;
SELECT a COLLATE nocase FROM t2 EXCEPT SELECT a FROM t3 ORDER BY 1
COMMIT;
REINDEX t1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t3_1118 ON t3(a COLLATE NOCASE) WHERE +a > 0;
DROP INDEX IF EXISTS t2;
SELECT LAST_VALUE(a) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t3;
DETACH DATABASE aux72;
ALTER TABLE t1 RENAME COLUMN a TO a_r9525;
ROLLBACK;
ALTER TABLE t3 RENAME COLUMN a TO a_r8773;
PRAGMA defer_foreign_keys = TRUE;
SELECT * FROM t2;
PRAGMA wal_checkpoint('RESTART');
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a;
INSERT INTO t1 VALUES (NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a;
INSERT INTO t1 DEFAULT VALUES;
CREATE TEMP VIEW IF NOT EXISTS v_t2_4298 AS SELECT a FROM t2;
SELECT * FROM t1 WHERE a <= ANY (SELECT a FROM t1);
INSERT INTO t3 DEFAULT VALUES;
DELETE FROM t1 WHERE a IS NULL;
INSERT INTO t2 SELECT * FROM t2;
RELEASE sp9990;
INSERT INTO t2 SELECT * FROM t2;
SELECT GROUP_CONCAT(a, '.') OVER (PARTITION BY a ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM t3;
CREATE TRIGGER IF NOT EXISTS trg_t3_7930 BEFORE DELETE ON t3 BEGIN INSERT INTO t3(a) VALUES (NULL); END;
SELECT COUNT(*) FROM t2;
DELETE FROM t2 WHERE a IS NULL;
CREATE INDEX IF NOT EXISTS idx_t1_5741 ON t1(a COLLATE NOCASE);
DELETE FROM t3 WHERE a IS NULL RETURNING *;
ALTER TABLE t1 RENAME COLUMN a TO a_r2002;
SELECT COUNT(*) FROM t1;
CREATE INDEX IF NOT EXISTS idx_t1_9369 ON t1(lower(a));
SELECT GROUP_CONCAT(a) OVER (ORDER BY a) FROM t2;
INSERT INTO t2 VALUES (1) ON CONFLICT(a) DO UPDATE SET a = excluded.a;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t2_1124 ON t2((a + 1)) WHERE a IS NOT NULL;
ALTER TABLE t1 RENAME COLUMN a TO a_r6325;
CREATE TRIGGER IF NOT EXISTS trg_t3_5012 BEFORE DELETE ON t3 FOR EACH ROW BEGIN INSERT INTO t3(a) 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 t3;
INSERT INTO t1 VALUES (NULL);
WITH cte AS (SELECT NULL AS x) SELECT * FROM cte;
WITH RECURSIVE self(x) AS (SELECT 1 UNION ALL SELECT x FROM self) SELECT * FROM self LIMIT 5;
ROLLBACK TO sp8760;
RELEASE sp8760;
INSERT OR ABORT INTO t3 VALUES ('');
ALTER TABLE t2 RENAME TO t2_r9030;
DETACH DATABASE aux44;
INSERT OR ROLLBACK INTO t3 VALUES ('x');
CREATE TRIGGER IF NOT EXISTS trg_t1_4886 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
REINDEX;
INSERT INTO t3 DEFAULT VALUES;
INSERT INTO t2 DEFAULT VALUES;
ALTER TABLE T RENAME TO T_r523;
INSERT OR REPLACE INTO T VALUES (NULL, NULL);
INSERT INTO t2 VALUES (1) ON CONFLICT(a) DO UPDATE SET a = excluded.a;
SELECT * FROM t3 AS a INNER JOIN t3 AS b ON a.rowid = b.rowid;
END TRANSACTION;
INSERT OR ROLLBACK INTO t2 VALUES (NULL);
INSERT INTO t1 SELECT * FROM t1;
ALTER TABLE T RENAME COLUMN b TO b_r7423;
ALTER TABLE t3 RENAME COLUMN a TO a_r690;
SELECT MAX(a) FROM t3;
SELECT STRING_AGG(a, '|') FROM t1;
ALTER TABLE T ADD COLUMN extra_3305 FLOAT DEFAULT (abs(random()) % 1000);
INSERT INTO t3 VALUES (NULL);
VACUUM;
CREATE VIEW IF NOT EXISTS v_t1_3865 AS SELECT a 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;
SELECT * FROM t1 AS a JOIN T AS b ON a.rowid = b.rowid;
WITH cte AS (SELECT a, SUM(a) AS total FROM t2 GROUP BY a) SELECT * FROM cte ORDER BY total DESC;
INSERT INTO t1 VALUES (NULL);
ANALYZE T;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<1) SELECT * FROM cnt;
ALTER TABLE T ADD COLUMN extra_190 DATE DEFAULT 0;
WITH cte AS (SELECT b FROM T UNION SELECT b FROM T) SELECT * FROM cte;
DROP VIEW IF EXISTS t2;
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;
SELECT * FROM t3 AS a LEFT JOIN t2 AS b ON a.rowid = b.rowid;
SELECT * FROM t2;
ALTER TABLE t1 RENAME COLUMN a TO a_r4594;
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 TRIGGER IF NOT EXISTS trg_t1_5962 AFTER UPDATE ON t1 BEGIN SELECT RAISE(FAIL, 'no'); END;
INSERT INTO T SELECT * FROM T;
DROP TABLE IF EXISTS t1;
INSERT OR FAIL INTO t2 VALUES (0);
ALTER TABLE T ADD COLUMN extra_1673 CHARINT;
PRAGMA fullsync = OFF;
INSERT INTO T SELECT * FROM T;
SELECT MAX(a) FROM t1;
INSERT INTO T DEFAULT VALUES;
SELECT * FROM t3 AS a JOIN t1 AS b ON a.rowid = b.rowid;
INSERT OR ABORT INTO t3 VALUES ('x');
```
## 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,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
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
.dbinfo main
BEGIN IMMEDIATE;
PRAGMA secure_delete = ON;
-- unistr_quote('Hello')
CREATE TABLE t0(c0 FLOAT, c1 REAL GENERATED ALWAYS AS (c0));
INSERT INTO t0(c0) VALUES (-(-(unhex(1))));
SELECT * FROM t0 GROUP BY c0;
CREATE TABLE t1(a, b);
CREATE TABLE t2(c, d);
SELECT max(t1.a), (SELECT 'xyz' FROM (SELECT * FROM t2 WHERE 0) WHERE t1.b=1) FROM t1;
INSERT INTO t1 SELECT * 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 t1 ADD COLUMN extra_7155 MEDIUMINT COLLATE RTRIM;
PRAGMA cache_spill = FALSE;
INSERT INTO t0 DEFAULT VALUES;
END TRANSACTION;
ALTER TABLE T ADD COLUMN extra_8857 UNSIGNED BIG INT NOT NULL DEFAULT 0;
UPDATE t1 SET a = json_object('k', a) WHERE rowid = 1;
SELECT * FROM t1;
ALTER TABLE t1 RENAME TO t1_r7117;
```
## Actual output
```sql
database page size: 4096
write format: 1
read format: 1
reserved bytes: 0
file change counter: 0
database page count: 7
freelist page count: 6
schema cookie: 7
schema format: 4
default cache size: 0
autovacuum top root: 0
incremental vacuum: 0
text encoding: 1 (utf8)
user version: 0
application id: 0
software version: 0
number of tables: 0
number of indexes: 0
number of triggers: 0
number of views: 0
schema size: 0
data version 3
1
|
2|-7.25
3|0.0
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,104 @@
## 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 SMALLINT PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES ('_', 'Wernher', timediff(sinh((';' * quote(NULL))), -2147483648), 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 foreign_keys = NO;
creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z");
DROP TABLE t0;
PRAGMA writable_schema = -2147483648;
PRAGMA reverse_unordered_selects = YES;
PRAGMA vdbe_trace = YES;
.eqp auto
BEGIN TRANSACTION;
CREATE TABLE main.t1(a, b, c);
INSERT INTO "t1" VALUES(1,'one','I');
CREATE TABLE t2(d, e, f);
INSERT INTO "t2" VALUES(5,'ten','XX');
INSERT INTO "t2" VALUES(6,NULL,NULL);
CREATE INDEX i1 ON t1(b, a);
COMMIT;
INSERT AND FAIL INTO t2 VALUES (0, -6, 'x');
SELECT SUM(c) FROM t1;
INSERT INTO t1 SELECT * FROM t1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t2_3495 ON t2((e + 1)) WHERE NOT +e > 0;
SELECT COUNT(*) FROM t2;
INSERT INTO t1 SELECT * FROM t1;
INSERT INTO t2 DEFAULT VALUES;
CREATE TABLE /* .archive */ 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 t2 RENAME COLUMN e TO e_r5138;
SELECT SUM(c) FROM t1;
INSERT INTO t2 VALUES (NULL, 1, NULL) ON CONFLICT(d) DO UPDATE SET d = excluded.d, e = excluded.e, f = excluded.f;
DELETE FROM t1 WHERE 1 RETURNING *;
SELECT FIRST_VALUE(e) OVER (ORDER BY e ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM t2;
CREATE TRIGGER IF NOT EXISTS trg_t2_3447 AFTER UPDATE ON t2 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
VACUUM main;
INSERT INTO t1 SELECT * FROM t1;
REINDEX t2;
ANALYZE;
SELECT LAG(a) OVER (ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM t1;
SELECT * FROM t2;
CREATE TABLE T (
a TEXT,
b INTEGER,
c REAL
);
INSERT INTO T VALUES ('a',1,2.0), ('a',2,-3.0), ('b',1,4.5);
SELECT a,b,c,
SUM(c) OVER (
PARTITION BY a
ORDER BY b
) AS d
FROM T;
ALTER TABLE T DROP COLUMN a;
INSERT INTO t2 VALUES (NULL, NULL, NULL);
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|2
von|20|1
Braun|30
von|20
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,440 @@
## 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 sp1179;
PRAGMA reverse_unordered_selects = NO;
PRAGMA short_column_names = TRUE;
.databases
SAVEPOINT sp5671;
.once log.txt
ATTACH DATABASE ('' || '') || ('') || (':memory:') AS aux78;
.limit
CREATE TABLE T1 (
a INT2,
b REAL
);
CREATE TABLE T2 (
a INTEGER,
b REAL
);
INSERT INTO T1 VALUES (ifnull(timediff(concat_ws(',', CAST(upper(-(-(-json_array_length(strftime('%s', sinh(lower('HELLO'))))))) AS INT2), format(NULL, if(NULL, NULL, NULL)), datetime(unhex('4G'), '+1 day')), lower('HeLLo')), (2 + 0.0)),1.0);
INSERT INTO T2 VALUES (1,-1.0),(2,9e999);
INSERT OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
PRAGMA writable_schema = YES;
SAVEPOINT sp6649;
ATTACH DATABASE ':memory:' AS aux69;
.quit
.trace
CREATE TABLE main.T (
a DOUBLE,
b TEXT,
c REAL
);
INSERT INTO T VALUES (CAST(json_array_length(if(CAST(-(-(length(randomblob(CAST(mod(1.7976931348623157e+308, 1465368752231950166) AS INTEGER))))) AS TINYINT), 1, 0, 1, 0, 1), '$') AS NUMERIC),'a',3.14), (1,'b',-7.75), (2,'c',-9e999);
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT b,a,c,
RANK() OVER (PARTITION BY a ORDER BY c DESC) AS d FROM T;
ATTACH DATABASE ':memory:' AS aux86;
PRAGMA full_column_names = YES;
DROP TABLE IF EXISTS _m;
CREATE TABLE t1 (c0, c1 REAL PRIMARY KEY);
INSERT INTO t1(c0, c1) VALUES ('{', -(-(1))), (0, 0);
UPDATE t1 SET c0 = NULL;
UPDATE OR REPLACE t1 SET c1 = 1;
SELECT DISTINCT * FROM t1 WHERE NOT NOT (NOT NOT (t1.c0 IS NULL)) ;
PRAGMA integrity_check;
SELECT COUNT(*) FROM t1;
SELECT * FROM t1;
DETACH DATABASE aux86;
REINDEX;
ALTER TABLE T ADD COLUMN extra_5481 BLOB NOT NULL DEFAULT 0;
SELECT COUNT(*) FROM T;
CREATE TABLE T (
a TEXT,
b TEXT
);
INSERT INTO T VALUES ('a','b'), ('c','d');
SELECT * FROM T WHERE +a = REPLACE('a;',';','') AND b = 'b';
CREATE TABLE T1 (
A VARCHAR(15) PRIMARY KEY,
B VARCHAR(30) NOT NULL UNIQUE
);
CREATE TABLE T2 (
A VARCHAR(10) PRIMARY KEY,
X VARCHAR(15) NOT NULL,
C BIGINT,
FOREIGN KEY (X) REFERENCES T1(A)
);
INSERT INTO T1 VALUES ('p', 'x');
INSERT INTO T1 VALUES ('q', 'y');
INSERT INTO T2 VALUES ('a', 'p', 9223372036854775807);
INSERT INTO T2 VALUES ('b', 'q', -9223372036854775808);
SELECT X, SUM(C) AS D, COUNT(*) AS E FROM T2 GROUP BY X;
SELECT LAG(c0, 2, 'default') OVER (PARTITION BY c0 ORDER BY c0 ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
SELECT * FROM t1;
CREATE VIEW IF NOT EXISTS v_t1_6883 AS SELECT c1 FROM t1;
ALTER TABLE t1 ADD COLUMN extra_3184 INT2 COLLATE NOCASE;
SELECT * FROM t1;
REINDEX;
SELECT c, COUNT(*) FROM T GROUP BY c HAVING COUNT(*) = (SELECT COUNT(*) 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;
PRAGMA temp_store = 'MEMORY';
VACUUM main;
SELECT * FROM T1 WHERE EXISTS (SELECT 1 FROM T1 WHERE 1 = 0);
SELECT * FROM T1 WHERE A <> ANY (SELECT A FROM T1);
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5592 AS SELECT c0 FROM t1;
REINDEX T2;
UPDATE T SET b = json_object('k', b);
DETACH DATABASE aux69;
DROP INDEX IF EXISTS T1;
SELECT STRING_AGG(C) FROM T2;
ROLLBACK TO sp6649;
RELEASE sp6649;
INSERT OR ABORT INTO T2 VALUES ('x', -9, -9);
SELECT COUNT(*) FILTER (WHERE c1 IS NOT NULL), SUM(rowid) FILTER (WHERE c1 > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c1) FILTER (WHERE c1 > 0 AND c1 < 100), COUNT(*) FILTER (WHERE typeof(c1) = "text") FROM t1;
ALTER TABLE T RENAME COLUMN b TO b_r9085;
INSERT INTO t1 DEFAULT VALUES;
SELECT GROUP_CONCAT(A, '|') FROM T2;
INSERT OR ROLLBACK INTO T1 VALUES (6, '');
WITH RECURSIVE tree(id, path) AS (VALUES(1, "/1") UNION ALL SELECT id+1, path || "/" || (id+1) FROM tree WHERE id<14) SELECT * FROM tree;
CREATE VIEW IF NOT EXISTS v_T1_7673 AS SELECT 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;
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 OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
SELECT COUNT(c) FROM T;
UPDATE T SET a = a + 1 WHERE 1;
ALTER TABLE T ADD COLUMN extra_6983 DATETIME DEFAULT CURRENT_TIMESTAMP;
INSERT INTO T2 VALUES (NULL, NULL);
.limit
CREATE TABLE T1 (
a INTEGER,
b REAL
);
CREATE TABLE T2 (
a INTEGER,
b REAL
);
INSERT INTO T1 VALUES (ifnull(timediff(concat_ws(',', CAST(upper(1) AS INT2), 2, 3), 1), 2),1.0);
INSERT INTO T2 VALUES (1,-1.0),(2,9e999);
INSERT OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
PRAGMA writable_schema = YES;
SAVEPOINT sp6649;
ATTACH DATABASE ':memory:' AS aux69;
.quit
.trace
CREATE TABLE T (
a DOUBLE,
b TEXT,
c REAL
);
INSERT INTO T VALUES (CAST(json_array_length(if(CAST(-(-(length(randomblob(CAST(mod(1.7976931348623157e+308, 1465368752231950166) AS INTEGER))))) AS TINYINT), 1, 0, 1, 0, 1), '$') AS NUMERIC),'a',3.14), (1,'b',-7.75), (2,'c',-9e999);
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT b,a,c,
RANK() OVER (PARTITION BY a ORDER BY c DESC) AS d FROM T;
ATTACH DATABASE ':memory:' AS aux86;
PRAGMA full_column_names = YES;
DROP TABLE IF EXISTS _m;
CREATE TABLE t1 (c0, c1 REAL PRIMARY KEY);
INSERT INTO t1(c0, c1) VALUES ('{', -(-(1))), (0, 0);
UPDATE t1 SET c0 = NULL;
UPDATE OR REPLACE t1 SET c1 = 1;
SELECT DISTINCT * FROM t1 WHERE NOT NOT (t1.c0 IS NULL);
PRAGMA integrity_check;
SELECT COUNT(*) FROM t1;
SELECT * FROM t1;
DETACH DATABASE aux86;
REINDEX;
ALTER TABLE T ADD COLUMN extra_5481 BLOB NOT NULL DEFAULT 0;
SELECT COUNT(*) FROM T;
CREATE TABLE T1 (
A VARCHAR(15) PRIMARY KEY,
B VARCHAR(30) NOT NULL UNIQUE
);
CREATE TABLE T2 (
A VARCHAR(10) PRIMARY KEY,
X VARCHAR(15) NOT NULL,
C BIGINT,
FOREIGN KEY (X) REFERENCES T1(A)
);
INSERT INTO T1 VALUES ('p', 'x');
INSERT INTO T1 VALUES ('q', 'y');
INSERT INTO T2 VALUES ('a', 'p', 9223372036854775807);
INSERT INTO T2 VALUES ('b', 'q', -9223372036854775808);
SELECT X, SUM(C) AS D, COUNT(*) AS E FROM T2 GROUP BY X;
SELECT LAG(c0, 2, 'default') OVER (PARTITION BY c0 ORDER BY c0 ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
SELECT * FROM t1;
CREATE VIEW IF NOT EXISTS v_t1_6883 AS SELECT c1 FROM t1;
ALTER TABLE t1 ADD COLUMN extra_3184 INT2 COLLATE NOCASE;
SELECT * FROM t1;
REINDEX;
SELECT c, COUNT(*) FROM T GROUP BY c HAVING COUNT(*) = (SELECT COUNT(*) 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;
PRAGMA temp_store = 'MEMORY';
VACUUM main;
SELECT * FROM T1 WHERE EXISTS (SELECT 1 FROM T1 WHERE 1 = 0);
SELECT * FROM T1 WHERE A <> ANY (SELECT A /**/ FROM T1);
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5592 AS SELECT c0 FROM t1;
REINDEX T2;
UPDATE T SET b = json_object('k', b);
DETACH DATABASE aux69;
DROP INDEX IF EXISTS T1;
SELECT STRING_AGG(C) FROM T2;
ROLLBACK TO sp6649;
RELEASE sp6649;
INSERT OR ABORT INTO T2 VALUES ('x', -9, -9);
SELECT COUNT(*) FILTER (WHERE c1 IS NOT NULL), SUM(rowid) FILTER (WHERE c1 > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c1) FILTER (WHERE c1 > 0 AND /**/ c1 < 100), COUNT(*) FILTER (WHERE typeof(c1) = "text") FROM t1;
ALTER TABLE T RENAME COLUMN b TO b_r9085;
INSERT INTO t1 DEFAULT VALUES;
SELECT GROUP_CONCAT(A, '|') FROM T2;
INSERT OR ROLLBACK INTO T1 VALUES (6, '');
WITH RECURSIVE tree(id, path) AS (VALUES(1, "/1") UNION ALL SELECT id+1, path || "/" || (id+1) FROM tree WHERE id<14) SELECT * FROM tree;
CREATE VIEW IF NOT EXISTS v_T1_7673 AS SELECT 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;
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 OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
SELECT COUNT(c) FROM T;
UPDATE T SET a = a + 1 WHERE 1;
ALTER TABLE T ADD COLUMN extra_6983 DATETIME DEFAULT CURRENT_TIMESTAMP;
INSERT INTO T2 VALUES (NULL, NULL);
.limit
CREATE TABLE T1 (
a INTEGER,
b REAL
);
CREATE TABLE T2 (
a INTEGER,
b REAL
);
INSERT INTO T1 VALUES (ifnull(timediff(concat_ws(',', CAST(upper(1) AS INT2), 2, 3), 1), 2),1.0);
INSERT INTO T2 VALUES (1,-1.0),(2,9e999);
INSERT OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
PRAGMA writable_schema = YES;
SAVEPOINT sp6649;
ATTACH DATABASE ':memory:' AS aux69;
.quit
.trace
CREATE TABLE T (
a DOUBLE,
b TEXT,
c REAL
);
INSERT INTO T VALUES (CAST(json_array_length(if(CAST(-(-(length(randomblob(CAST(mod(1.7976931348623157e+308, 1465368752231950166) AS INTEGER))))) AS TINYINT), 1, 0, 1, 0, 1), '$') AS NUMERIC),'a',3.14), (1,'b',-7.75), (2,'c',-9e999);
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT b,a,c,
RANK() OVER (PARTITION BY a ORDER BY c DESC) AS d FROM T;
ATTACH DATABASE ':memory:' AS aux86;
PRAGMA full_column_names = YES;
DROP TABLE IF EXISTS _m;
CREATE TABLE t1 (c0, c1 REAL PRIMARY KEY);
INSERT INTO t1(c0, c1) VALUES ('{', -(-(1))), (0, 0);
UPDATE t1 SET c0 = NULL;
UPDATE OR REPLACE t1 SET c1 = 1;
SELECT DISTINCT * FROM t1 WHERE NOT NOT (t1.c0 IS NULL);
PRAGMA integrity_check;
SELECT COUNT(*) FROM t1;
SELECT * FROM t1;
DETACH DATABASE aux86;
REINDEX;
ALTER TABLE T ADD COLUMN extra_5481 BLOB NOT NULL DEFAULT 0;
SELECT COUNT(*) FROM T;
CREATE TABLE T1 (
A VARCHAR(15) PRIMARY KEY,
B VARCHAR(30) NOT NULL UNIQUE
);
CREATE TABLE T2 (
A VARCHAR(10) PRIMARY KEY,
X VARCHAR(15) NOT NULL,
C BIGINT,
FOREIGN KEY (X) REFERENCES T1(A)
);
INSERT INTO T1 /* .recover */ VALUES ('p', 'x');
INSERT INTO T1 VALUES ('q', 'y');
INSERT INTO T2 VALUES ('a', 'p', 9223372036854775807);
INSERT INTO T2 VALUES ('b', 'q', -9223372036854775808);
SELECT X, SUM(C) AS D, COUNT(*) AS E FROM T2 GROUP BY X;
SELECT LAG(c0, 2, 'default') OVER (PARTITION BY c0 ORDER BY c0 ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
SELECT * FROM t1;
CREATE VIEW IF NOT EXISTS v_t1_6883 AS SELECT c1 FROM t1;
ALTER TABLE t1 ADD COLUMN extra_3184 INT2 COLLATE NOCASE;
SELECT * FROM t1;
REINDEX;
SELECT c, COUNT(*) FROM T GROUP BY c HAVING COUNT(*) = (SELECT COUNT(*) 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;
PRAGMA temp_store = 'MEMORY';
VACUUM main;
SELECT * FROM T1 WHERE EXISTS (SELECT 1 FROM T1 WHERE 1 = 0);
SELECT * FROM T1 WHERE A <> ANY (SELECT A FROM T1);
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5592 AS SELECT c0 FROM t1;
REINDEX T2;
UPDATE T SET b = json_object('k', b);
DETACH DATABASE aux69;
DROP INDEX IF EXISTS T1;
SELECT STRING_AGG(C) FROM T2;
ROLLBACK TO sp6649;
RELEASE sp6649;
INSERT OR ABORT INTO T2 VALUES ('x', -9, -9);
SELECT COUNT(*) FILTER (WHERE c1 IS NOT NULL), SUM(rowid) FILTER (WHERE c1 > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c1) FILTER (WHERE c1 > 0 AND c1 < 100), COUNT(*) FILTER (WHERE typeof(c1) = "text") FROM t1;
ALTER TABLE T RENAME COLUMN b TO b_r9085;
INSERT INTO t1 DEFAULT VALUES;
SELECT GROUP_CONCAT(A, '|') FROM T2;
INSERT OR ROLLBACK INTO T1 VALUES (6, '');
WITH RECURSIVE tree(id, path) AS (VALUES(1, "/1") UNION ALL SELECT id+1, path || "/" || (id+1) FROM tree WHERE id<14) SELECT * FROM tree;
CREATE VIEW IF NOT EXISTS v_T1_7673 AS SELECT 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;
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 OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
SELECT COUNT(c) FROM T;
UPDATE T SET a = a + 1 WHERE 1;
ALTER TABLE T ADD COLUMN extra_6983 DATETIME DEFAULT CURRENT_TIMESTAMP;
INSERT INTO T2 VALUES (NULL, NULL);
VACUUM;
CREATE VIEW IF NOT EXISTS v_T2_6393 AS SELECT a FROM T2;
ALTER TABLE T1 RENAME COLUMN b TO b_r8651;
SELECT LEAD(a) OVER (ORDER BY a) FROM T1;
ALTER TABLE T DROP COLUMN a;
SELECT * FROM T1 AS a INNER JOIN T1 AS b ON a.rowid = b.rowid;
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 c1 IN (SELECT c1 FROM t1 t2 WHERE t2.c1 = t1.c1);
SELECT * FROM T2 AS /* load_extension({v}) */ a INNER JOIN T AS b ON a.rowid = b.rowid;
DETACH DATABASE aux78;
SELECT COUNT(*) FILTER (WHERE c1 IS NOT NULL), SUM(rowid) FILTER (WHERE c1 > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c1) FILTER (WHERE c1 > 0 AND c1 < 100), COUNT(*) FILTER (WHERE typeof(c1) = "text") FROM t1;
UPDATE T2 SET A = 'x';
PRAGMA cache_spill = NO;
INSERT INTO T2 SELECT * FROM T2;
VACUUM main;
CREATE VIRTUAL TABLE T
USING 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 WHERE EXISTS (SELECT 1 FROM T1 WHERE C > 0);
ROLLBACK TRANSACTION TO SAVEPOINT sp5671;
RELEASE SAVEPOINT sp5671;
ALTER TABLE T DROP COLUMN a;
SELECT A, (SELECT MIN(A) FROM T2) AS min_val FROM T2;
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 * FROM T1 WHERE A IN (SELECT A FROM T1 WHERE A IN (SELECT A FROM T1));
ALTER TABLE t1 ADD COLUMN extra_514 DATE DEFAULT (abs(random()) % 1000);
SELECT SUM(A) FROM T1;
ALTER TABLE t1 RENAME TO t1_r1859;
SELECT COUNT(*) FROM t1;
SELECT MAX(c0) FROM t1;
SELECT NTILE(1) OVER (PARTITION BY X ORDER BY X ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T2;
CREATE TEMP VIEW IF NOT EXISTS v_T_8701 AS SELECT b FROM T;
REINDEX;
SELECT 0x0ACB29BM205381;
SELECT sqlite_compileoption_used('我的天你是怎么了');
SELECT 1 >> -999999999999999999999999999;
SELECT sqlite_compileoption_get($1);
SELECT sqlite_version();
INSERT INTO t1 SELECT * FROM t1;
SELECT * FROM t1;
SELECT STRING_AGG(a, '|') FROM T;
SELECT * FROM T1;
SELECT GROUP_CONCAT(X, '|') FROM T2;
ALTER TABLE T2 DROP COLUMN A;
INSERT INTO T VALUES (NULL, NULL, NULL);
INSERT INTO t1 SELECT * FROM t1;
CREATE INDEX IF NOT EXISTS idx_T1_6502 ON T1(B);
SELECT COUNT(*) FROM T2;
ROLLBACK TO sp1179;
RELEASE sp1179;
SELECT * FROM t1;
INSERT INTO T2 DEFAULT VALUES;
INSERT OR REPLACE INTO t1 VALUES (-5, 7);
VACUUM;
ALTER TABLE T2 DROP COLUMN X;
SELECT * FROM T1;
SELECT * FROM T1 AS a JOIN T AS b ON a.rowid = b.rowid;
ALTER TABLE T2 ADD COLUMN extra_7126 FLOAT DEFAULT CURRENT_TIMESTAMP;
INSERT INTO T VALUES (NULL, NULL, NULL);
ALTER TABLE T1 DROP COLUMN A;
SELECT c, (SELECT AVG(c) FROM T) AS avg_val FROM T;
SELECT COUNT(*) FROM T2;
ALTER TABLE t1 DROP COLUMN c0;
```
## Actual output
```sql
main: "" r/w
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
1|-1.0
2|Inf
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,175 @@
## 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 sp5525;
-- changes()
PRAGMA compile_options;
CREATE TABLE t1(x INTEGER PRIMARY KEY, y, z);
CREATE TABLE t2(a, b);
CREATE TABLE T (
a TEXT,
b TEXT,
c REAL
);
INSERT INTO T VALUES ('a','b','-'), ('a','c',-1222056731234344303), ('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;
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 NOT NOT (t1.x IN (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);
PRAGMA fullsync = 0;
CREATE INDEX IF NOT EXISTS idx_t2_788 ON t2(lower(a)) WHERE +a > 0;
ALTER TABLE t1 RENAME COLUMN y TO y_r8132;
DELETE FROM t920 WHERE +x > (SELECT AVG(x) FROM t920) RETURNING *;
SELECT * FROM t2;
ALTER TABLE t920 ADD COLUMN extra_3469 NCHAR(55) DEFAULT 0;
SELECT * FROM T;
SELECT AVG(b) FROM t2;
DELETE FROM t2 WHERE a > (SELECT AVG(a) FROM t2);
RELEASE sp5525;
SELECT * FROM (SELECT * FROM t1) AS sub;
SELECT a, (SELECT MAX(a) FROM t2) AS max_val FROM t2;
```
## Actual output
```sql
ATOMIC_INTRINSICS=1
COMPILER=gcc-14.2.0
DEFAULT_AUTOVACUUM
DEFAULT_CACHE_SIZE=-2000
DEFAULT_FILE_FORMAT=4
DEFAULT_JOURNAL_SIZE_LIMIT=-1
DEFAULT_MMAP_SIZE=0
DEFAULT_PAGE_SIZE=4096
DEFAULT_PCACHE_INITSZ=20
DEFAULT_RECURSIVE_TRIGGERS
DEFAULT_SECTOR_SIZE=4096
DEFAULT_SYNCHRONOUS=2
DEFAULT_WAL_AUTOCHECKPOINT=1000
DEFAULT_WAL_SYNCHRONOUS=2
DEFAULT_WORKER_THREADS=0
ENABLE_BYTECODE_VTAB
ENABLE_DBPAGE_VTAB
ENABLE_DBSTAT_VTAB
ENABLE_EXPLAIN_COMMENTS
ENABLE_FTS3
ENABLE_FTS4
ENABLE_MATH_FUNCTIONS
ENABLE_OFFSET_SQL_FUNC
ENABLE_RTREE
ENABLE_STMTVTAB
ENABLE_UNKNOWN_SQL_FUNCTION
HAVE_ISNAN
MALLOC_SOFT_LIMIT=1024
MAX_ATTACHED=10
MAX_COLUMN=2000
MAX_COMPOUND_SELECT=500
MAX_DEFAULT_PAGE_SIZE=8192
MAX_EXPR_DEPTH=1000
MAX_FUNCTION_ARG=127
MAX_LENGTH=1000000000
MAX_LIKE_PATTERN_LENGTH=50000
MAX_MMAP_SIZE=0x7fff0000
MAX_PAGE_COUNT=1073741823
MAX_PAGE_SIZE=65536
MAX_SQL_LENGTH=1000000000
MAX_TRIGGER_DEPTH=1000
MAX_VARIABLE_NUMBER=32766
MAX_VDBE_OP=250000000
MAX_WORKER_THREADS=8
MUTEX_PTHREADS
SYSTEM_MALLOC
TEMP_STORE=1
THREADSAFE=1
a|-1.22205673123434e+18|-1.22205673123434e+18
b|0|0
5|0|9
5|0|9
5|0|9
5
a|b|-
a|c|-1.22205673123434e+18
b|b|4.75
```
## Expectation
```sql
ATOMIC_INTRINSICS=1
COMPILER=gcc-11.4.0
DEFAULT_AUTOVACUUM
DEFAULT_CACHE_SIZE=-2000
DEFAULT_FILE_FORMAT=4
DEFAULT_JOURNAL_SIZE_LIMIT=-1
DEFAULT_MMAP_SIZE=0
DEFAULT_PAGE_SIZE=4096
DEFAULT_PCACHE_INITSZ=20
DEFAULT_RECURSIVE_TRIGGERS
DEFAULT_SECTOR_SIZE=4096
DEFAULT_SYNCHRONOUS=2
DEFAULT_WAL_AUTOCHECKPOINT=1000
DEFAULT_WAL_SYNCHRONOUS=2
DEFAULT_WORKER_THREADS=0
DIRECT_OVERFLOW_READ
DQS=0
ENABLE_BYTECODE_VTAB
ENABLE_DBPAGE_VTAB
ENABLE_DBSTAT_VTAB
ENABLE_EXPLAIN_COMMENTS
ENABLE_FTS3
ENABLE_FTS4
ENABLE_MATH_FUNCTIONS
ENABLE_OFFSET_SQL_FUNC
ENABLE_PERCENTILE
ENABLE_RTREE
ENABLE_STMTVTAB
ENABLE_UNKNOWN_SQL_FUNCTION
HAVE_ISNAN
MALLOC_SOFT_LIMIT=1024
MAX_ATTACHED=10
MAX_COLUMN=2000
MAX_COMPOUND_SELECT=500
MAX_DEFAULT_PAGE_SIZE=8192
MAX_EXPR_DEPTH=1000
MAX_FUNCTION_ARG=1000
MAX_LENGTH=1000000000
MAX_LIKE_PATTERN_LENGTH=50000
MAX_MMAP_SIZE=0x7fff0000
MAX_PAGE_COUNT=0xfffffffe
MAX_PAGE_SIZE=65536
MAX_SQL_LENGTH=1000000000
MAX_TRIGGER_DEPTH=1000
MAX_VARIABLE_NUMBER=32766
MAX_VDBE_OP=250000000
MAX_WORKER_THREADS=8
MUTEX_PTHREADS
SYSTEM_MALLOC
TEMP_STORE=1
THREADSAFE=1
a|-1.22205673123434e+18|-1.22205673123434e+18
b|0|0
5|0|9
5|0|9
5|0|9
5
a|b|-
a|c|-1.22205673123434e+18
b|b|4.75
```
## 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
CREATE TABLE t1(a, b);
CREATE /* CHAR(10) */ INDEX i1 ON t1(a);
INSERT INTO t1 VALUES('aaa', tanh(timediff(sign(0), 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);
ALTER TABLE t1 DROP COLUMN b;
CREATE INDEX IF NOT EXISTS idx_t1_9614 ON t1(a COLLATE NOCASE) WHERE a IS NOT NULL;
SELECT * FROM t1;
```
## Actual output
```sql
3
ddd
eee
ddd
ccc
eee
```
## Expectation
```sql
```
## Flag
```
```
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,71 @@
## 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 on
CREATE TEMPORARY TABLE t0(x, y, z);
SELECT -99999999999999999999999999999999999999999999999999;
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
DROP TABLE t0;
BEGIN IMMEDIATE;
.exit -log10(radians(json_group_object('k', -(-(1)))))
PRAGMA read_uncommitted;
PRAGMA ignore_check_constraints = YES;
PRAGMA legacy_alter_table;
.parameter
CREATE TABLE t1(a, b, c, d);
CREATE UNIQUE INDEX i1 ON t1(b, c);
CREATE UNIQUE INDEX i2 ON t1(d COLLATE nocase);
CREATE TABLE t2(x DECIMAL(10,5) PRIMARY KEY, y);
CREATE TABLE t3(c1 PRIMARY KEY NOT NULL, c2 NOT NULL);
CREATE INDEX i3 ON t3(c2);
CREATE TABLE t4(a, b NOT NULL, c NOT NULL, d NOT NULL);
CREATE UNIQUE INDEX t4i1 ON t4(b, c);
CREATE UNIQUE INDEX t4i2 ON t4(d COLLATE nocase);
SELECT DISTINCT c FROM t1 WHERE NOT b = ?;
SELECT DISTINCT c FROM t1 WHERE b IN (1,2);
SELECT DISTINCT a, b, c COLLATE nocase FROM t1
PRAGMA integrity_check("users");
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_5148 ON t1(lower(c)) WHERE c > 0;
SELECT * FROM t1;
COMMIT;
SELECT COUNT(b) FROM t1;
INSERT INTO t2 DEFAULT VALUES;
WITH cte AS (SELECT * FROM t4) SELECT * FROM cte WHERE c > 0 UNION ALL SELECT * FROM cte WHERE c <= 0;
CREATE TEMP VIEW IF NOT EXISTS v_t1_244 AS SELECT c FROM t1;
INSERT INTO t1 SELECT * FROM t1;
ALTER TABLE t2 RENAME TO t2_r6544;
INSERT INTO t4 SELECT * FROM t4;
```
## Actual output
```sql
Run Time: real 0.000 user 0.000321 sys 0.000000
-1.0e+50
Run Time: real 0.000 user 0.000015 sys 0.000000
Run Time: real 0.000 user 0.000023 sys 0.000000
Run Time: real 0.000 user 0.000101 sys 0.000000
Run Time: real 0.000 user 0.000004 sys 0.000000
```
## Expectation
```sql
Run Time: real 0.000130 user 0.000135 sys 0.000000
-1.0e+50
Run Time: real 0.000009 user 0.000009 sys 0.000000
Run Time: real 0.000011 user 0.000011 sys 0.000000
Run Time: real 0.000060 user 0.000059 sys 0.000000
Run Time: real 0.000003 user 0.000003 sys 0.000000
```
## Flag
```
```
@@ -0,0 +1,515 @@
## 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 = '|';
.schema @@@@@@@@@@@@@@@@
PRAGMA vdbe_debug = YES;
ATTACH DATABASE ':memory:' AS aux63;
ATTACH DATABASE ':memory:' AS aux96;
DROP TABLE IF EXISTS t1;
CREATE TABLE t1(w INT, x INT);
INSERT INTO t1(w,x) VALUES(format(NULL, 2.718281828459045),10),(2,20),(3,30), (2,21),(3,31), (3,32);
CREATE INDEX t1wx ON t1(w,x);
DROP TABLE IF EXISTS t2;
CREATE TABLE t2(w INT, y VARCHAR(8));
INSERT INTO t2(w,y) VALUES(1,'one'),(2,'two'),(3,'three'),(4,'four');
CREATE INDEX t2wy ON t2(w,y);
WITH _m AS MATERIALIZED (SELECT * FROM t2) SELECT cnt, xyz, (SELECT y FROM _m WHERE +w=cnt), '|' FROM (SELECT count(*) AS cnt, w AS xyz FROM t1 GROUP BY 2) ORDER BY cnt, xyz;
SELECT cnt, xyz, lower((SELECT y FROM t2 WHERE w=cnt)), '|' FROM (SELECT count(*) AS cnt, w AS xyz FROM t1 GROUP BY 2) ORDER BY cnt, xyz;
SELECT cnt, xyz, CASE WHEN (SELECT y FROM t2 WHERE w=cnt)=='two' THEN 'aaa' ELSE 'bbb' END, '|' FROM (SELECT count(*) AS cnt, w AS xyz FROM t1 GROUP BY 2) ORDER BY +cnt;
DETACH DATABASE aux96;
SELECT COUNT(*) FROM t1;
ALTER TABLE t2 ADD COLUMN extra_1857 MEDIUMINT DEFAULT NULL;
UPDATE t1 SET w = CURRENT_TIMESTAMP WHERE rowid = 1;
DETACH DATABASE aux63;
DELETE FROM t1 WHERE x > (SELECT AVG(x) FROM t1) RETURNING *;
SELECT STRING_AGG(x, '|') FROM t1;
REINDEX;
INSERT INTO t1 VALUES (NULL, NULL);
DROP TRIGGER IF EXISTS t2;
DROP TRIGGER /* .restore */ IF EXISTS t1;
SELECT * FROM t2 AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
ANALYZE;
SELECT * FROM t2 WHERE EXISTS (SELECT 1 FROM t2 WHERE EXISTS (SELECT 1 FROM t2));
WITH cte AS (SELECT * FROM t1 WHERE x = (SELECT MAX(x) FROM t1)) SELECT * FROM cte;
INSERT INTO t1 DEFAULT VALUES;
CREATE INDEX IF NOT EXISTS idx_t2_9622 ON t2(y) WHERE y IS NOT NULL;
CREATE TRIGGER IF NOT EXISTS trg_t2_942 AFTER DELETE ON t2 BEGIN SELECT RAISE(IGNORE); END;
ALTER TABLE t2 RENAME COLUMN y TO y_r7009;
PRAGMA writable_schema = '|';
.schema @@@@@@@@@@@@@@@@
PRAGMA vdbe_debug = YES;
ATTACH DATABASE ':memory:' AS aux63;
ATTACH DATABASE ':memory:' AS aux96;
DROP TABLE IF EXISTS t1;
CREATE TABLE t1(w INT, x INT);
INSERT INTO t1(w,x) VALUES(format(NULL, 144337552170438577),10),(2,20),(3,30), (2,21),(3,31), (3,32);
CREATE INDEX t1wx ON t1(w,x);
DROP TABLE IF EXISTS t2;
CREATE TABLE t2(w INT, y VARCHAR(8));
INSERT INTO t2(w,y) VALUES(1,'one'),(2,'two'),(3,'three'),(4,'four');
CREATE INDEX t2wy ON t2(w,y);
WITH _m AS MATERIALIZED (SELECT * FROM t2) SELECT cnt, xyz, (SELECT y FROM _m WHERE w=cnt), '|' FROM (SELECT count(*) AS cnt, w AS xyz FROM t1 GROUP BY 2) ORDER BY cnt, xyz;
SELECT cnt, xyz, lower((SELECT y FROM t2 WHERE w=cnt)), '|' FROM (SELECT count(*) AS cnt, w AS xyz FROM t1 GROUP BY 2) ORDER BY cnt, xyz;
SELECT cnt, xyz, CASE WHEN (SELECT y FROM t2 WHERE w=cnt)=='two' THEN 'aaa' ELSE 'bbb' END, '|' FROM (SELECT count(*) AS cnt, w AS xyz FROM t1 GROUP BY 2) ORDER BY +cnt;
DETACH DATABASE aux96;
SELECT COUNT(*) FROM t1;
ALTER TABLE t2 ADD COLUMN extra_1857 MEDIUMINT DEFAULT NULL;
UPDATE t1 SET w = CURRENT_TIMESTAMP WHERE rowid = 1;
DETACH DATABASE aux63;
DELETE FROM t1 WHERE x > (SELECT AVG(x) FROM t1) RETURNING *;
SELECT STRING_AGG(x, '|') FROM t1;
REINDEX;
INSERT INTO t1 VALUES (NULL, NULL);
DROP TRIGGER IF EXISTS t2;
DROP TRIGGER /* .restore */ IF EXISTS t1;
SELECT * FROM t2 AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
ANALYZE;
SELECT * FROM t2 WHERE EXISTS (SELECT 1 FROM t2 WHERE EXISTS (SELECT 1 FROM t2));
WITH cte AS (SELECT * FROM t1 WHERE x = (SELECT MAX(x) FROM t1)) SELECT * FROM cte;
INSERT INTO t1 DEFAULT VALUES;
CREATE INDEX IF NOT EXISTS idx_t2_9622 ON t2(y) WHERE y IS NOT NULL;
CREATE TRIGGER IF NOT EXISTS trg_t2_942 AFTER DELETE ON t2 BEGIN SELECT RAISE(IGNORE); END;
ALTER TABLE t2 RENAME COLUMN y TO y_r7009;
PRAGMA writable_schema = '|';
.schema @@@@@@@@@@@@@@@@
PRAGMA vdbe_debug = YES;
ATTACH DATABASE ':memory:' AS aux63;
ATTACH DATABASE ':memory:' AS aux96;
DROP TABLE IF EXISTS t1;
CREATE TABLE t1(w INT, x INT);
INSERT INTO t1(w,x) VALUES(format(NULL, 144337552170438577),10),(2,20),(3,30), (2,21),(3,31), (3,32);
CREATE INDEX t1wx ON t1(w,x);
DROP TABLE IF EXISTS t2;
CREATE TABLE t2(w INT, y VARCHAR(8));
INSERT INTO t2(w,y) VALUES(1,'one'),(2,'two'),(3,'three'),(4,'four');
CREATE INDEX t2wy ON t2(w,y);
WITH _m AS MATERIALIZED (SELECT * FROM t2) SELECT cnt, xyz, (SELECT y FROM _m WHERE w=cnt), '|' FROM (SELECT count(*) AS cnt, w AS xyz FROM t1 GROUP BY 2) ORDER BY cnt, xyz;
SELECT cnt, xyz, lower((SELECT y FROM t2 WHERE w=cnt)), '|' FROM (SELECT count(*) AS cnt, w AS xyz FROM t1 GROUP BY 2) ORDER BY cnt, xyz;
SELECT cnt, xyz, CASE WHEN (SELECT y FROM t2 WHERE w=cnt)=='two' THEN 'aaa' ELSE 'bbb' END, '|' FROM (SELECT count(*) AS cnt, w AS xyz FROM t1 GROUP BY 2) ORDER BY +cnt;
DETACH DATABASE aux96;
SELECT COUNT(*) FROM t1;
ALTER TABLE t2 ADD COLUMN extra_1857 MEDIUMINT DEFAULT NULL;
UPDATE t1 SET w = CURRENT_TIMESTAMP WHERE rowid = 1;
DETACH DATABASE aux63;
DELETE FROM t1 WHERE x > (SELECT AVG(x) FROM t1) RETURNING *;
SELECT STRING_AGG(x, '|') FROM t1;
REINDEX;
INSERT INTO t1 VALUES (NULL, NULL);
DROP TRIGGER IF EXISTS t2;
DROP TRIGGER /* .restore */ IF EXISTS t1;
SELECT * FROM t2 AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
ANALYZE;
SELECT * FROM t2 WHERE EXISTS (SELECT 1 FROM t2 WHERE EXISTS (SELECT 1 FROM t2));
WITH cte AS (SELECT * FROM t1 WHERE x = (SELECT MAX(x) FROM t1)) SELECT * FROM cte;
INSERT INTO t1 DEFAULT VALUES;
CREATE INDEX IF NOT EXISTS idx_t2_9622 ON t2(y) WHERE y IS NOT NULL;
CREATE TRIGGER IF NOT EXISTS trg_t2_942 AFTER DELETE ON t2 BEGIN SELECT RAISE(IGNORE); END;
ALTER TABLE t2 RENAME COLUMN y TO y_r7009;
PRAGMA writable_schema = '|';
.schema @@@@@@@@@@@@@@@@
PRAGMA vdbe_debug = YES;
ATTACH DATABASE ':memory:' AS aux63;
ATTACH DATABASE ':memory:' AS aux96;
DROP TABLE IF EXISTS t1;
CREATE TABLE t1(w INT, x INT);
INSERT INTO t1(w,x) VALUES(format(NULL, 144337552170438577),10),(2,20),(3,30), (2,21),(3,31), (3,32);
CREATE INDEX t1wx ON t1(w,x);
DROP TABLE IF EXISTS t2;
CREATE TABLE t2(w INT, y VARCHAR(8));
INSERT INTO t2(w,y) VALUES(1,'one'),(2,'two'),(3,'three'),(4,'four');
CREATE INDEX t2wy ON t2(w,y);
WITH _m AS MATERIALIZED (SELECT * FROM t2) SELECT cnt, xyz, (SELECT y FROM _m WHERE w=cnt), '|' FROM (SELECT count(*) AS cnt, w AS xyz FROM t1 GROUP BY 2) ORDER BY cnt, xyz;
SELECT cnt, xyz, lower((SELECT y FROM t2 WHERE w=cnt)), '|' FROM (SELECT count(*) AS cnt, w AS xyz FROM t1 GROUP BY 2) ORDER BY cnt, xyz;
SELECT cnt, xyz, CASE WHEN (SELECT y FROM t2 WHERE w=cnt)=='two' THEN 'aaa' ELSE 'bbb' END, '|' FROM (SELECT count(*) AS cnt, w AS xyz FROM t1 GROUP BY 2) ORDER BY +cnt;
DETACH DATABASE aux96;
SELECT COUNT(*) FROM t1;
ALTER TABLE t2 ADD COLUMN extra_1857 MEDIUMINT DEFAULT NULL;
UPDATE t1 SET w = CURRENT_TIMESTAMP WHERE rowid = 1;
DETACH DATABASE aux63;
DELETE FROM t1 WHERE x > (SELECT AVG(x) FROM t1) RETURNING *;
SELECT STRING_AGG(x, '|') FROM t1;
REINDEX;
INSERT INTO t1 VALUES (NULL, NULL);
DROP TRIGGER IF EXISTS t2;
DROP TRIGGER /* .restore */ IF EXISTS t1;
SELECT * FROM t2 AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
ANALYZE;
SELECT * FROM t2 WHERE EXISTS (SELECT 1 FROM t2 WHERE EXISTS (SELECT 1 FROM t2));
WITH cte AS (SELECT * FROM t1 WHERE x = (SELECT MAX(x) FROM t1)) SELECT * FROM cte;
INSERT INTO t1 DEFAULT VALUES;
CREATE INDEX IF NOT EXISTS idx_t2_9622 ON t2(y) WHERE y IS NOT NULL;
CREATE TRIGGER IF NOT EXISTS trg_t2_942 AFTER DELETE ON t2 BEGIN SELECT RAISE(IGNORE); END;
ALTER TABLE t2 RENAME COLUMN y TO y_r7009;
PRAGMA writable_schema = '|';
.schema @@@@@@@@@@@@@@@@
PRAGMA vdbe_debug = YES;
ATTACH DATABASE ':memory:' AS aux63;
ATTACH DATABASE ':memory:' AS aux96;
DROP TABLE IF EXISTS t1;
CREATE TABLE t1(w INT, x INT);
INSERT INTO t1(w,x) VALUES(format(NULL, 144337552170438577),10),(2,20),(3,30), (2,21),(3,31), (3,32);
CREATE INDEX t1wx ON t1(w,x);
DROP TABLE IF EXISTS t2;
CREATE TABLE t2(w INT, y VARCHAR(8));
INSERT INTO t2(w,y) VALUES(1,'one'),(2,'two'),(3,'three'),(4,'four');
CREATE INDEX t2wy ON t2(w,y);
WITH _m AS MATERIALIZED (SELECT * FROM t2) SELECT cnt, xyz, (SELECT y FROM _m WHERE w=cnt), '|' FROM (SELECT count(*) AS cnt, w AS xyz FROM t1 GROUP BY 2) ORDER BY cnt, xyz;
SELECT cnt, xyz, lower((SELECT y FROM t2 WHERE w=cnt)), '|' FROM (SELECT count(*) AS cnt, w AS xyz FROM t1 GROUP BY 2) ORDER BY cnt, xyz;
SELECT cnt, xyz, CASE WHEN (SELECT y FROM t2 WHERE w=cnt)=='two' THEN 'aaa' ELSE 'bbb' END, '|' FROM (SELECT count(*) AS cnt, w AS xyz FROM t1 GROUP BY 2) ORDER BY +cnt;
DETACH DATABASE aux96;
SELECT COUNT(*) FROM t1;
ALTER TABLE t2 ADD COLUMN extra_1857 MEDIUMINT DEFAULT NULL;
UPDATE t1 SET w = CURRENT_TIMESTAMP WHERE rowid = 1;
DETACH DATABASE aux63;
DELETE FROM t1 WHERE x > (SELECT AVG(x) FROM t1) RETURNING *;
SELECT STRING_AGG(x, '|') FROM t1;
REINDEX;
INSERT INTO t1 VALUES (NULL, NULL);
DROP TRIGGER IF EXISTS t2;
DROP TRIGGER /* .restore */ IF EXISTS t1;
SELECT * FROM t2 AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
ANALYZE;
SELECT * FROM t2 WHERE EXISTS (SELECT 1 FROM t2 WHERE EXISTS (SELECT 1 FROM t2));
WITH cte AS (SELECT * FROM t1 WHERE x = (SELECT MAX(x) FROM t1)) SELECT * FROM cte;
INSERT INTO t1 DEFAULT VALUES;
CREATE INDEX IF NOT EXISTS idx_t2_9622 ON t2(y) WHERE y IS NOT NULL;
CREATE TRIGGER IF NOT EXISTS trg_t2_942 AFTER DELETE ON t2 BEGIN SELECT RAISE(IGNORE); END;
ALTER TABLE t2 RENAME COLUMN y TO y_r7009;
PRAGMA writable_schema = '|';
.schema @@@@@@@@@@@@@@@@
PRAGMA vdbe_debug = YES;
ATTACH DATABASE ':memory:' AS aux63;
ATTACH DATABASE ':memory:' AS aux96;
DROP TABLE IF EXISTS t1;
CREATE TABLE t1(w INT, x INT);
INSERT INTO t1(w,x) VALUES(format(NULL, 144337552170438577),10),(2,20),(3,30), (2,21),(3,31), (3,32);
CREATE INDEX t1wx ON t1(w,x);
DROP TABLE IF EXISTS t2;
CREATE TABLE t2(w INT, y VARCHAR(8));
INSERT INTO t2(w,y) VALUES(1,'one'),(2,'two'),(3,'three'),(4,'four');
CREATE INDEX t2wy ON t2(w,y);
WITH _m AS MATERIALIZED (SELECT * FROM t2) SELECT cnt, xyz, (SELECT y FROM _m WHERE w=cnt), '|' FROM (SELECT count(*) AS cnt, w AS xyz FROM t1 GROUP BY 2) ORDER BY cnt, xyz;
SELECT cnt, xyz, lower((SELECT y FROM t2 WHERE w=cnt)), '|' FROM (SELECT count(*) AS cnt, w AS xyz FROM t1 GROUP BY 2) ORDER BY cnt, xyz;
SELECT cnt, xyz, CASE WHEN (SELECT y FROM t2 WHERE w=cnt)=='two' THEN 'aaa' ELSE 'bbb' END, '|' FROM (SELECT count(*) AS cnt, w AS xyz FROM t1 GROUP BY 2) ORDER BY +cnt;
DETACH DATABASE aux96;
SELECT COUNT(*) FROM t1;
ALTER TABLE t2 ADD COLUMN extra_1857 MEDIUMINT DEFAULT NULL;
UPDATE t1 SET w = CURRENT_TIMESTAMP WHERE rowid = 1;
DETACH DATABASE aux63;
DELETE FROM t1 WHERE x > (SELECT AVG(x) FROM t1) RETURNING *;
SELECT STRING_AGG(x, '|') FROM t1;
REINDEX;
INSERT INTO t1 VALUES (NULL, NULL);
DROP TRIGGER IF EXISTS t2;
DROP TRIGGER /* .restore */ IF EXISTS t1;
SELECT * FROM t2 AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
ANALYZE;
SELECT * FROM t2 WHERE EXISTS (SELECT 1 FROM t2 WHERE EXISTS (SELECT 1 FROM t2));
WITH cte AS (SELECT * FROM t1 WHERE x = (SELECT MAX(x) FROM t1)) SELECT * FROM cte;
INSERT INTO t1 DEFAULT VALUES;
CREATE INDEX IF NOT EXISTS idx_t2_9622 ON t2(y) WHERE y IS NOT NULL;
CREATE TRIGGER IF NOT EXISTS trg_t2_942 AFTER DELETE ON t2 BEGIN SELECT RAISE(IGNORE); END;
ALTER TABLE t2 RENAME COLUMN y TO y_r7009;
PRAGMA writable_schema = '|';
.schema @@@@@@@@@@@@@@@@
PRAGMA vdbe_debug = YES;
ATTACH DATABASE ':memory:' AS aux63;
ATTACH DATABASE ':memory:' AS aux96;
DROP TABLE IF EXISTS t1;
CREATE TABLE t1(w INT, x INT);
INSERT INTO t1(w,x) VALUES(format(NULL, 144337552170438577),10),(2,20),(3,30), (2,21),(3,31), (3,32);
CREATE INDEX t1wx ON t1(w,x);
DROP TABLE IF EXISTS t2;
CREATE TABLE t2(w INT, y VARCHAR(8));
INSERT INTO t2(w,y) VALUES(1,'one'),(2,'two'),(3,'three'),(4,'four');
CREATE INDEX t2wy ON t2(w,y);
WITH _m AS MATERIALIZED (SELECT * FROM t2) SELECT cnt, xyz, (SELECT y FROM _m WHERE w=cnt), '|' FROM (SELECT count(*) AS cnt, w AS xyz FROM t1 GROUP BY 2) ORDER BY cnt, xyz;
SELECT cnt, xyz, lower((SELECT y FROM t2 WHERE w=cnt)), '|' FROM (SELECT count(*) AS cnt, w AS xyz FROM t1 GROUP BY 2) ORDER BY cnt, xyz;
SELECT cnt, xyz, CASE WHEN (SELECT y FROM t2 WHERE w=cnt)=='two' THEN 'aaa' ELSE 'bbb' END, '|' FROM (SELECT count(*) AS cnt, w AS xyz FROM t1 GROUP BY 2) ORDER BY +cnt;
DETACH DATABASE aux96;
SELECT COUNT(*) FROM t1;
ALTER TABLE t2 ADD COLUMN extra_1857 MEDIUMINT DEFAULT NULL;
UPDATE t1 SET w = CURRENT_TIMESTAMP WHERE rowid = 1;
DETACH DATABASE aux63;
DELETE FROM t1 WHERE x > (SELECT AVG(x) FROM t1) RETURNING *;
SELECT STRING_AGG(x, '|') FROM t1;
REINDEX;
INSERT INTO t1 VALUES (NULL, NULL);
DROP TRIGGER IF EXISTS t2;
DROP TRIGGER /* .restore */ IF EXISTS t1;
SELECT * FROM t2 AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
ANALYZE;
SELECT * FROM t2 WHERE EXISTS (SELECT 1 FROM t2 WHERE EXISTS (SELECT 1 FROM t2));
WITH cte AS (SELECT * FROM t1 WHERE x = (SELECT MAX(x) FROM t1)) SELECT * FROM cte;
INSERT INTO t1 DEFAULT VALUES;
CREATE INDEX IF NOT EXISTS idx_t2_9622 ON t2(y) WHERE y IS NOT NULL;
CREATE TRIGGER IF NOT EXISTS trg_t2_942 AFTER DELETE ON t2 BEGIN SELECT RAISE(IGNORE); END;
ALTER TABLE t2 RENAME COLUMN y TO y_r7009;
PRAGMA writable_schema = '|';
.schema @@@@@@@@@@@@@@@@
PRAGMA vdbe_debug = YES;
ATTACH DATABASE ':memory:' AS aux63;
ATTACH DATABASE ':memory:' AS aux96;
DROP TABLE IF EXISTS t1;
CREATE TABLE t1(w INT, x INT);
INSERT INTO t1(w,x) VALUES(format(NULL, 144337552170438577),10),(2,20),(3,30), (2,21),(3,31), (3,32);
CREATE INDEX t1wx ON t1(w,x);
DROP TABLE IF EXISTS t2;
CREATE TABLE t2(w INT, y VARCHAR(8));
INSERT INTO t2(w,y) VALUES(1,'one'),(2,'two'),(3,'three'),(4,'four');
CREATE INDEX t2wy ON t2(w,y);
WITH _m AS MATERIALIZED (SELECT * FROM t2) SELECT cnt, xyz, (SELECT y FROM _m WHERE w=cnt), '|' FROM (SELECT count(*) AS cnt, w AS xyz FROM t1 GROUP BY 2) ORDER BY cnt, xyz;
SELECT cnt, xyz, lower((SELECT y FROM t2 WHERE w=cnt)), '|' FROM (SELECT count(*) AS cnt, w AS xyz FROM t1 GROUP BY 2) ORDER BY cnt, xyz;
SELECT cnt, xyz, CASE WHEN (SELECT y FROM t2 WHERE w=cnt)=='two' THEN 'aaa' ELSE 'bbb' END, '|' FROM (SELECT count(*) AS cnt, w AS xyz FROM t1 GROUP BY 2) ORDER BY +cnt;
DETACH DATABASE aux96;
SELECT COUNT(*) FROM t1;
ALTER TABLE t2 ADD COLUMN extra_1857 MEDIUMINT DEFAULT NULL;
UPDATE t1 SET w = CURRENT_TIMESTAMP WHERE rowid = 1;
DETACH DATABASE aux63;
DELETE FROM t1 WHERE x > (SELECT AVG(x) FROM t1) RETURNING *;
SELECT STRING_AGG(x, '|') FROM t1;
REINDEX;
INSERT INTO t1 VALUES (NULL, NULL);
DROP TRIGGER IF EXISTS t2;
DROP TRIGGER /* .restore */ IF EXISTS t1;
SELECT * FROM t2 AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
ANALYZE;
SELECT * FROM t2 WHERE EXISTS (SELECT 1 FROM t2 WHERE EXISTS (SELECT 1 FROM t2));
WITH cte AS (SELECT * FROM t1 WHERE x = (SELECT MAX(x) FROM t1)) SELECT * FROM cte;
INSERT INTO t1 DEFAULT VALUES;
CREATE INDEX IF NOT EXISTS idx_t2_9622 ON t2(y) WHERE y IS NOT NULL;
CREATE TRIGGER IF NOT EXISTS trg_t2_942 AFTER DELETE ON t2 BEGIN SELECT RAISE(IGNORE); END;
ALTER TABLE t2 RENAME COLUMN y TO y_r7009;
ALTER TABLE t1 RENAME TO t1_r3903;
```
## Actual output
```sql
1||one||
2|2|two||
3|3|three||
1||one||
2|2|two||
3|3|three||
1||bbb||
2|2|aaa||
3|3|bbb||
6
3|30
3|31
3|32
1|one||2026-05-15 11:39:33|10
2|two||2|20
3|three|||
4|four||2|21
1|one|
2|two|
3|three|
4|four|
2|21
1||one||
2|2|two||
3|3|three||
1||one||
2|2|two||
3|3|three||
1||bbb||
2|2|aaa||
3|3|bbb||
6
3|30
3|31
3|32
1|one||2026-05-15 11:39:33|10
2|two||2|20
3|three|||
4|four||2|21
1|one|
2|two|
3|three|
4|four|
2|21
1||one||
2|2|two||
3|3|three||
1||one||
2|2|two||
3|3|three||
1||bbb||
2|2|aaa||
3|3|bbb||
6
3|30
3|31
3|32
1|one||2026-05-15 11:39:33|10
2|two||2|20
3|three|||
4|four||2|21
1|one|
2|two|
3|three|
4|four|
2|21
1||one||
2|2|two||
3|3|three||
1||one||
2|2|two||
3|3|three||
1||bbb||
2|2|aaa||
3|3|bbb||
6
3|30
3|31
3|32
1|one||2026-05-15 11:39:33|10
2|two||2|20
3|three|||
4|four||2|21
1|one|
2|two|
3|three|
4|four|
2|21
1||one||
2|2|two||
3|3|three||
1||one||
2|2|two||
3|3|three||
1||bbb||
2|2|aaa||
3|3|bbb||
6
3|30
3|31
3|32
1|one||2026-05-15 11:39:33|10
2|two||2|20
3|three|||
4|four||2|21
1|one|
2|two|
3|three|
4|four|
2|21
1||one||
2|2|two||
3|3|three||
1||one||
2|2|two||
3|3|three||
1||bbb||
2|2|aaa||
3|3|bbb||
6
3|30
3|31
3|32
1|one||2026-05-15 11:39:33|10
2|two||2|20
3|three|||
4|four||2|21
1|one|
2|two|
3|three|
4|four|
2|21
1||one||
2|2|two||
3|3|three||
1||one||
2|2|two||
3|3|three||
1||bbb||
2|2|aaa||
3|3|bbb||
6
3|30
3|31
3|32
1|one||2026-05-15 11:39:33|10
2|two||2|20
3|three|||
4|four||2|21
1|one|
2|two|
3|three|
4|four|
2|21
1||one||
2|2|two||
3|3|three||
1||one||
2|2|two||
3|3|three||
1||bbb||
2|2|aaa||
3|3|bbb||
6
3|30
3|31
3|32
1|one||2026-05-15 11:39:33|10
2|two||2|20
3|three|||
4|four||2|21
1|one|
2|two|
3|three|
4|four|
2|21
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,604 @@
## 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 aux86;
PRAGMA function_list;
.exit
ATTACH DATABASE '' || (':memory:') AS aux5;
.output
PRAGMA full_column_names = unistr(NULL);
.shell pwd
BEGIN EXCLUSIVE;
.quit
PRAGMA full_column_names;
PRAGMA integrity_check(load_extension(json_valid(-'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', -(-(NULL)))));
PRAGMA max_page_count = 5000000;
.backup
CREATE TABLE t1(a DOUBLE PRECISION, b INTEGER PRIMARY KEY, c BLOB, FOREIGN KEY (b) REFERENCES t2);
CREATE TABLE t2(c, d, e);
insErT INTO t1 VALUES(1, 2, 3);
ALTER TABLE t1 RENAME COLUMN b TO d;
CREATE TABLE t3(a, b, c, d, e, f, g, h, i, j, k, l, m, FOREIGN KEY (b, c, d, e, f, g, h, i, j, k, l, m) REFERENCES main.t4);
CREATE TABLE t4(x, y, z);
INSERT INTO t4 VALUES(3, 2, 1);
SELECT * FROM t1 WHERE NOT NOT (NOT a > /* .changes */ ALL (SELECT a FROM t1)) ;
COMMIT;
ALTER TABLE t4 ADD COLUMN extra_8043 CLOB COLLATE RTRIM;
VACUUM;
SELECT COUNT(*) FROM t3;
PRAGMA foreign_keys = 1;
WITH cte(a, b, c) AS (SELECT d, d, d FROM t2) SELECT a, b, c FROM cte;
SELECT * FROM (SELECT * FROM (SELECT * FROM t3) AS inner1) AS inner2;
SELECT STRING_AGG(x) FROM t4;
WITH RECURSIVE fib(a,b,n) AS (VALUES(1,1,1) UNION ALL SELECT b, a+b, n+1 FROM fib WHERE +n<82) SELECT a, n FROM fib;
PRAGMA recursive_triggers = NO;
VACUUM;
DELETE FROM t2 WHERE c IS NULL RETURNING *;
SELECT * FROM t3 AS a JOIN t2 AS b ON a.rowid = b.rowid;
INSERT INTO t3 VALUES ('x', 'x', NULL, 'x', 'x', NULL, NULL, 'x', 'x', NULL, 1, NULL, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
CREATE VIEW IF NOT EXISTS v_t3_25 AS SELECT f FROM t3;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t2_5761 AS SELECT d FROM t2;
VACUUM;
WITH RECURSIVE cnt(x) AS (VALUES(0) UNION ALL SELECT x-1 FROM cnt WHERE +x>-61) SELECT * FROM cnt;
SELECT COUNT(*) FROM t2;
SELECT x, (SELECT MAX(x) FROM t4) AS max_val FROM t4;
ALTER TABLE t2 RENAME TO t2_r4493;
REINDEX;
DETACH DATABASE aux5;
SELECT COUNT(*) FROM t1;
VACUUM;
ALTER TABLE t2 DROP COLUMN e;
ALTER TABLE t1 RENAME TO t1_r2401;
INSERT AND REPLACE INTO t1 VALUES ('', 'x', -7);
SELECT COUNT(c) FROM t2;
PRAGMA vdbe_addoptrace = 0;
DROP TABLE IF EXISTS t1;
SELECT LAG(z, 0, 'default') OVER (ORDER BY z ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM t4;
DELETE FROM t3 WHERE rowid = 56 RETURNING *;
INSERT INTO t2 VALUES ('x', 'x', 1) ON CONFLICT(c) DO UPDATE SET c = excluded.c, d = excluded.d, e = excluded.e;
UPDATE t2 SET e = NULL RETURNING *;
PRAGMA function_list;
.exit
ATTACH DATABASE '' || (':memory:') AS aux5;
.output
PRAGMA full_column_names = unistr(NULL);
.shell pwd
BEGIN EXCLUSIVE;
.quit
PRAGMA full_column_names;
PRAGMA integrity_check(load_extension(json_valid(-'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', -(-(0.0)))));
PRAGMA max_page_count = 5000000;
.backup
CREATE TABLE t1(a DOUBLE PRECISION, b INTEGER PRIMARY KEY, c BLOB, FOREIGN KEY (b) REFERENCES t2);
CREATE TABLE t2(c, d, e);
insErT INTO t1 VALUES(1, 2, 3);
ALTER TABLE t1 RENAME COLUMN b TO d;
CREATE TABLE t3(a, b, c, d, e, f, g, h, i, j, k, l, m, FOREIGN KEY (b, c, d, e, f, g, h, i, j, k, l, m) REFERENCES main.t4);
CREATE TABLE t4(x, y, z);
INSERT INTO t4 VALUES(3, 2, 1);
SELECT * FROM t1 WHERE NOT NOT (NOT a > /* .changes */ ALL (SELECT a FROM t1)) ;
COMMIT;
ALTER TABLE t4 ADD COLUMN extra_8043 CLOB COLLATE RTRIM;
VACUUM;
SELECT COUNT(*) FROM t3;
PRAGMA foreign_keys = 1;
WITH cte(a, b, c) AS (SELECT d, d, d FROM t2) SELECT a, b, c FROM cte;
SELECT * FROM (SELECT * FROM (SELECT * FROM t3) AS inner1) AS inner2;
SELECT STRING_AGG(x) FROM t4;
WITH RECURSIVE fib(a,b,n) AS (VALUES(1,1,1) UNION ALL SELECT b, a+b, n+1 FROM fib WHERE +n<82) SELECT a, n FROM fib;
PRAGMA recursive_triggers = NO;
VACUUM;
DELETE FROM t2 WHERE c IS NULL RETURNING *;
SELECT * FROM t3 AS a FULL JOIN t2 AS b ON a.rowid = b.rowid;
INSERT INTO t3 VALUES ('x', 'x', NULL, 'x', 'x', NULL, NULL, 'x', 'x', NULL, 1, NULL, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
CREATE VIEW IF NOT EXISTS v_t3_25 AS SELECT f FROM t3;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t2_5761 AS SELECT d FROM t2;
VACUUM;
WITH RECURSIVE cnt(x) AS (VALUES(0) UNION ALL SELECT x-1 FROM cnt WHERE x>-61) SELECT * FROM cnt;
SELECT COUNT(*) FROM t2;
SELECT x, (SELECT MAX(x) FROM t4) AS max_val FROM t4;
ALTER TABLE t2 RENAME TO t2_r4493;
REINDEX;
DETACH DATABASE aux5;
SELECT COUNT(*) FROM t1;
VACUUM;
ALTER TABLE t2 DROP COLUMN e;
ALTER TABLE t1 RENAME TO t1_r2401;
INSERT OR REPLACE INTO t1 VALUES ('', 'x', -7);
SELECT COUNT(c) FROM t2;
PRAGMA vdbe_addoptrace = 0;
DROP TABLE IF EXISTS t1;
SELECT LAG(z, 0, 'default') OVER (ORDER BY z ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM t4;
DELETE FROM t3 WHERE rowid = 56 RETURNING *;
INSERT INTO t2 VALUES ('x', 'x', 1) ON CONFLICT(c) DO UPDATE SET c = excluded.c, d = excluded.d, e = excluded.e;
UPDATE t2 SET e = NULL RETURNING *;
PRAGMA function_list;
.exit
ATTACH DATABASE '' || (':memory:') AS aux5;
.output
PRAGMA full_column_names = unistr(NULL);
.shell pwd
BEGIN EXCLUSIVE;
.quit
PRAGMA full_column_names;
PRAGMA integrity_check(load_extension(json_valid(-'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', -(-(0.0)))));
PRAGMA max_page_count = 5000000;
.backup
CREATE TABLE t1(a DOUBLE PRECISION, b INTEGER PRIMARY KEY, c BLOB, FOREIGN KEY (b) REFERENCES t2);
CREATE TABLE t2(c, d, e);
insErT INTO t1 VALUES(1, 2, 3);
ALTER TABLE t1 RENAME COLUMN b TO d;
CREATE TABLE t3(a, b, c, d, e, f, g, h, i, j, k, l, m, FOREIGN KEY (b, c, d, e, f, g, h, i, j, k, l, m) REFERENCES main.t4);
CREATE TABLE t4(x, y, z);
INSERT INTO t4 VALUES(3, 2, 1);
SELECT * FROM t1 WHERE NOT NOT (NOT a > /* .changes */ ALL (SELECT a FROM t1)) ;
COMMIT;
ALTER TABLE t4 ADD COLUMN extra_8043 CLOB COLLATE RTRIM;
VACUUM;
SELECT COUNT(*) FROM t3;
PRAGMA foreign_keys = 1;
WITH cte(a, b, c) AS (SELECT d, d, d FROM t2) SELECT a, b, c FROM cte;
SELECT * FROM (SELECT * FROM (SELECT * FROM t3) AS inner1) AS inner2;
SELECT STRING_AGG(x) FROM t4;
WITH RECURSIVE fib(a,b,n) AS (VALUES(1,1,1) UNION ALL SELECT b, a+b, n+1 FROM fib WHERE +n<82) SELECT a, n FROM fib;
PRAGMA recursive_triggers = NO;
VACUUM;
DELETE FROM t2 WHERE c IS NULL RETURNING *;
SELECT * FROM t3 AS a FULL JOIN t2 AS b ON a.rowid = b.rowid;
INSERT INTO t3 VALUES ('x', 'x', NULL, 'x', 'x', NULL, NULL, 'x', 'x', NULL, 1, NULL, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
CREATE VIEW IF NOT EXISTS v_t3_25 AS SELECT f FROM t3;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t2_5761 AS SELECT d FROM t2;
VACUUM;
WITH RECURSIVE cnt(x) AS (VALUES(0) UNION ALL SELECT x-1 FROM cnt WHERE x>-61) SELECT * FROM cnt;
SELECT COUNT(*) FROM t2;
SELECT x, (SELECT MAX(x) FROM t4) AS max_val FROM t4;
ALTER TABLE t2 RENAME TO t2_r4493;
REINDEX;
DETACH DATABASE aux5;
SELECT COUNT(*) FROM t1;
VACUUM;
ALTER TABLE t2 DROP COLUMN e;
ALTER TABLE t1 RENAME TO t1_r2401;
INSERT OR REPLACE INTO t1 VALUES ('', 'x', -7);
SELECT COUNT(c) FROM t2;
PRAGMA vdbe_addoptrace = 0;
DROP TABLE IF EXISTS t1;
SELECT LAG(z, 0, 'default') OVER (ORDER BY z ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM t4;
DELETE FROM t3 WHERE rowid = 56 RETURNING *;
INSERT INTO t2 VALUES ('x', 'x', 1) ON CONFLICT(c) DO UPDATE SET c = excluded.c, d = excluded.d, e = excluded.e;
UPDATE t2 SET e = NULL RETURNING *;
DETACH DATABASE aux86;
ALTER TABLE t4 ADD COLUMN extra_6476 INT8 DEFAULT (random());
```
## Actual output
```sql
pow|1|s|utf8|2|2099200
group_concat|1|w|utf8|1|2097152
group_concat|1|w|utf8|2|2097152
json_type|1|s|utf8|1|2048
json_type|1|s|utf8|2|2048
julianday|1|s|utf8|-1|2099200
ntile|1|w|utf8|1|2097152
nullif|1|s|utf8|2|2099200
sqlite_compileoption_get|1|s|utf8|1|2097152
json_valid|1|s|utf8|1|2048
json_quote|1|s|utf8|1|2048
json_patch|1|s|utf8|2|2048
->|1|s|utf8|2|2048
json_array|1|s|utf8|-1|2048
current_timestamp|1|s|utf8|0|2097152
power|1|s|utf8|2|2099200
sqlite_compileoption_used|1|s|utf8|1|2097152
json_remove|1|s|utf8|-1|2048
json_object|1|s|utf8|-1|2048
json_insert|1|s|utf8|-1|2048
->>|1|s|utf8|2|2048
sin|1|s|utf8|1|2099200
sum|1|w|utf8|1|2097152
quote|1|s|utf8|1|2099200
printf|1|s|utf8|-1|2099200
likelihood|1|s|utf8|2|2099200
json_replace|1|s|utf8|-1|2048
json_extract|1|s|utf8|-1|2048
last_value|1|w|utf8|1|2097152
rank|1|w|utf8|0|2097152
sign|1|s|utf8|1|2099200
sqrt|1|s|utf8|1|2099200
sinh|1|s|utf8|1|2099200
tan|1|s|utf8|1|2099200
round|1|s|utf8|1|2099200
round|1|s|utf8|2|2099200
rtrim|1|s|utf8|1|2099200
rtrim|1|s|utf8|2|2099200
nth_value|1|w|utf8|2|2097152
tanh|1|s|utf8|1|2099200
random|1|s|utf8|0|2097152
trim|1|s|utf8|1|2099200
trim|1|s|utf8|2|2099200
time|1|s|utf8|-1|2099200
radians|1|s|utf8|1|2099200
trunc|1|s|utf8|1|2099200
total|1|w|utf8|1|2097152
substr|1|s|utf8|2|2099200
substr|1|s|utf8|3|2099200
replace|1|s|utf8|3|2099200
upper|1|s|utf8|1|2099200
subtype|1|s|utf8|1|2099200
typeof|1|s|utf8|1|2099200
load_extension|1|s|utf8|1|524288
load_extension|1|s|utf8|2|524288
json_group_array|1|w|utf8|1|1050624
avg|1|w|utf8|1|2097152
abs|1|s|utf8|1|2099200
json_group_object|1|w|utf8|2|1050624
json_array_length|1|s|utf8|1|2048
json_array_length|1|s|utf8|2|2048
strftime|1|s|utf8|-1|2099200
atan|1|s|utf8|1|2099200
asin|1|s|utf8|1|2099200
acos|1|s|utf8|1|2099200
unknown|1|s|utf8|-1|2099200
substring|1|s|utf8|2|2099200
substring|1|s|utf8|3|2099200
randomblob|1|s|utf8|1|2097152
unicode|1|s|utf8|1|2099200
percent_rank|1|w|utf8|0|2097152
row_number|1|w|utf8|0|2097152
atanh|1|s|utf8|1|2099200
asinh|1|s|utf8|1|2099200
acosh|1|s|utf8|1|2099200
cos|1|s|utf8|1|2099200
atan2|1|s|utf8|2|2099200
last_insert_rowid|1|s|utf8|0|2097152
sqlite_log|1|s|utf8|2|2099200
unlikely|1|s|utf8|1|2099200
cosh|1|s|utf8|1|2099200
ceil|1|s|utf8|1|2099200
char|1|s|utf8|-1|2099200
unixepoch|1|s|utf8|-1|2099200
exp|1|s|utf8|1|2099200
count|1|w|utf8|0|2097152
count|1|w|utf8|1|2097152
date|1|s|utf8|-1|2099200
sqlite_offset|1|s|utf8|1|2097152
ceiling|1|s|utf8|1|2099200
total_changes|1|s|utf8|0|2097152
changes|1|s|utf8|0|2097152
sqlite_version|1|s|utf8|0|2097152
degrees|1|s|utf8|1|2099200
floor|1|s|utf8|1|2099200
coalesce|1|s|utf8|-1|2099200
glob|1|s|utf8|2|2099200
zeroblob|1|s|utf8|1|2099200
hex|1|s|utf8|1|2099200
iif|1|s|utf8|3|2099200
sqlite_source_id|1|s|utf8|0|2097152
format|1|s|utf8|-1|2099200
datetime|1|s|utf8|-1|2099200
cume_dist|1|w|utf8|0|2097152
ln|1|s|utf8|1|2099200
instr|1|s|utf8|2|2099200
json|1|s|utf8|1|2048
dense_rank|1|w|utf8|0|2097152
log|1|s|utf8|1|2099200
log|1|s|utf8|2|2099200
ifnull|1|s|utf8|2|2099200
current_date|1|s|utf8|0|2097152
current_time|1|s|utf8|0|2097152
lag|1|w|utf8|1|2097152
lag|1|w|utf8|3|2097152
lag|1|w|utf8|2|2097152
mod|1|s|utf8|2|2099200
log2|1|s|utf8|1|2099200
like|1|s|utf8|2|2099200
like|1|s|utf8|3|2099200
max|1|s|utf8|-1|2099200
max|1|w|utf8|1|2097152
min|1|s|utf8|-1|2099200
min|1|w|utf8|1|2097152
lead|1|w|utf8|1|2097152
lead|1|w|utf8|3|2097152
lead|1|w|utf8|2|2097152
log10|1|s|utf8|1|2099200
lower|1|s|utf8|1|2099200
ltrim|1|s|utf8|1|2099200
ltrim|1|s|utf8|2|2099200
first_value|1|w|utf8|1|2097152
pi|1|s|utf8|0|2099200
length|1|s|utf8|1|2099200
likely|1|s|utf8|1|2099200
json_set|1|s|utf8|-1|2048
edit|0|s|utf8|2|0
edit|0|s|utf8|1|0
usleep|0|s|utf8|1|0
shell_idquote|0|s|utf8|1|0
shell_escape_crnl|0|s|utf8|1|0
shell_putsnl|0|s|utf8|1|0
ieee754_from_blob|0|s|utf8|1|2097152
shell_add_schema|0|s|utf8|3|0
ieee754_to_blob|0|s|utf8|1|2097152
ieee754|0|s|utf8|2|2097152
ieee754|0|s|utf8|1|2097152
shell_int32|0|s|utf8|2|0
regexp|0|s|utf8|2|2099200
ieee754_exponent|0|s|utf8|1|2097152
decimal_sub|0|s|utf8|2|2099200
decimal_cmp|0|s|utf8|2|2099200
writefile|0|s|utf8|-1|524288
lsmode|0|s|utf8|1|0
readfile|0|s|utf8|1|524288
match|0|s|utf8|2|0
fts3_tokenizer|0|s|utf8|2|524288
fts3_tokenizer|0|s|utf8|1|524288
ieee754_mantissa|0|s|utf8|1|2097152
decimal_add|0|s|utf8|2|2099200
decimal|0|s|utf8|1|2099200
snippet|0|s|utf8|-1|0
offsets|0|s|utf8|1|0
shell_module_schema|0|s|utf8|1|0
matchinfo|0|s|utf8|2|0
matchinfo|0|s|utf8|1|0
optimize|0|s|utf8|1|0
decimal_sum|0|w|utf8|1|2099200
sha3|0|s|utf8|2|2099200
sha3|0|s|utf8|1|2099200
rtreedepth|0|s|utf8|1|0
regexpi|0|s|utf8|2|2099200
decimal_mul|0|s|utf8|2|2099200
sha3_query|0|s|utf8|2|524288
sha3_query|0|s|utf8|1|524288
rtreenode|0|s|utf8|2|0
rtreecheck|0|s|utf8|-1|0
```
## Expectation
```sql
pow|1|s|utf8|2|2099200
median|1|w|utf8|1|0
group_concat|1|w|utf8|1|2097152
group_concat|1|w|utf8|2|2097152
json_type|1|s|utf8|1|2099200
json_type|1|s|utf8|2|2099200
jsonb_set|1|s|utf8|-1|3147776
julianday|1|s|utf8|-1|2099200
ntile|1|w|utf8|1|2097152
nullif|1|s|utf8|2|2099200
sqlite_compileoption_get|1|s|utf8|1|2097152
json_valid|1|s|utf8|1|2099200
json_valid|1|s|utf8|2|2099200
json_quote|1|s|utf8|1|3147776
json_patch|1|s|utf8|2|2099200
->|1|s|utf8|2|2099200
json_array|1|s|utf8|-1|3147776
current_timestamp|1|s|utf8|0|2097152
power|1|s|utf8|2|2099200
sqlite_compileoption_used|1|s|utf8|1|2097152
json_remove|1|s|utf8|-1|2099200
json_pretty|1|s|utf8|1|2099200
json_pretty|1|s|utf8|2|2099200
jsonb_patch|1|s|utf8|2|2099200
json_object|1|s|utf8|-1|3147776
json_insert|1|s|utf8|-1|3147776
->>|1|s|utf8|2|2099200
jsonb_array|1|s|utf8|-1|3147776
sin|1|s|utf8|1|2099200
sum|1|w|utf8|1|2097152
quote|1|s|utf8|1|2099200
printf|1|s|utf8|-1|2099200
likelihood|1|s|utf8|2|2099200
json_replace|1|s|utf8|-1|3147776
jsonb_remove|1|s|utf8|-1|2099200
jsonb_object|1|s|utf8|-1|3147776
jsonb_insert|1|s|utf8|-1|3147776
json_extract|1|s|utf8|-1|2099200
last_value|1|w|utf8|1|2097152
rank|1|w|utf8|0|2097152
sign|1|s|utf8|1|2099200
sqrt|1|s|utf8|1|2099200
sinh|1|s|utf8|1|2099200
tan|1|s|utf8|1|2099200
round|1|s|utf8|1|2099200
round|1|s|utf8|2|2099200
rtrim|1|s|utf8|1|2099200
rtrim|1|s|utf8|2|2099200
jsonb_replace|1|s|utf8|-1|3147776
jsonb_extract|1|s|utf8|-1|2099200
nth_value|1|w|utf8|2|2097152
tanh|1|s|utf8|1|2099200
random|1|s|utf8|0|2097152
trim|1|s|utf8|1|2099200
trim|1|s|utf8|2|2099200
time|1|s|utf8|-1|2099200
radians|1|s|utf8|1|2099200
trunc|1|s|utf8|1|2099200
total|1|w|utf8|1|2097152
substr|1|s|utf8|2|2099200
substr|1|s|utf8|3|2099200
replace|1|s|utf8|3|2099200
percentile|1|w|utf8|2|0
unhex|1|s|utf8|1|2099200
unhex|1|s|utf8|2|2099200
upper|1|s|utf8|1|2099200
subtype|1|s|utf8|1|3147776
typeof|1|s|utf8|1|2099200
load_extension|1|s|utf8|1|524288
load_extension|1|s|utf8|2|524288
json_group_array|1|w|utf8|1|3147776
avg|1|w|utf8|1|2097152
unistr|1|s|utf8|1|2099200
abs|1|s|utf8|1|2099200
octet_length|1|s|utf8|1|2099200
json_group_object|1|w|utf8|2|3147776
jsonb_group_array|1|w|utf8|1|3147776
json_array_length|1|s|utf8|1|2099200
json_array_length|1|s|utf8|2|2099200
strftime|1|s|utf8|-1|2099200
atan|1|s|utf8|1|2099200
asin|1|s|utf8|1|2099200
acos|1|s|utf8|1|2099200
unknown|1|s|utf8|-1|2099200
substring|1|s|utf8|2|2099200
substring|1|s|utf8|3|2099200
randomblob|1|s|utf8|1|2097152
unicode|1|s|utf8|1|2099200
jsonb_group_object|1|w|utf8|2|3147776
timediff|1|s|utf8|2|2099200
percent_rank|1|w|utf8|0|2097152
row_number|1|w|utf8|0|2097152
atanh|1|s|utf8|1|2099200
asinh|1|s|utf8|1|2099200
acosh|1|s|utf8|1|2099200
cos|1|s|utf8|1|2099200
atan2|1|s|utf8|2|2099200
string_agg|1|w|utf8|2|2097152
last_insert_rowid|1|s|utf8|0|2097152
sqlite_log|1|s|utf8|2|2099200
unlikely|1|s|utf8|1|2099200
json_error_position|1|s|utf8|1|2099200
cosh|1|s|utf8|1|2099200
ceil|1|s|utf8|1|2099200
char|1|s|utf8|-1|2099200
unixepoch|1|s|utf8|-1|2099200
exp|1|s|utf8|1|2099200
percentile_disc|1|w|utf8|2|0
percentile_cont|1|w|utf8|2|0
count|1|w|utf8|0|2097152
count|1|w|utf8|1|2097152
date|1|s|utf8|-1|2099200
concat|1|s|utf8|-3|2099200
sqlite_offset|1|s|utf8|1|2099200
ceiling|1|s|utf8|1|2099200
total_changes|1|s|utf8|0|2097152
changes|1|s|utf8|0|2097152
unistr_quote|1|s|utf8|1|2099200
sqlite_version|1|s|utf8|0|2097152
if|1|s|utf8|-4|2099200
coalesce|1|s|utf8|-4|2099200
degrees|1|s|utf8|1|2099200
floor|1|s|utf8|1|2099200
glob|1|s|utf8|2|2099200
zeroblob|1|s|utf8|1|2099200
hex|1|s|utf8|1|2099200
iif|1|s|utf8|-4|2099200
sqlite_source_id|1|s|utf8|0|2097152
concat_ws|1|s|utf8|-4|2099200
format|1|s|utf8|-1|2099200
datetime|1|s|utf8|-1|2099200
cume_dist|1|w|utf8|0|2097152
ln|1|s|utf8|1|2099200
instr|1|s|utf8|2|2099200
json|1|s|utf8|1|2099200
dense_rank|1|w|utf8|0|2097152
log|1|s|utf8|1|2099200
log|1|s|utf8|2|2099200
ifnull|1|s|utf8|2|2099200
jsonb|1|s|utf8|1|2099200
current_date|1|s|utf8|0|2097152
current_time|1|s|utf8|0|2097152
lag|1|w|utf8|1|2097152
lag|1|w|utf8|3|2097152
lag|1|w|utf8|2|2097152
mod|1|s|utf8|2|2099200
log2|1|s|utf8|1|2099200
like|1|s|utf8|2|2099200
like|1|s|utf8|3|2099200
max|1|s|utf8|-3|2099200
max|1|w|utf8|1|2097152
min|1|s|utf8|-3|2099200
min|1|w|utf8|1|2097152
lead|1|w|utf8|1|2097152
lead|1|w|utf8|3|2097152
lead|1|w|utf8|2|2097152
log10|1|s|utf8|1|2099200
lower|1|s|utf8|1|2099200
ltrim|1|s|utf8|1|2099200
ltrim|1|s|utf8|2|2099200
first_value|1|w|utf8|1|2097152
pi|1|s|utf8|0|2099200
length|1|s|utf8|1|2099200
likely|1|s|utf8|1|2099200
json_set|1|s|utf8|-1|3147776
usleep|0|s|utf8|1|0
shell_putsnl|0|s|utf8|1|0
dtostr|0|s|utf8|2|0
dtostr|0|s|utf8|1|0
sqlar_uncompress|0|s|utf8|2|2097152
sqlar_compress|0|s|utf8|1|2097152
zipfile|0|a|utf8|-1|0
lsmode|0|s|utf8|1|0
writefile|0|s|utf8|-1|524288
readfile|0|s|utf8|1|524288
ieee754_from_blob|0|s|utf8|1|2097152
offsets|0|s|utf8|1|0
decimal_cmp|0|s|utf8|2|2099200
fts3_tokenizer|0|s|utf8|2|524288
fts3_tokenizer|0|s|utf8|1|524288
decimal|0|s|utf8|1|2099200
sha1b|0|s|utf8|1|2099200
zipfile_cds|0|s|utf8|-1|0
decimal_mul|0|s|utf8|2|2099200
matchinfo|0|s|utf8|2|0
matchinfo|0|s|utf8|1|0
ieee754_inc|0|s|utf8|2|2097152
optimize|0|s|utf8|1|0
rtreedepth|0|s|utf8|1|0
ieee754_mantissa|0|s|utf8|1|2097152
rtreenode|0|s|utf8|2|0
shell_add_schema|0|s|utf8|3|0
strtod|0|s|utf8|1|0
rtreecheck|0|s|utf8|-1|0
shell_module_schema|0|s|utf8|1|0
match|0|s|utf8|2|0
sha1|0|s|utf8|1|2099200
sha1_query|0|s|utf8|1|524288
sha3|0|s|utf8|2|2099200
sha3|0|s|utf8|1|2099200
sha3_agg|0|a|utf8|2|2099200
sha3_agg|0|a|utf8|1|2099200
ieee754_exponent|0|s|utf8|1|2097152
ieee754|0|s|utf8|2|2097152
ieee754|0|s|utf8|1|2097152
decimal_sub|0|s|utf8|2|2099200
regexpi|0|s|utf8|2|2099200
sha3_query|0|s|utf8|2|524288
sha3_query|0|s|utf8|1|524288
stmtrand|0|s|utf8|0|0
stmtrand|0|s|utf8|1|0
decimal_exp|0|s|utf8|1|2099200
ieee754_to_blob|0|s|utf8|1|2097152
base85|0|s|utf8|1|2623488
decimal_add|0|s|utf8|2|2099200
edit|0|s|utf8|2|0
edit|0|s|utf8|1|0
decimal_pow2|0|s|utf8|1|2099200
base64|0|s|utf8|1|2623488
snippet|0|s|utf8|-1|0
decimal_sum|0|w|utf8|1|2099200
regexp|0|s|utf8|2|2099200
```
## Flag
```
```
@@ -0,0 +1,414 @@
## 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;
BEGIN DEFERRED;
SAVEPOINT sp873;
BEGIN TRANSACTION;
PRAGMA quick_check(CAST(CAST(time(json_array()) AS REAL) AS INTEGER));
.exit
SAVEPOINT sp9184;
SAVEPOINT sp1810;
CREATE TABLE T1 (
a FLOAT,
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 NOT T2.a=T1.a
) AS c
FROM /* PRAGMA pragma_list; */ T1;
SELECT * FROM T2 AS a LEFT JOIN T1 AS b ON a.rowid = b.rowid;
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;
ROLLBACK TRANSACTION TO SAVEPOINT sp1810;
RELEASE SAVEPOINT sp1810;
INSERT OR IGNORE INTO T2 VALUES (0, 3);
ALTER TABLE T1 ADD COLUMN extra_3426 ANY DEFAULT 0;
INSERT INTO T2 DEFAULT VALUES;
ROLLBACK TO sp9184;
RELEASE sp9184;
DROP INDEX IF EXISTS T1;
ANALYZE;
COMMIT TRANSACTION;
ALTER TABLE T1 RENAME COLUMN b TO b_r7501;
SELECT MIN(a) FROM T2;
SELECT b FROM T1 EXCEPT SELECT b FROM (SELECT * FROM T1) AS sub;
UPDATE T2 SET a = json_object('k', a) WHERE a IS NOT NULL RETURNING *;
PRAGMA locking_mode;
CREATE INDEX IF NOT EXISTS idx_T1_2051 ON T1(b COLLATE NOCASE);
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_8990 ON T1(lower(a));
WITH n AS NOT MATERIALIZED (SELECT * FROM T1) SELECT * FROM n WHERE a > 0;
UPDATE T2 SET a = json_object('k', a) WHERE a IS NOT NULL;
SELECT STRING_AGG(b) FROM T1;
ROLLBACK TO sp873;
RELEASE sp873;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<1) SELECT * FROM cnt;
END TRANSACTION;
ROLLBACK;
BEGIN EXCLUSIVE;
BEGIN DEFERRED;
SAVEPOINT sp873;
BEGIN TRANSACTION;
PRAGMA quick_check(CAST(1.0 AS INTEGER));
.exit
SAVEPOINT sp9184;
SAVEPOINT sp1810;
CREATE TABLE T1 (
a FLOAT,
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 NOT T2.a=T1.a
) AS c
FROM /* PRAGMA pragma_list; */ T1;
SELECT * FROM T2 AS a LEFT JOIN T1 AS b ON a.rowid = b.rowid;
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;
ROLLBACK TRANSACTION TO SAVEPOINT sp1810;
RELEASE SAVEPOINT sp1810;
INSERT OR IGNORE INTO T2 VALUES (0, 3);
ALTER TABLE T1 ADD COLUMN extra_3426 ANY DEFAULT 0;
INSERT INTO T2 DEFAULT VALUES;
ROLLBACK TO sp9184;
RELEASE sp9184;
DROP INDEX IF EXISTS T1;
ANALYZE;
COMMIT TRANSACTION;
ALTER TABLE T1 RENAME COLUMN b TO b_r7501;
SELECT MIN(a) FROM T2;
SELECT b FROM T1 EXCEPT SELECT b FROM (SELECT * FROM T1) AS sub;
UPDATE T2 SET a = json_object('k', a) WHERE a IS NOT NULL RETURNING *;
PRAGMA locking_mode;
CREATE INDEX IF NOT EXISTS idx_T1_2051 ON T1(b COLLATE NOCASE);
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_8990 ON T1(lower(a));
WITH n AS NOT MATERIALIZED (SELECT * FROM T1) SELECT * FROM n WHERE a > 0;
UPDATE T2 SET a = json_object('k', a) WHERE a IS NOT NULL;
SELECT STRING_AGG(b) FROM T1;
ROLLBACK TO sp873;
RELEASE sp873;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<1) SELECT * FROM cnt;
END TRANSACTION;
ROLLBACK;
BEGIN EXCLUSIVE;
BEGIN DEFERRED;
SAVEPOINT sp873;
BEGIN TRANSACTION;
PRAGMA quick_check(CAST(1.0 AS INTEGER));
.exit
SAVEPOINT sp9184;
SAVEPOINT sp1810;
CREATE TABLE T1 (
a FLOAT,
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 NOT T2.a=T1.a
) AS c
FROM /* PRAGMA pragma_list; */ T1;
SELECT * FROM T2 AS a LEFT JOIN T1 AS b ON a.rowid = b.rowid;
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;
ROLLBACK TRANSACTION TO SAVEPOINT sp1810;
RELEASE SAVEPOINT sp1810;
INSERT OR IGNORE INTO T2 VALUES (0, 3);
ALTER TABLE T1 ADD COLUMN extra_3426 ANY DEFAULT 0;
INSERT INTO T2 DEFAULT VALUES;
ROLLBACK TO sp9184;
RELEASE sp9184;
DROP INDEX IF EXISTS T1;
ANALYZE;
COMMIT TRANSACTION;
ALTER TABLE T1 RENAME COLUMN b TO b_r7501;
SELECT MIN(a) FROM T2;
SELECT b FROM T1 EXCEPT SELECT b FROM (SELECT * FROM T1) AS sub;
UPDATE T2 SET a = json_object('k', a) WHERE a IS NOT NULL RETURNING *;
PRAGMA locking_mode;
CREATE INDEX IF NOT EXISTS idx_T1_2051 ON T1(b COLLATE NOCASE);
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_8990 ON T1(lower(a));
WITH n AS NOT MATERIALIZED (SELECT * FROM T1) SELECT * FROM n WHERE a > 0;
UPDATE T2 SET a = json_object('k', a) WHERE a IS NOT NULL;
SELECT STRING_AGG(b) FROM T1;
ROLLBACK TO sp873;
RELEASE sp873;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<1) SELECT * FROM cnt;
END TRANSACTION;
ROLLBACK;
BEGIN EXCLUSIVE;
BEGIN DEFERRED;
SAVEPOINT sp873;
BEGIN TRANSACTION;
PRAGMA quick_check(CAST(1.0 AS INTEGER));
.exit
SAVEPOINT sp9184;
SAVEPOINT sp1810;
CREATE TABLE T1 (
a FLOAT,
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 NOT T2.a=T1.a
) AS c
FROM /* PRAGMA pragma_list; */ T1;
SELECT * FROM T2 AS a LEFT JOIN T1 AS b ON a.rowid = b.rowid;
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;
ROLLBACK TRANSACTION TO SAVEPOINT sp1810;
RELEASE SAVEPOINT sp1810;
INSERT OR IGNORE INTO T2 VALUES (0, 3);
ALTER TABLE T1 ADD COLUMN extra_3426 ANY DEFAULT 0;
INSERT INTO T2 DEFAULT VALUES;
ROLLBACK TO sp9184;
RELEASE sp9184;
DROP INDEX IF EXISTS T1;
ANALYZE;
COMMIT TRANSACTION;
ALTER TABLE T1 RENAME COLUMN b TO b_r7501;
SELECT MIN(a) FROM T2;
SELECT b FROM T1 EXCEPT SELECT b FROM (SELECT * FROM T1) AS sub;
UPDATE T2 SET a = json_object('k', a) WHERE a IS NOT NULL RETURNING *;
PRAGMA locking_mode;
CREATE INDEX IF NOT EXISTS idx_T1_2051 ON T1(b COLLATE NOCASE);
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_8990 ON T1(lower(a));
WITH n AS NOT MATERIALIZED (SELECT * FROM T1) SELECT * FROM n WHERE a > 0;
UPDATE T2 SET a = json_object('k', a) WHERE a IS NOT NULL;
SELECT STRING_AGG(b) FROM T1;
ROLLBACK TO sp873;
RELEASE sp873;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<1) SELECT * FROM cnt;
END TRANSACTION;
ROLLBACK;
BEGIN EXCLUSIVE;
BEGIN DEFERRED;
SAVEPOINT sp873;
BEGIN TRANSACTION;
PRAGMA quick_check(CAST(1.0 AS INTEGER));
.exit
SAVEPOINT sp9184;
SAVEPOINT sp1810;
CREATE TABLE T1 (
a FLOAT,
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 NOT T2.a=T1.a
) AS c
FROM /* PRAGMA pragma_list; */ T1;
SELECT * FROM T2 AS a LEFT JOIN T1 AS b ON a.rowid = b.rowid;
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;
ROLLBACK TRANSACTION TO SAVEPOINT sp1810;
RELEASE SAVEPOINT sp1810;
INSERT OR IGNORE INTO T2 VALUES (0, 3);
ALTER TABLE T1 ADD COLUMN extra_3426 ANY DEFAULT 0;
INSERT INTO T2 DEFAULT VALUES;
ROLLBACK TO sp9184;
RELEASE sp9184;
DROP INDEX IF EXISTS T1;
ANALYZE;
COMMIT TRANSACTION;
ALTER TABLE T1 RENAME COLUMN b TO b_r7501;
SELECT MIN(a) FROM T2;
SELECT b FROM T1 EXCEPT SELECT b FROM (SELECT * FROM T1) AS sub;
UPDATE T2 SET a = json_object('k', a) WHERE a IS NOT NULL RETURNING *;
PRAGMA locking_mode;
CREATE INDEX IF NOT EXISTS idx_T1_2051 ON T1(b COLLATE NOCASE);
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_8990 ON T1(lower(a));
WITH n AS NOT MATERIALIZED (SELECT * FROM T1) SELECT * FROM n WHERE a > 0;
UPDATE T2 SET a = json_object('k', a) WHERE a IS NOT NULL;
SELECT STRING_AGG(b) FROM T1;
ROLLBACK TO sp873;
RELEASE sp873;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<1) SELECT * FROM cnt;
END TRANSACTION;
ROLLBACK;
BEGIN EXCLUSIVE;
BEGIN DEFERRED;
SAVEPOINT sp873;
BEGIN TRANSACTION;
PRAGMA quick_check(CAST(1.0 AS INTEGER));
.exit
SAVEPOINT sp9184;
SAVEPOINT sp1810;
CREATE TABLE T1 (
a FLOAT,
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 NOT T2.a=T1.a
) AS c
FROM /* PRAGMA pragma_list; */ T1;
SELECT * FROM T2 AS a LEFT JOIN T1 AS b ON a.rowid = b.rowid;
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;
ROLLBACK TRANSACTION TO SAVEPOINT sp1810;
RELEASE SAVEPOINT sp1810;
INSERT OR IGNORE INTO T2 VALUES (0, 3);
ALTER TABLE T1 ADD COLUMN extra_3426 ANY DEFAULT 0;
INSERT INTO T2 DEFAULT VALUES;
ROLLBACK TO sp9184;
RELEASE sp9184;
DROP INDEX IF EXISTS T1;
ANALYZE;
COMMIT TRANSACTION;
ALTER TABLE T1 RENAME COLUMN b TO b_r7501;
SELECT MIN(a) FROM T2;
SELECT b FROM T1 EXCEPT SELECT b FROM (SELECT * FROM T1) AS sub;
UPDATE T2 SET a = json_object('k', a) WHERE a IS NOT NULL RETURNING *;
PRAGMA locking_mode;
CREATE INDEX IF NOT EXISTS idx_T1_2051 ON T1(b COLLATE NOCASE);
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_8990 ON T1(lower(a));
WITH n AS NOT MATERIALIZED (SELECT * FROM T1) SELECT * FROM n WHERE a > 0;
UPDATE T2 SET a = json_object('k', a) WHERE a IS NOT NULL;
SELECT STRING_AGG(b) FROM T1;
ROLLBACK TO sp873;
RELEASE sp873;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<1) SELECT * FROM cnt;
END TRANSACTION;
ROLLBACK;
BEGIN EXCLUSIVE;
BEGIN DEFERRED;
SAVEPOINT sp873;
BEGIN TRANSACTION;
PRAGMA quick_check(CAST(1.0 AS INTEGER));
.exit
SAVEPOINT sp9184;
SAVEPOINT sp1810;
CREATE TABLE T1 (
a FLOAT,
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 NOT T2.a=T1.a
) AS c
FROM /* PRAGMA pragma_list; */ T1;
SELECT * FROM T2 AS a LEFT JOIN T1 AS b ON a.rowid = b.rowid;
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;
ROLLBACK TRANSACTION TO SAVEPOINT sp1810;
RELEASE SAVEPOINT sp1810;
INSERT OR IGNORE INTO T2 VALUES (0, 3);
ALTER TABLE T1 ADD COLUMN extra_3426 ANY DEFAULT 0;
INSERT INTO T2 DEFAULT VALUES;
ROLLBACK TO sp9184;
RELEASE sp9184;
DROP INDEX IF EXISTS T1;
ANALYZE;
COMMIT TRANSACTION;
ALTER TABLE T1 RENAME COLUMN b TO b_r7501;
SELECT MIN(a) FROM T2;
SELECT b FROM T1 EXCEPT SELECT b FROM (SELECT * FROM T1) AS sub;
UPDATE T2 SET a = json_object('k', a) WHERE a IS NOT NULL RETURNING *;
PRAGMA locking_mode;
CREATE INDEX IF NOT EXISTS idx_T1_2051 ON T1(b COLLATE NOCASE);
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_8990 ON T1(lower(a));
WITH n AS NOT MATERIALIZED (SELECT * FROM T1) SELECT * FROM n WHERE a > 0;
UPDATE T2 SET a = json_object('k', a) WHERE a IS NOT NULL;
SELECT STRING_AGG(b) FROM T1;
ROLLBACK TO sp873;
RELEASE sp873;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<1) SELECT * FROM cnt;
END TRANSACTION;
ROLLBACK;
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
DELETE FROM t1 WHERE d IS NULL;
INSERT INTO T2 VALUES (NULL, NULL);
SELECT COUNT(*) FROM T2;
SELECT LEAD(b, 1, NULL) OVER (ORDER BY b) FROM T2;
REINDEX T2;
ALTER TABLE T1 RENAME COLUMN a TO a_r6095;
```
## 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,87 @@
## 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;
PRAGMA automatic_index = ON;
PRAGMA wal_checkpoint;
.tables
CREATE TABLE t1(c1);
INSERT INTO t1 VALUES(if(1, 12, 0, 12, 0, 12, 12)),(123),(1234),(NULL),('abc');
CREATE TABLE t2(c2);
INSERT INTO t2 VALUES(44),(55),(123);
CREATE TABLE t3(c3,c4);
INSERT INTO t3 VALUES(66,1),(123,2),(77,3);
CREATE VIEW t4 AS SELECT c3 FROM t3;
CREATE VIEW t5 AS SELECT c3 FROM t3 ORDER BY c4;
SELECT * FROM t1, t2 WHERE c1=(SELECT 123 INTERSECT SELECT c2 FROM t4) AND c1=123;
SELECT * FROM t1, t2 WHERE c1=(SELECT 123 INTERSECT SELECT c2 FROM t5) AND c1=123;
SELECT COUNT(*) FROM t1;
ANALYZE;
INSERT OR IGNORE INTO t1 VALUES ('');
SELECT * FROM t1 WHERE c1 = (SELECT SUM(c1) FROM t1);
INSERT INTO t2 DEFAULT VALUES;
```
## 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,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
BEGIN EXCLUSIVE TRANSACTION;
PRAGMA writable_schema = RESET;
CREATE TABLE main.t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
iNSErt INTO t1 VALUES (-2147483647, '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 * FROM t1 AS a JOIN t1 AS b ON a.rowid = b.rowid;
UPDATE t1 SET b = 'x' WHERE 1 RETURNING *;
INSERT INTO t1 DEFAULT VALUES;
REINDEX;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
INSERT INTO t1 DEFAULT VALUES;
COMMIT TRANSACTION;
CREATE INDEX IF NOT EXISTS idx_t1_9558 ON t1(lower(d)) WHERE d IS NOT NULL;
INSERT INTO t1 VALUES (NULL, 1, 1, NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
SELECT MIN(c) OVER (PARTITION BY c ORDER BY c ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM t1;
SELECT * FROM t1 WHERE EXISTS (SELECT 1 FROM t1 WHERE a < 0);
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;
```
## 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_":-2147483647},
{"b":"von","c":20,"_ROWID_":2}]
[{"b":"Braun","c":30},
{"b":"Wernher","c":10},
{"b":"von","c":20}]
```
## Expectation
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
[{"b":"Braun","c":30,"_ROWID_":3},
{"b":"Wernher","c":10,"_ROWID_":-2147483647},
{"b":"von","c":20,"_ROWID_":2}]
[{"b":"Braun","c":30},
{"b":"Wernher","c":10},
{"b":"von","c":20}]
```
## Flag
```
-json
```
@@ -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
PRAGMA quick_check(20);
SAVEPOINT sp2208;
.eqp auto
CREATE TABLE T (
a BIGINT,
b REAL
);
INSERT INTO T VALUES ('a',abs(json_valid(acos(if(NULL, json_type(exp(json_valid(1.7976931348623157e+308, 6)), '$'), 0, 1.7976931348623157e+308, 0, 1.7976931348623157e+308, 1.7976931348623157e+308)), 6))), ('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;
PRAGMA short_column_names = NO;
PRAGMA cell_size_check;
.parameter
ATTACH DATABASE ':memory:' AS aux30;
.log ON
SAVEPOINT sp6089;
ATTACH DATABASE '' || (':memory:') AS aux56;
CREATE TABLE main.t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (strftime('%s', format('%d', 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 ignore_check_constraints = 0;
DETACH DATABASE aux56;
INSERT INTO t1 SELECT * FROM t1;
PRAGMA recursive_triggers = OFF;
CREATE TRIGGER IF NOT EXISTS trg_t1_1212 AFTER UPDATE OF c ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
RELEASE sp6089;
CREATE TRIGGER IF NOT EXISTS trg_t1_4991 BEFORE UPDATE OF a ON t1 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
INSERT INTO t1 VALUES (1, 'x', 'x', 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
ALTER TABLE t1 ADD COLUMN extra_6256 CLOB DEFAULT '';
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<1) SELECT * FROM cnt;
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 t1 NATURAL JOIN t1;
ALTER TABLE t1 RENAME COLUMN d TO d_r9145;
INSERT OR FAIL INTO t1 VALUES ('x', 'x', '', -7);
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
UPDATE t1 SET d = d + 1 RETURNING *;
WITH RECURSIVE fib(a,b) AS (VALUES(1,1) UNION ALL SELECT b, a+b FROM fib WHERE b<1000) SELECT a FROM fib;
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;
INSERT INTO T1 VALUES ('x', 'x') ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
ALTER TABLE T1 DROP COLUMN A;
CREATE TEMP VIEW IF NOT EXISTS v_t1_7233 AS SELECT c FROM t1;
DETACH DATABASE aux30;
UPDATE T1 SET A = A + 1 WHERE rowid = 1;
INSERT INTO T1 SELECT * FROM T1;
CREATE TRIGGER IF NOT EXISTS trg_t1_9997 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DELETE FROM T1 WHERE 0;
INSERT INTO t1 DEFAULT VALUES;
ALTER TABLE T2 RENAME TO T2_r5714;
DELETE FROM T2 WHERE 1;
SELECT * FROM T2 WHERE Y > ALL (SELECT Y FROM T2);
SELECT * FROM T2;
ALTER TABLE T1 ADD COLUMN extra_1823 FLOAT UNIQUE;
WITH RECURSIVE fib(a,b,n) AS (VALUES(1,1,1) UNION ALL SELECT b, a+b, n+1 FROM fib WHERE n<95) SELECT a, n FROM fib;
SELECT COUNT(*) FROM T1;
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 T DROP COLUMN b;
INSERT INTO T1 DEFAULT VALUES;
SELECT COUNT(A) FILTER (WHERE A IS NOT NULL) OVER (PARTITION BY A ORDER BY A ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT /* PRAGMA application_id; */ ROW) FROM T2;
INSERT INTO t1 VALUES ('x', 'x', 1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
ALTER TABLE t1 DROP COLUMN b;
INSERT OR FAIL INTO T2 VALUES ('x', -9);
REINDEX;
REINDEX;
SELECT LAG(b, 0) OVER (ORDER BY b RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T;
SELECT SUM(Y) FROM T2;
UPDATE T SET A = NULL WHERE 1;
DELETE FROM /* PRAGMA defer_foreign_keys; */ t1 WHERE c > (SELECT AVG(c) FROM t1);
SELECT COUNT(*) FILTER (WHERE c IS NOT NULL), SUM(rowid) FILTER (WHERE c > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c) FILTER (WHERE c > 0 AND c < 100), COUNT(*) FILTER (WHERE typeof(c) = "text") FROM t1;
.eqp auto
CREATE TABLE T (
a TEXT,
b REAL
);
INSERT INTO T VALUES ('a',abs(json_valid(9223372036854775806, 6))), ('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;
PRAGMA short_column_names = NO;
PRAGMA cell_size_check;
.parameter
ATTACH DATABASE ':memory:' AS aux30;
.log ON
SAVEPOINT sp6089;
ATTACH DATABASE '' || (':memory:') AS aux56;
CREATE TABLE main.t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (strftime('%s', format('%d', 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 ignore_check_constraints = 0;
DETACH DATABASE aux56;
INSERT INTO t1 SELECT * FROM t1;
PRAGMA recursive_triggers = OFF;
CREATE TRIGGER IF NOT EXISTS trg_t1_1212 AFTER UPDATE OF c ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
RELEASE sp6089;
CREATE TRIGGER IF NOT EXISTS trg_t1_4991 BEFORE UPDATE OF a ON t1 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
INSERT INTO t1 VALUES (1, 'x', 'x', 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
ALTER TABLE t1 ADD COLUMN extra_6256 CLOB DEFAULT '';
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<1) SELECT * FROM cnt;
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;
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 t1 NATURAL JOIN t1;
ALTER TABLE t1 RENAME COLUMN d TO d_r9145;
INSERT AND FAIL INTO t1 VALUES ('x', 'x', '', -7);
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
UPDATE t1 SET d = d + 1 RETURNING *;
WITH RECURSIVE fib(a,b) AS (VALUES(1,1) UNION ALL SELECT b, a+b FROM fib WHERE b<1000) SELECT a FROM fib;
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;
INSERT INTO T1 VALUES ('x', 'x') ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
ALTER TABLE T1 DROP COLUMN A;
CREATE TEMP VIEW IF NOT EXISTS v_t1_7233 AS SELECT c FROM t1;
DETACH DATABASE aux30;
UPDATE T1 SET A = A + 1 WHERE rowid = 1;
INSERT INTO T1 SELECT * FROM T1;
CREATE TRIGGER IF NOT EXISTS trg_t1_9997 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DELETE FROM T1 WHERE 0;
INSERT INTO t1 DEFAULT VALUES;
ALTER TABLE T2 RENAME TO T2_r5714;
DELETE FROM T2 WHERE 1;
SELECT * FROM T2 WHERE Y > ALL (SELECT Y FROM T2);
SELECT * FROM T2;
ALTER TABLE T1 ADD COLUMN extra_1823 FLOAT UNIQUE;
WITH RECURSIVE fib(a,b,n) AS (VALUES(1,1,1) UNION ALL SELECT b, a+b, n+1 FROM fib WHERE n<95) SELECT a, n FROM fib;
SELECT COUNT(*) FROM T1;
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 T DROP COLUMN b;
INSERT INTO T1 DEFAULT VALUES;
SELECT COUNT(A) FILTER (WHERE A IS NOT NULL) OVER (PARTITION BY A ORDER BY A ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T2;
INSERT INTO t1 VALUES ('x', 'x', 1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
ALTER TABLE t1 DROP COLUMN b;
INSERT OR FAIL INTO T2 VALUES ('x', -9);
REINDEX;
REINDEX;
SELECT LAG(b, 0) OVER (ORDER BY b RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T;
SELECT SUM(Y) FROM T2;
UPDATE T SET A = NULL WHERE 1;
DELETE FROM t1 WHERE c > (SELECT AVG(c) FROM t1);
SELECT COUNT(*) FILTER (WHERE c IS NOT NULL), SUM(rowid) FILTER (WHERE c > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c) FILTER (WHERE c > 0 AND c < 100), COUNT(*) FILTER (WHERE typeof(c) = "text") FROM t1;
.eqp auto
CREATE TABLE T (
a TEXT,
b REAL
);
INSERT INTO T VALUES ('a',abs(json_valid(9223372036854775806, 6))), ('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;
PRAGMA short_column_names = NO;
PRAGMA cell_size_check;
.parameter
ATTACH DATABASE ':memory:' AS aux30;
.log ON
SAVEPOINT sp6089;
ATTACH DATABASE '' || (':memory:') AS aux56;
CREATE TABLE main.t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (strftime('%s', format('%d', 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 ignore_check_constraints = 0;
DETACH DATABASE aux56;
INSERT INTO t1 SELECT * FROM t1;
PRAGMA recursive_triggers = OFF;
CREATE TRIGGER IF NOT EXISTS trg_t1_1212 AFTER UPDATE OF c ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
RELEASE sp6089;
CREATE TRIGGER IF NOT EXISTS trg_t1_4991 BEFORE UPDATE OF a ON t1 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
INSERT INTO t1 VALUES (1, 'x', 'x', 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
ALTER TABLE t1 ADD COLUMN extra_6256 CLOB DEFAULT '';
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<1) SELECT * FROM cnt;
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 t1 NATURAL JOIN t1;
ALTER TABLE t1 RENAME COLUMN d TO d_r9145;
INSERT AND FAIL INTO t1 VALUES ('x', 'x', '', -7);
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
UPDATE t1 SET d = d + 1 RETURNING *;
WITH RECURSIVE fib(a,b) AS (VALUES(1,1) UNION ALL SELECT b, a+b FROM fib WHERE b<1000) SELECT a FROM fib;
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;
INSERT INTO T1 VALUES ('x', 'x') ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
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;
ALTER TABLE T1 DROP COLUMN A;
CREATE TEMP VIEW IF NOT EXISTS v_t1_7233 AS SELECT c FROM t1;
DETACH DATABASE aux30;
UPDATE T1 SET A = A + 1 WHERE rowid = 1;
INSERT INTO T1 SELECT * FROM T1;
CREATE TRIGGER IF NOT EXISTS trg_t1_9997 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DELETE FROM T1 WHERE 0;
INSERT INTO t1 DEFAULT VALUES;
ALTER TABLE T2 RENAME TO T2_r5714;
DELETE FROM T2 WHERE 1;
SELECT * FROM T2 WHERE Y > ALL (SELECT Y FROM T2);
SELECT * FROM T2;
ALTER TABLE T1 ADD COLUMN extra_1823 FLOAT UNIQUE;
WITH RECURSIVE fib(a,b,n) AS (VALUES(1,1,1) UNION ALL SELECT b, a+b, n+1 FROM fib WHERE n<95) SELECT a, n FROM fib;
SELECT COUNT(*) FROM T1;
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 T DROP COLUMN b;
INSERT INTO T1 DEFAULT VALUES;
SELECT COUNT(A) FILTER (WHERE A IS NOT NULL) OVER (PARTITION BY A ORDER BY A ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T2;
INSERT INTO t1 VALUES ('x', 'x', 1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
ALTER TABLE t1 DROP COLUMN b;
INSERT OR FAIL INTO T2 VALUES ('x', -9);
REINDEX;
REINDEX;
SELECT LAG(b, 0) OVER (ORDER BY b RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T;
SELECT SUM(Y) FROM T2;
UPDATE T SET A = NULL WHERE 1;
DELETE FROM t1 WHERE c > (SELECT AVG(c) FROM t1);
SELECT COUNT(*) FILTER (WHERE c IS NOT NULL), SUM(rowid) FILTER (WHERE c > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c) FILTER (WHERE c > 0 AND c < 100), COUNT(*) FILTER (WHERE typeof(c) = "text") FROM t1;
ROLLBACK TO sp2208;
RELEASE sp2208;
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;
INSERT INTO T1 DEFAULT VALUES;
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 b, COUNT(*) FROM T2 GROUP BY b HAVING COUNT(*) = (SELECT COUNT(*) FROM T2);
ALTER TABLE T1 ADD COLUMN extra_4051 DECIMAL(10,5) DEFAULT NULL;
VACUUM;
SELECT COUNT(*) FROM T2;
CREATE TRIGGER IF NOT EXISTS trg_t1_3933 AFTER DELETE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
INSERT INTO T VALUES (NULL, NULL);
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;
VACUUM main;
INSERT OR ABORT INTO T VALUES (-1, 0);
ALTER TABLE t1 RENAME TO t1_r5175;
CREATE TRIGGER IF NOT EXISTS trg_t1_8911 AFTER UPDATE ON t1 BEGIN SELECT RAISE(FAIL, 'no'); END;
INSERT INTO T1 SELECT * FROM T1;
ALTER TABLE T1 ADD COLUMN extra_2551 CHAR(10) COLLATE NOCASE;
SELECT COUNT(*) FROM T1;
CREATE TRIGGER IF NOT EXISTS trg_T2_1955 BEFORE UPDATE OF a ON T2 FOR EACH ROW BEGIN INSERT INTO T2(a) VALUES (NULL); END;
INSERT OR REPLACE INTO T1 VALUES ('x', 0);
SELECT TOTAL(b) FROM T2;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_3072 ON T1((b + 1)) WHERE b IS NOT NULL;
VACUUM main;
SELECT LAST_VALUE(b) OVER (ORDER BY b RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM T2;
CREATE VIEW IF NOT EXISTS v_T1_4599 AS SELECT b FROM T1;
CREATE TRIGGER IF NOT EXISTS trg_T1_5914 AFTER DELETE ON T1 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
INSERT OR REPLACE INTO T2 VALUES ('', '');
INSERT INTO t1 SELECT * FROM t1;
INSERT INTO T2 VALUES (NULL, NULL);
WITH cte AS (SELECT 1 AS x) INSERT INTO T1(a) SELECT x FROM cte WHERE 1=0;
```
## Actual output
```sql
ok
0
.parameter CMD ... Manage SQL parameter bindings
clear Erase all bindings
init Initialize the TEMP table that holds bindings
list List the current parameter bindings
set PARAMETER VALUE Given SQL parameter PARAMETER a value of VALUE
PARAMETER should start with one of: $ : @ ?
unset PARAMETER Remove PARAMETER from the binding table
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|-210866673600
von|20|2
Braun|30
Wernher|10
von|20
```
## 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
ATTACH DATABASE '' || (':memory:') AS aux77;
.dbconfig
.changes on
BEGIN IMMEDIATE;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
-- PRAGMA empty_result_callbacks = ON;
DROP TABLE t0;
.explain auto
.quit
ATTACH DATABASE ('' || ('') || ('') || '') || (':memory:') AS aux13;
((CREATE)) TABLE T (
a TEXT,
b REAL
);
INSERT INTO T VALUES (-(-(length(x'f6e36bb00a'))),(timediff(NULL, (unixepoch(NULL) * CAST(1 AS VARCHAR(255))))timediff(NULL, NULL) ->> '$[0]' * 1)), (2,-2.5), (3,0.0);
CREATE INDEX c
ON T(b);
SELECT * FROM T WHErE NOT NOT (NOT NOT NOT (+b >= -2.5 aND b < 2.0)) ;
DELETE FROM T WHERE b > (SELECT AVG(b) FROM T);
SELECT * FROM T WHERE b IN (SELECT b FROM T WHERE 1/0 = 0);SELECT * FROM T WHERE b IN (SELECT b FROM T LIMIT -1);
DETACH DATABASE aux13;
PRAGMA short_column_names = TRUE;
VACUUM;
.explain auto
.quit
ATTACH DATABASE '' || (':memory:') AS aux13;
((CREATE)) TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (-(-(length(x'f6e36bb00a'))),(timediff(NULL, (unixepoch(9223372036854775807) * 1))timediff(NULL, NULL) ->> '$[0]' * 1)), (2,-2.5), (3,0.0);
CREATE INDEX c
ON T(b);
SELECT * FROM T WHERE NOT NOT (NOT NOT NOT (+b >= -2.5 AND b < 2.0)) ;
DELETE FROM T WHERE b > (SELECT AVG(b) FROM T);
SELECT * FROM T WHERE b IN (SELECT b FROM T WHERE 1/0 = 0);SELECT * FROM T WHERE b IN (SELECT b FROM T LIMIT -1);
DETACH DATABASE aux13;
PRAGMA short_column_names = TRUE;
VACUUM;
.explain auto
.quit
ATTACH DATABASE '' || (':memory:') AS aux13;
((CREATE)) TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (-(-(length(x'f6e36bb00a'))),(timediff(NULL, (unixepoch(9223372036854775807) * 1))timediff(NULL, NULL) ->> '$[0]' * 1)), (2,-2.5), (3,0.0);
CREATE INDEX c
ON T(b);
SELECT * FROM T WHERE NOT NOT (NOT NOT NOT (+b >= -2.5 AND b < 2.0)) ;
DELETE FROM T WHERE b > (SELECT AVG(b) FROM T);
SELECT * FROM T WHERE b IN (SELECT b FROM T WHERE 1/0 = 0);SELECT * FROM T WHERE b IN (SELECT b FROM T LIMIT -1);
DETACH DATABASE aux13;
PRAGMA short_column_names = TRUE;
VACUUM;
.explain auto
.quit
ATTACH DATABASE '' || (':memory:') AS aux13;
((CREATE)) TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (-(-(length(x'f6e36bb00a'))),(timediff(NULL, (unixepoch(9223372036854775807) * 1))timediff(NULL, NULL) ->> '$[0]' * 1)), (2,-2.5), (3,0.0);
CREATE INDEX c
ON T(b);
SELECT * FROM T WHERE NOT NOT (NOT NOT NOT (+b >= -2.5 AND b < 2.0)) ;
DELETE FROM T WHERE b > (SELECT AVG(b) FROM T);
SELECT * FROM T WHERE b IN (SELECT b FROM T WHERE 1/0 = 0);SELECT * FROM T WHERE b IN (SELECT b FROM T LIMIT -1);
DETACH DATABASE aux13;
PRAGMA short_column_names = TRUE;
VACUUM;
.explain auto
.quit
ATTACH DATABASE '' || (':memory:') AS aux13;
((CREATE)) TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (-(-(length(x'f6e36bb00a'))),(timediff(NULL, (unixepoch(9223372036854775807) * 1))timediff(NULL, NULL) ->> '$[0]' * 1)), (2,-2.5), (3,0.0);
CREATE INDEX c
ON T(b);
SELECT * FROM T WHERE NOT NOT (NOT NOT NOT (+b >= -2.5 AND b < 2.0)) ;
DELETE FROM T WHERE b > (SELECT AVG(b) FROM T);
SELECT * FROM T WHERE b IN (SELECT b FROM T WHERE 1/0 = 0);SELECT * FROM T WHERE b IN (SELECT b FROM T LIMIT -1);
DETACH DATABASE aux13;
PRAGMA short_column_names = TRUE;
VACUUM;
.explain auto
.quit
ATTACH DATABASE '' || /**/ (':memory:') AS aux13;
((CREATE)) TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (-(-(length(x'f6e36bb00a'))),(timediff(NULL, (unixepoch(9223372036854775807) * 1))timediff(NULL, NULL) ->> '$[0]' * 1)), (2,-2.5), (3,0.0);
CREATE INDEX c
ON T(b);
SELECT * FROM T WHERE NOT NOT (NOT NOT NOT (+b >= -2.5 AND b < 2.0)) ;
DELETE FROM T WHERE b > (SELECT AVG(b) FROM T);
SELECT * FROM T WHERE b IN (SELECT b FROM T WHERE 1/0 = 0);SELECT * FROM T WHERE b IN (SELECT b FROM T LIMIT -1);
DETACH DATABASE aux13;
PRAGMA short_column_names = TRUE;
VACUUM;
.explain auto
.quit
ATTACH DATABASE '' || (':memory:') AS aux13;
((CREATE)) TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (-(-(length(x'f6e36bb00a'))),(timediff(NULL, (unixepoch(9223372036854775807) * 1))timediff(NULL, NULL) ->> '$[0]' * 1)), (2,-2.5), (3,0.0);
CREATE INDEX c
ON T(b);
SELECT * FROM T WHERE NOT NOT (NOT NOT NOT (+b >= -2.5 AND b < 2.0)) ;
DELETE FROM T WHERE b > (SELECT AVG(b) FROM T);
SELECT * FROM T WHERE b IN (SELECT b FROM T WHERE 1/0 = 0);SELECT * FROM T WHERE b IN (SELECT b FROM T LIMIT -1);
DETACH DATABASE aux13;
PRAGMA short_column_names = TRUE;
VACUUM;
.explain auto
.quit
ATTACH DATABASE '' || (':memory:') AS aux13;
((CREATE)) TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (-(-(length(x'f6e36bb00a'))),(timediff(NULL, (unixepoch(9223372036854775807) * 1))timediff(NULL, NULL) ->> '$[0]' * 1)), (2,-2.5), (3,0.0);
CREATE INDEX c
ON T(b);
SELECT * FROM T WHERE NOT NOT (NOT NOT NOT (+b >= -2.5 AND b < 2.0)) ;
DELETE FROM T WHERE b > (SELECT AVG(b) FROM T);
SELECT * FROM T WHERE b IN (SELECT b FROM T WHERE 1/0 = 0);SELECT * FROM T WHERE b IN (SELECT b FROM T LIMIT -1);
DETACH DATABASE aux13;
PRAGMA short_column_names = TRUE;
VACUUM;
.explain auto
.quit
ATTACH DATABASE '' || (':memory:') AS aux13;
((CREATE)) TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (-(-(length(x'f6e36bb00a'))),(timediff(NULL, (unixepoch(9223372036854775807) * 1))timediff(NULL, NULL) ->> '$[0]' * 1)), (2,-2.5), (3,0.0);
CREATE INDEX c
ON T(b);
SELECT * FROM T WHERE NOT NOT (NOT NOT NOT (+b >= -2.5 AND b < 2.0)) ;
DELETE FROM T WHERE b > (SELECT AVG(b) FROM T);
SELECT * FROM T WHERE b IN (SELECT b FROM T WHERE 1/0 = 0);SELECT * FROM T WHERE b IN (SELECT b FROM T LIMIT -1);
DETACH DATABASE aux13;
PRAGMA short_column_names = TRUE;
VACUUM;
.explain auto
.quit
ATTACH DATABASE '' || (':memory:') AS aux13;
((CREATE)) TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (-(-(length(x'f6e36bb00a'))),(timediff(NULL, (unixepoch(9223372036854775807) * 1))timediff(NULL, NULL) ->> '$[0]' * 1)), (2,-2.5), (3,0.0);
CREATE INDEX c
ON T(b);
SELECT * FROM T WHERE NOT NOT (NOT NOT NOT (+b >= -2.5 AND b < 2.0)) ;
DELETE FROM T WHERE b > (SELECT AVG(b) FROM T);
SELECT * FROM T WHERE b IN (SELECT b FROM T WHERE 1/0 = 0);SELECT * FROM T WHERE b IN (SELECT b FROM T LIMIT -1);
DETACH DATABASE aux13;
PRAGMA short_column_names = TRUE;
VACUUM;
COMMIT;
VACUUM;
VACUUM;
DETACH DATABASE aux77;
PRAGMA empty_result_callbacks = 1;
PRAGMA wal_checkpoint('NOOP');
```
## Actual output
```sql
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
changes: 0 total_changes: 0
changes: 0 total_changes: 0
changes: 0 total_changes: 0
```
## Expectation
```sql
attach_create on
attach_write on
comments on
defensive on
dqs_ddl off
dqs_dml off
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
reverse_scanorder off
stmt_scanstatus off
trigger_eqp off
trusted_schema off
writable_schema off
changes: 0 total_changes: 0
changes: 0 total_changes: 0
changes: 0 total_changes: 0
```
## 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
CREATE TABLE T (
a INTEGER,
b TEXT,
c REAL
);
INSERT INTO T VALUES (-10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,'a',1.25), (2,'b',-3.5), (3,'c',9e999);
WITH d AS (SELECT * FROM T) SELECT * FROM d WHERE c > 0;
PRAGMA analysis_limit;
-- PERCENT_RANK()
PRAGMA full_column_names = YES;
PRAGMA query_only = 7698233414002707256;
.mode
CREATE TABLE T1 (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15) UNIQUE,
C BIGINT
);
CREATE TABLE T2 (
X VARCHAR(20) PRIMARY KEY,
A VARCHAR(10),
FOREIGN KEY (A) REFERENCES T1(A)
);
INSERT INTO T1 VALUES ('a', 'p', 9999999999999);
INSERT INTO T1 VALUES ('b', 'q', -9999999999999);
INSERT INTO T2 VALUES ('m', 'a');
INSERT INTO T2 VALUES ('n', 'b');
SELECT T2.X, T1.C FROM T2 INNER JOIN T1 ON T2.A = T1.A WHERE T1.C > -1000000000000;
DELETE FROM T2 WHERE A > (SELECT AVG(A) FROM T2) RETURNING *;
REINDEX T2;
CREATE INDEX IF NOT EXISTS idx_T2_3616 ON T2(lower(X)) WHERE X > 0;
INSERT INTO T1 VALUES (NULL, NULL, NULL);
CREATE UNIQUE INDEX IF NOT EXISTS idx_T2_745 ON T2((X + 1)) WHERE X > 0;
SELECT * FROM T1 NATURAL JOIN T1;
SELECT * FROM T1;
ANALYZE T1;
CREATE TEMPORARY VIEW IF NOT EXISTS v_T1_7264 AS SELECT C FROM T1;
CREATE VIEW IF NOT EXISTS v_T2_7482 AS SELECT X FROM T2;
INSERT INTO T2 VALUES (NULL, NULL);
CREATE TEMP VIEW IF NOT /**/ EXISTS v_T1_8172 AS SELECT A FROM T1;
```
## Actual output
```sql
-Inf|a|1.25
3|c|Inf
0
current output mode: list
m|9999999999999
m|a
n|b
a|p|9999999999999
b|q|-9999999999999
a|p|9999999999999
b|q|-9999999999999
||
```
## Expectation
```sql
-Inf|a|1.25
3|c|Inf
0
current output mode: list --escape ascii
m|9999999999999
m|a
n|b
a|p|9999999999999
b|q|-9999999999999
a|p|9999999999999
b|q|-9999999999999
||
```
## Flag
```
```
@@ -0,0 +1,167 @@
## 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;
creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z");
DROP TABLE t0;
ATTACH DATABASE ':memory:' AS aux73;
.print
ATTACH DATABASE ':memory:' AS aux97;
.timer on
CREATE TEMPORARY TABLE t0(x, y, z);
SELECT -NULL;
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
DROP TABLE t0;
BEGIN IMMEDIATE;
.exit -log10(radians(json_group_object('k', -(-(json_array(timediff(NULL, length(-timediff(NULL, '-Inf')timediff(NULL, NULL)))timediff(NULL, NULL), NULL, NULL))))))
PRAGMA read_uncommitted;
PRAGMA ignore_check_constraints <> YES;
PRAGMA legacy_alter_table;
.parameter
CREATE TABLE t1(a, b, c, d);
CREATE UNIQUE INDEX i1 ON t1(b, c);
CREATE UNIQUE INDEX i2 ON t1(d COLLATE nocase);
CREATE TABLE t2(x DECIMAL('-',(nan + (unicode('你好') + max(x'af5df3e5294acaf5a4f1de6448da', '2', randomblob(-5))))) PRIMARY KEY, y);
CREATE TABLE main.t3(c1 PRIMARY KEY NOT NULL, c2 NOT NULL);
CREATE INDEX i3 ON t3(c2);
CREATE TABLE t4(a, b NOT NULL, c NOT NULL, d NOT NULL);
CREATE UNIQUE /* PRAGMA fullsync = 0; */ INDEX t4i1 ON t4(b, c);
CREATE UNIQUE INDEX t4i2 ON t4(d COLLATE nocase);
SELECT DISTINCT c FROM t1 WHERE NOT b = ?;
SELECT DISTINCT c FROM t1 WHERE b IN (1,2);
SELECT DISTINCT a, b, c COLLATE nocase FROM t1
PRAGMA integrity_check("users");
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_5148 ON t1(lower(c)) WHERE c > 0;
SELECT * FROM t1;
COMMIT;
SELECT COUNT(b) FROM t1;
INSERT INTO t2 DEFAULT VALUES;
WITH cte AS (SELECT * FROM t4) SELECT * FROM cte WHERE c > 0 UNION ALL SELECT * FROM cte WHERE c <= 0;
CREATE TEMP VIEW IF NOT EXISTS v_t1_244 AS SELECT c FROM t1;
INSERT INTO t1 SELECT * FROM t1;
ALTER TABLE t2 RENAME TO t2_r6544;
INSERT INTO t4 SELECT * FROM t4;
CREATE TRIGGER IF NOT EXISTS trg_t4_4171 BEFORE DELETE ON t4 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
VACUUM;
CREATE TABLE T (
a TINYINT PRECISION,
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;
DETACH DATABASE aux97;
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 * FROM T;
ALTER TABLE t2 ADD COLUMN extra_3261 FLOAT;
UPDATE t0 SET z = z + 1 WHERE 1;
WITH cte AS (SELECT CASE WHEN c IS NULL THEN 0 ELSE c END AS val FROM t1) SELECT * FROM cte;
PRAGMA page_size = 4096;
CREATE INDEX IF NOT EXISTS idx_t0_8372 ON t0(lower(y)) WHERE y IS NOT NULL;
PRAGMA recursive_triggers = 1;
ALTER TABLE t2 RENAME COLUMN x TO x_r3369;
INSERT OR ABORT INTO t0 VALUES ('x', NULL, '');
INSERT INTO t0 VALUES (NULL, NULL, NULL);
DROP TABLE IF EXISTS t3;
SELECT COUNT(*) FILTER (WHERE y IS NOT NULL), SUM(rowid) FILTER (WHERE y > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(y) FILTER (WHERE y > 0 AND y < 100), COUNT(*) FILTER (WHERE typeof(y) = "text") FROM t2;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
CREATE TRIGGER IF NOT EXISTS trg_t4_6716 AFTER DELETE ON t4 FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END;
CREATE TRIGGER IF NOT EXISTS trg_t2_5474 BEFORE INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
PRAGMA checkpoint_fullsync;
INSERT INTO t1 SELECT * FROM t1;
INSERT OR ABORT INTO t4 VALUES ('', 0, 0, -3);
ALTER TABLE t3 RENAME COLUMN c1 TO c1_r9839;
WITH cte AS (SELECT c1 FROM t3 UNION ALL SELECT c1 FROM t3) SELECT * FROM cte;
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 t0;
PRAGMA max_page_count = 5000000;
CREATE TRIGGER IF NOT EXISTS trg_t4_645 AFTER UPDATE ON t4 BEGIN SELECT RAISE(ABORT, 'abort'); END;
VACUUM;
CREATE TRIGGER IF NOT EXISTS trg_t4_7725 BEFORE UPDATE ON t4 BEGIN SELECT RAISE(FAIL, 'no'); END;
DETACH DATABASE aux73;
CREATE INDEX IF NOT EXISTS idx_t2_3331 ON t2(y COLLATE NOCASE) WHERE y IS NOT NULL;
CREATE VIEW IF NOT EXISTS v_T_6672 AS SELECT b FROM T;
REINDEX;
ANALYZE T;
ALTER TABLE t0 ADD COLUMN extra_6804 NATIVE CHARACTER(70)NVARCHAR(100) DEFAULT (abs(random()) % 1000);
ALTER TABLE t0 DROP COLUMN y;
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;
SELECT GROUP_CONCAT(d) FROM t4;
ANALYZE t2;
ALTER TABLE t1 ADD COLUMN extra_1405 INT8 DEFAULT '';
SELECT * FROM t2 AS a LEFT OUTER JOIN t0 AS b ON a.rowid = b.rowid;
WITH RECURSIVE multi(a, b, c) AS (VALUES(1, 2, 3) UNION ALL SELECT a+1, b+1, c+1 FROM multi WHERE a<45) SELECT * FROM multi;
DELETE FROM t3 WHERE 1 RETURNING *;
DELETE FROM t3 WHERE c1 > (SELECT AVG(c1) FROM t3);
ANALYZE;
INSERT INTO T SELECT * FROM T;
ALTER TABLE t4 RENAME TO t4_r5482;
SELECT * FROM t3 WHERE c2 <= ANY (SELECT c2 FROM t3);
VACUUM;
SELECT STRING_AGG(b) FROM t4;
SELECT * FROM t3 CROSS JOIN t2;
DELETE FROM t4 WHERE rowid = 69 RETURNING *;
SELECT * FROM t4 WHERE d IN (SELECT DISTINCT d FROM t4);
INSERT INTO T DEFAULT VALUES;
ALTER TABLE T RENAME COLUMN B TO B_r9596;
CREATE VIEW IF NOT EXISTS v_t1_2631 AS SELECT b FROM t1;
CREATE INDEX IF NOT EXISTS idx_t3_7394 ON t3(c2);
SELECT * FROM (SELECT y FROM t0 WHERE y IS NOT NULL) AS sub;
CREATE TEMP VIEW IF NOT EXISTS v_t4_1728 AS SELECT d FROM t4;
DELETE FROM t1 WHERE a IS NULL;
WITH RECURSIVE fib(a,b) AS (VALUES(1,1) UNION ALL SELECT b, a+b FROM fib WHERE b<1000) SELECT a FROM fib;
SELECT COUNT(*) FILTER (WHERE z IS NOT NULL), SUM(rowid) FILTER (WHERE z > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(z) FILTER (WHERE z > 0 AND z < 100), COUNT(*) FILTER (WHERE typeof(z) = "text") FROM t0;
CREATE TRIGGER IF NOT EXISTS trg_T_1938 BEFORE UPDATE ON T FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END;
```
## Actual output
```sql
0
Run Time: real 0.000 user 0.000000 sys 0.000076
Run Time: real 0.000 user 0.000000 sys 0.000012
Run Time: real 0.000 user 0.000000 sys 0.000026
Run Time: real 0.000 user 0.000000 sys 0.000068
Run Time: real 0.000 user 0.000000 sys 0.000007
```
## Expectation
```sql
0
Run Time: real 0.000054 user 0.000065 sys 0.000000
Run Time: real 0.000008 user 0.000009 sys 0.000000
Run Time: real 0.000017 user 0.000017 sys 0.000000
Run Time: real 0.000055 user 0.000055 sys 0.000000
Run Time: real 0.000005 user 0.000005 sys 0.000000
```
## 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
CREATE TABLE t1(a,b,c);
CREATE INDEX t1a ON t1(a DESC);
INSERT INTO t1 VALUES(timediff(1, 1),2,3);
INSERT INTO t1 VALUES(2,3,4);
ALTER TABLE t1 ADD COLUMN d;
PRAGMA integrity_check;
INSERT INTO t1 VALUES (NULL, NULL, NULL);
```
## 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
```
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,49 @@
## 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 case_sensitive_like = ON;
PRAGMA full_column_names = NO;
PRAGMA count_changes = 1;
.mode
DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (c0, c1 REAL PRIMARY KEY);
INSERT INTO t1(c0, c1) VALUES (0, 1), (0, 0);
UPDATE t1 SET c0 = NULL;
UPDATE OR REPLACE t1 SET c1 = 1;
SELECT DISTINCT * FROM t1 WHERE (t1.c0 IS NULL);
PRAGMA integrity_check;
CREATE INDEX IF NOT EXISTS idx_t1_1624 ON t1((c0 + 1)) WHERE c0 > 0;
```
## Actual output
```sql
current output mode: list
2
2
2
|1.0
ok
```
## Expectation
```sql
current output mode: list --escape ascii
2
2
2
|1.0
ok
```
## Flag
```
```
@@ -0,0 +1,572 @@
## 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 -1
BEGIN;
PRAGMA case_sensitive_like = OFF;
.eqp full
ATTACH DATABASE ':memory:' AS aux5;
.stats vmstep
PRAGMA wal_checkpoint('PASSIVE');
.prompt 'IPA eli isopropanoli on loistava puhdistusaine joka irrataa'
.width -(-((x'ff77' + jsonb_array(CAST(pi() AS DOUB))))) hex(unlikely(replace(x'449094d71496db26fb', '', 'x'))) NULL
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
-- PRAGMA empty_result_callbacks;
INSERT INTO t1 VALUES (CAST(nullif(-(-(1 ->> '$[0]')), NULL) AS CHAR(10)), '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
WITH _m AS MATERIALIZED (SELECT * FROM T2) SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
.dump
CREATE TABLE T (
a INTEGER,
b REAL
);
INSERT INTO T VALUES (cosh(1),1.5), (2,-2.5), (3,0.0);
CREATE INDEX c
ON T(b);
SELECT * FROM T WHERE NOT NOT (NOT NOT (NOT b >= -2.5 AND b < 2.0)) ;
REINDEX T;
UPDATE T SET b = CURRENT_TIMESTAMP WHERE 1 RETURNING *;
INSERT INTO T SELECT * FROM T;
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T WHERE +a > 0);
CREATE TABLE T (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15),
C BIGINT,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', -9223372036854775808);
INSERT INTO T VALUES ('b', 'q', 4000);
INSERT INTO T VALUES ('c', 'r', 1700);
INSERT INTO T VALUES ('d', 'r', 9223372036854775807);
INSERT INTO T VALUES ('e', 's', 0);
SELECT A, C FROM T WHERE +C > 1200 AND C < 9999999999 ORDER BY C;
WITH m AS MATERIALIZED (SELECT * FROM T) SELECT m.a FROM m NATURAL JOIN m AS m2 ON m.a = m2.a;
ALTER TABLE T ADD COLUMN extra_7396 FLOA COLLATE NOCASE;
ALTER TABLE T ADD COLUMN extra_5763 BIGINT DEFAULT NULL;
SELECT * FROM T WHERE a IN (SELECT DISTINCT a FROM T);
DELETE FROM T WHERE +rowid = 52;
DELETE FROM T WHERE 1;
SELECT STRING_AGG(b) FROM T;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_150 ON T((a + 1));
ALTER TABLE T RENAME COLUMN B TO B_r1410;
ALTER TABLE t1 DROP COLUMN a;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
ALTER TABLE t1 DROP COLUMN d;
VACUUM;
INSERT INTO T SELECT * FROM T;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_2079 ON T(C COLLATE NOCASE) WHERE C IS NOT NULL;
INSERT INTO T VALUES (1, 1, 'x') ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
SELECT * FROM t1;
ANALYZE;
CREATE TABLE T1 (
A VARCHAR(15) PRIMARY KEY,
B VARCHAR(30) NOT NULL UNIQUE
);
CREATE TABLE _m (
A VARCHAR(10) PRIMARY KEY,
X VARCHAR(15) NOT NULL,
C BIGINT,
FOREIGN KEY (X) REFERENCES T1(A)
);
INSERT INTO T1 VALUES ('p', 'x');
INSERT INTO T1 VALUES ('q', 'y');
INSERT INTO T2 VALUES ('a', 'p', 9223372036854775807);
INSERT INTO T2 VALUES ('b', 'q', -9223372036854775808);
SELECT X, SUM(C) AS D, COUNT(*) AS E FROM T2 GROUP BY X;
ANALYZE T2;
VACUUM main;
ALTER TABLE T ADD COLUMN extra_276 INT8 COLLATE RTRIM;
DROP TABLE IF EXISTS t1;
SELECT COUNT(*) FILTER (WHERE C IS NOT NULL), SUM(rowid) FILTER (WHERE C > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(C) FILTER (WHERE C > 0 AND C < 100), COUNT(*) FILTER (WHERE typeof(C) = "text") FROM T2;
SELECT COUNT(*) FROM T;
INSERT INTO T2 VALUES (NULL, NULL, NULL);
ALTER TABLE T RENAME COLUMN A TO A_r7435;
SELECT SUM(a) OVER (ORDER BY a) FROM t1;
SELECT * FROM T2;
CREATE TEMP VIEW IF NOT EXISTS v_T1_1714 AS SELECT B FROM T1;
REINDEX;
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;
SELECT * FROM T1 AS a LEFT OUTER JOIN T AS b ON a.rowid = b.rowid;
SELECT STRING_AGG(A, '|') FROM T2;
REINDEX t1;
INSERT INTO T VALUES (1, NULL, NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
INSERT OR REPLACE INTO t1 VALUES (0, 7, 4, -10);
CREATE TEMP VIEW IF NOT EXISTS v_T_4522 AS SELECT
b FROM T;
PRAGMA defer_foreign_keys = TRUE;
ALTER TABLE T RENAME COLUMN c TO c_r3156;
SELECT * FROM T AS a FULL JOIN T1 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux5;
SELECT COUNT(*) FROM t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
SELECT AVG(a) FROM t1;
PRAGMA auto_vacuum = FULL;
ALTER TABLE T ADD COLUMN extra_265 DOUB UNIQUE;
DROP INDEX IF EXISTS t1;
END TRANSACTION;
WITH a AS (SELECT * FROM _m), b AS (SELECT * FROM _m) SELECT * FROM a UNION ALL SELECT * FROM b;
```
## Actual output
```sql
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 1 0 0 Start at 1
1 String8 0 1 0 :memory: 0 r[1]=':memory:'
2 String8 0 2 0 aux5 0 r[2]='aux5'
3 Null 0 3 0 0 r[3]=NULL
4 Function 0 1 4 sqlite_attach(3) 0 r[4]=func(r[1..3])
5 Expire 1 0 0 0
6 Halt 0 0 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 Checkpoint 12 0 1 0
3 ResultRow 1 3 0 0 output=r[1..3]
4 Halt 0 0 0 0
0|-1|-1
VM-steps: 5
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 t1 0 r[7]='t1'
20 String8 0 8 0 t1 0 r[8]='t1'
21 SCopy 2 9 0 0 r[9]=r[2]
22 String8 0 10 0 CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT) 0 r[10]='CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT)'
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 ParseSchema 0 0 0 tbl_name='t1' AND type!='trigger' 0
27 Halt 0 0 0 0
28 Transaction 0 1 0 0 1 usesStmtJournal=1
29 Goto 0 1 0 0
VM-steps: 30
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 28 0 0 Start at 28
1 OpenWrite 0 2 0 4 0 root=2 iDb=0; t1
2 SoftNull 2 0 0 0 r[2]=NULL
3 String8 0 3 0 Wernher 0 r[3]='Wernher'
4 Integer 10 4 0 0 r[4]=10
5 Integer 100 5 0 0 r[5]=100
6 Once 0 17 0 0
7 Integer 0 10 0 0 r[10]=0
8 Integer 0 12 0 0 r[12]=0
9 Integer 1 14 0 0 r[14]=1
10 String8 0 15 0 $[0] 0 r[15]='$[0]'
11 Function 3 14 13 ->>(2) 0 r[13]=func(r[14..15])
12 Subtract 13 12 11 0 r[11]=r[12]-r[13]
13 Subtract 11 10 8 0 r[8]=r[10]-r[11]
14 Null 0 9 0 0 r[9]=NULL
15 CollSeq 0 0 0 BINARY-8 0
16 Function 3 8 7 nullif(2) 0 r[7]=func(r[8..9])
17 SCopy 7 1 0 0 r[1]=r[7]
18 Cast 1 66 0 0 affinity(r[1])
19 NotNull 1 21 0 0 if r[1]!=NULL goto 21
20 NewRowid 0 1 0 0 r[1]=rowid
21 MustBeInt 1 0 0 0
22 Noop 0 0 0 0 uniqueness check for ROWID
23 NotExists 0 25 1 0 intkey=r[1]
24 Halt 1555 2 0 t1.a 2
25 MakeRecord 2 4 6 DBDD 0 r[6]=mkrec(r[2..5])
26 Insert 0 6 1 t1 49 intkey=r[1] data=r[6]
27 Halt 0 0 0 0
28 Transaction 0 1 1 0 1 usesStmtJournal=0
29 Goto 0 1 0 0
VM-steps: 29
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 16 0 0 Start at 16
1 OpenWrite 0 2 0 4 0 root=2 iDb=0; t1
2 SoftNull 2 0 0 0 r[2]=NULL
3 String8 0 3 0 von 0 r[3]='von'
4 Integer 20 4 0 0 r[4]=20
5 Integer 200 5 0 0 r[5]=200
6 Integer 2 1 0 0 r[1]=2
7 NotNull 1 9 0 0 if r[1]!=NULL goto 9
8 NewRowid 0 1 0 0 r[1]=rowid
9 MustBeInt 1 0 0 0
10 Noop 0 0 0 0 uniqueness check for ROWID
11 NotExists 0 13 1 0 intkey=r[1]
12 Halt 1555 2 0 t1.a 2
13 MakeRecord 2 4 6 DBDD 0 r[6]=mkrec(r[2..5])
14 Insert 0 6 1 t1 49 intkey=r[1] data=r[6]
15 Halt 0 0 0 0
16 Transaction 0 1 1 0 1 usesStmtJournal=0
17 Goto 0 1 0 0
VM-steps: 16
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 16 0 0 Start at 16
1 OpenWrite 0 2 0 4 0 root=2 iDb=0; t1
2 SoftNull 2 0 0 0 r[2]=NULL
3 String8 0 3 0 Braun 0 r[3]='Braun'
4 Integer 30 4 0 0 r[4]=30
5 Integer 300 5 0 0 r[5]=300
6 Integer 3 1 0 0 r[1]=3
7 NotNull 1 9 0 0 if r[1]!=NULL goto 9
8 NewRowid 0 1 0 0 r[1]=rowid
9 MustBeInt 1 0 0 0
10 Noop 0 0 0 0 uniqueness check for ROWID
11 NotExists 0 13 1 0 intkey=r[1]
12 Halt 1555 2 0 t1.a 2
13 MakeRecord 2 4 6 DBDD 0 r[6]=mkrec(r[2..5])
14 Insert 0 6 1 t1 49 intkey=r[1] data=r[6]
15 Halt 0 0 0 0
16 Transaction 0 1 1 0 1 usesStmtJournal=0
17 Goto 0 1 0 0
VM-steps: 16
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 34 0 0 Start at 34
1 Noop 0 33 0 0
2 CreateBtree 0 1 2 0 r[1]=root iDb=0 flags=2
3 OpenWrite 0 1 0 5 0 root=1 iDb=0; sqlite_master
4 String8 0 3 0 index 0 r[3]='index'
5 String8 0 4 0 t1bc 0 r[4]='t1bc'
6 String8 0 5 0 t1 0 r[5]='t1'
7 SCopy 1 6 0 0 r[6]=r[1]
8 String8 0 7 0 CREATE INDEX t1bc ON t1(b, c) 0 r[7]='CREATE INDEX t1bc ON t1(b, c)'
9 NewRowid 0 2 0 0 r[2]=rowid
10 MakeRecord 3 5 8 BBBDB 0 r[8]=mkrec(r[3..7])
11 Insert 0 8 2 24 intkey=r[2] data=r[8]
12 SorterOpen 3 0 2 k(3,,,) 0
13 OpenRead 1 2 0 4 0 root=2 iDb=0; t1
14 Rewind 1 21 0 0
15 Column 1 1 10 0 r[10]=t1.b
16 Column 1 2 11 0 r[11]=t1.c
17 Rowid 1 12 0 0 r[12]=t1.rowid
18 MakeRecord 10 3 9 0 r[9]=mkrec(r[10..12])
19 SorterInsert 3 9 0 0 key=r[9]
20 Next 1 15 0 0
21 OpenWrite 2 1 0 k(3,,,) 17 root=1 iDb=0
22 SorterSort 3 27 0 0
23 SorterData 3 9 2 0 r[9]=data
24 SeekEnd 2 0 0 0
25 IdxInsert 2 9 0 16 key=r[9]
26 SorterNext 3 23 0 0
27 Close 1 0 0 0
28 Close 2 0 0 0
29 Close 3 0 0 0
30 SetCookie 0 1 2 0
31 ParseSchema 0 0 0 name='t1bc' AND type='index' 0
32 Expire 0 1 0 0
33 Halt 0 0 0 0
34 Transaction 0 1 1 0 1 usesStmtJournal=1
35 Goto 0 1 0 0
VM-steps: 56
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
VM-steps: 4
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
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 9 0 0 Start at 9
1 OpenRead 1 3 0 k(3,,,) 0 root=3 iDb=0; sqlite_autoindex_t2_1
2 Rewind 1 8 1 0 0
3 Column 1 0 1 0 r[1]=t2.b
4 Column 1 1 2 0 r[2]=t2.c
5 Column 1 2 3 0 r[3]=t2._ROWID_
6 ResultRow 1 3 0 0 output=r[1..3]
7 Next 1 3 0 1
8 Halt 0 0 0 0
9 Transaction 0 0 2 0 1 usesStmtJournal=0
10 Goto 0 1 0 0
Braun|30|3
Wernher|10|1
von|20|2
VM-steps: 21
QUERY PLAN
`--SCAN t1 USING COVERING INDEX t1bc
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 9 0 0 Start at 9
1 Noop 1 5 0 0
2 OpenRead 2 3 0 k(3,,,) 0 root=3 iDb=0; t1bc
3 Rewind 2 8 1 0 0
4 Column 2 0 1 0 r[1]=t1.b
5 Column 2 1 2 0 r[2]=t1.c
6 ResultRow 1 2 0 0 output=r[1..2]
7 Next 2 4 0 1
8 Halt 0 0 0 0
9 Transaction 0 0 2 0 1 usesStmtJournal=0
10 Goto 0 1 0 0
Braun|30
Wernher|10
von|20
VM-steps: 19
```
## Expectation
```sql
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 7 0 0 Start at 7
1 String8 0 1 0 :memory: 0 r[1]=':memory:'
2 String8 0 2 0 aux5 0 r[2]='aux5'
3 Null 0 3 0 0 r[3]=NULL
4 Function 0 1 4 sqlite_attach(3) 0 r[4]=func(r[1..3])
5 Expire 1 0 0 0
6 Halt 0 0 0 0
7 Goto 0 1 0 0
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 5 0 0 Start at 5
1 Expire 1 1 0 0
2 Checkpoint 12 0 1 0
3 ResultRow 1 3 0 0 output=r[1..3]
4 Halt 0 0 0 0
5 Goto 0 1 0 0
0|-1|-1
VM-steps: 6
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 t1 0 r[7]='t1'
20 String8 0 8 0 t1 0 r[8]='t1'
21 Copy 2 9 0 0 r[9]=r[2]
22 String8 0 10 0 CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT) 0 r[10]='CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT)'
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 ParseSchema 0 0 0 tbl_name='t1' AND type!='trigger' 0
27 Halt 0 0 0 0
28 Transaction 0 1 0 0 1 usesStmtJournal=1
29 Goto 0 1 0 0
VM-steps: 30
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 28 0 0 Start at 28
1 OpenWrite 0 2 0 4 0 root=2 iDb=0; t1
2 SoftNull 2 0 0 0 r[2]=NULL
3 String8 0 3 0 Wernher 0 r[3]='Wernher'
4 Integer 10 4 0 0 r[4]=10
5 Integer 100 5 0 0 r[5]=100
6 Once 0 17 0 0
7 Integer 0 10 0 0 r[10]=0
8 Integer 0 12 0 0 r[12]=0
9 Integer 1 14 0 0 r[14]=1
10 String8 0 15 0 $[0] 0 r[15]='$[0]'
11 Function 3 14 13 ->>(2) 0 r[13]=func(r[14..15])
12 Subtract 13 12 11 0 r[11]=r[12]-r[13]
13 Subtract 11 10 8 0 r[8]=r[10]-r[11]
14 Null 0 9 0 0 r[9]=NULL
15 CollSeq 0 0 0 BINARY-8 0
16 Function 3 8 7 nullif(2) 0 r[7]=func(r[8..9])
17 SCopy 7 1 0 0 r[1]=r[7]
18 Cast 1 66 0 0 affinity(r[1])
19 NotNull 1 21 0 0 if r[1]!=NULL goto 21
20 NewRowid 0 1 0 0 r[1]=rowid
21 MustBeInt 1 0 0 0
22 Noop 0 0 0 0 uniqueness check for ROWID
23 NotExists 0 25 1 0 intkey=r[1]
24 Halt 1555 2 0 t1.a 2
25 MakeRecord 2 4 6 DBDD 0 r[6]=mkrec(r[2..5])
26 Insert 0 6 1 t1 49 intkey=r[1] data=r[6]
27 Halt 0 0 0 0
28 Transaction 0 1 1 0 1 usesStmtJournal=0
29 Goto 0 1 0 0
VM-steps: 29
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 16 0 0 Start at 16
1 OpenWrite 0 2 0 4 0 root=2 iDb=0; t1
2 SoftNull 2 0 0 0 r[2]=NULL
3 String8 0 3 0 von 0 r[3]='von'
4 Integer 20 4 0 0 r[4]=20
5 Integer 200 5 0 0 r[5]=200
6 Integer 2 1 0 0 r[1]=2
7 NotNull 1 9 0 0 if r[1]!=NULL goto 9
8 NewRowid 0 1 0 0 r[1]=rowid
9 MustBeInt 1 0 0 0
10 Noop 0 0 0 0 uniqueness check for ROWID
11 NotExists 0 13 1 0 intkey=r[1]
12 Halt 1555 2 0 t1.a 2
13 MakeRecord 2 4 6 DBDD 0 r[6]=mkrec(r[2..5])
14 Insert 0 6 1 t1 49 intkey=r[1] data=r[6]
15 Halt 0 0 0 0
16 Transaction 0 1 1 0 1 usesStmtJournal=0
17 Goto 0 1 0 0
VM-steps: 16
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 16 0 0 Start at 16
1 OpenWrite 0 2 0 4 0 root=2 iDb=0; t1
2 SoftNull 2 0 0 0 r[2]=NULL
3 String8 0 3 0 Braun 0 r[3]='Braun'
4 Integer 30 4 0 0 r[4]=30
5 Integer 300 5 0 0 r[5]=300
6 Integer 3 1 0 0 r[1]=3
7 NotNull 1 9 0 0 if r[1]!=NULL goto 9
8 NewRowid 0 1 0 0 r[1]=rowid
9 MustBeInt 1 0 0 0
10 Noop 0 0 0 0 uniqueness check for ROWID
11 NotExists 0 13 1 0 intkey=r[1]
12 Halt 1555 2 0 t1.a 2
13 MakeRecord 2 4 6 DBDD 0 r[6]=mkrec(r[2..5])
14 Insert 0 6 1 t1 49 intkey=r[1] data=r[6]
15 Halt 0 0 0 0
16 Transaction 0 1 1 0 1 usesStmtJournal=0
17 Goto 0 1 0 0
VM-steps: 16
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 34 0 0 Start at 34
1 Noop 0 33 0 0
2 CreateBtree 0 1 2 0 r[1]=root iDb=0 flags=2
3 OpenWrite 0 1 0 5 0 root=1 iDb=0; sqlite_master
4 String8 0 3 0 index 0 r[3]='index'
5 String8 0 4 0 t1bc 0 r[4]='t1bc'
6 String8 0 5 0 t1 0 r[5]='t1'
7 SCopy 1 6 0 0 r[6]=r[1]
8 String8 0 7 0 CREATE INDEX t1bc ON t1(b, c) 0 r[7]='CREATE INDEX t1bc ON t1(b, c)'
9 NewRowid 0 2 0 0 r[2]=rowid
10 MakeRecord 3 5 8 BBBDB 0 r[8]=mkrec(r[3..7])
11 Insert 0 8 2 24 intkey=r[2] data=r[8]
12 SorterOpen 3 0 2 k(3,,,) 0
13 OpenRead 1 2 0 4 0 root=2 iDb=0; t1
14 Rewind 1 21 0 0
15 Column 1 1 10 0 r[10]= cursor 1 column 1
16 Column 1 2 11 0 r[11]= cursor 1 column 2
17 Rowid 1 12 0 0 r[12]=t1.rowid
18 MakeRecord 10 3 9 0 r[9]=mkrec(r[10..12])
19 SorterInsert 3 9 0 0 key=r[9]
20 Next 1 15 0 0
21 OpenWrite 2 1 0 k(3,,,) 17 root=1 iDb=0
22 SorterSort 3 27 0 0
23 SorterData 3 9 2 0 r[9]=data
24 SeekEnd 2 0 0 0
25 IdxInsert 2 9 0 16 key=r[9]
26 SorterNext 3 23 0 0
27 Close 1 0 0 0
28 Close 2 0 0 0
29 Close 3 0 0 0
30 SetCookie 0 1 2 0
31 ParseSchema 0 0 0 name='t1bc' AND type='index' 0
32 Expire 0 1 0 0
33 Halt 0 0 0 0
34 Transaction 0 1 1 0 1 usesStmtJournal=1
35 Goto 0 1 0 0
VM-steps: 56
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
VM-steps: 5
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
QUERY PLAN
`--SCAN t2
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 10 0 0 Start at 10
1 OpenRead 1 3 0 k(3,,,) 0 root=3 iDb=0; sqlite_autoindex_t2_1
2 Explain 2 0 214 SCAN t2 0
3 Rewind 1 9 1 0 0
4 Column 1 0 1 0 r[1]= cursor 1 column 0
5 Column 1 1 2 0 r[2]= cursor 1 column 1
6 Column 1 2 3 0 r[3]= cursor 1 column 2
7 ResultRow 1 3 0 0 output=r[1..3]
8 Next 1 4 0 1
9 Halt 0 0 0 0
10 Transaction 0 0 2 0 1 usesStmtJournal=0
11 Goto 0 1 0 0
Braun|30|3
Wernher|10|1
von|20|2
VM-steps: 21
QUERY PLAN
`--SCAN t1 USING COVERING INDEX t1bc
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 10 0 0 Start at 10
1 Noop 1 5 0 0
2 OpenRead 2 3 0 k(3,,,) 0 root=3 iDb=0; t1bc
3 Explain 3 0 215 SCAN t1 USING COVERING INDEX t1bc 0
4 Rewind 2 9 1 0 0
5 Column 2 0 1 0 r[1]= cursor 2 column 0
6 Column 2 1 2 0 r[2]= cursor 2 column 1
7 ResultRow 1 2 0 0 output=r[1..2]
8 Next 2 5 0 1
9 Halt 0 0 0 0
10 Transaction 0 0 2 0 1 usesStmtJournal=0
11 Goto 0 1 0 0
Braun|30
Wernher|10
von|20
VM-steps: 19
```
## Flag
```
```
@@ -0,0 +1,411 @@
## 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 VARCHAR(15) PRIMARY KEY,
B VARCHAR(30) NOT NULL UNIQUE
);
CREATE TABLE T2 (
A VARCHAR(10) PRIMARY KEY,
X VARCHAR(15) NOT NULL,
C BIGINT,
FOREIGN KEY (X) REFERENCES T1(A)
);
INSERT INTO T1 VALUES ('p', 'x');
INSERT INTO T1 VALUES ('q', 'y');
INSERT INTO T2 VALUES ('a', 'p', 9223372036854775807);
INSERT INTO T2 VALUES ('b', 'q', -9223372036854775808);
SELECT X, SUM(C) AS D, COUNT(*) AS E FROM T2 GROUP BY X;
PRAGMA quick_check(if(0, 20, 0, 20, 1, 20));
SAVEPOINT sp2208;
.eqp auto
CREATE TABLE T (
a BIGINT,
b REAL
);
INSERT INTO T VALUES ('a',abs(json_valid(acos(if(NULL, json_type(exp(json_valid(1.7976931348623157e+308, 6)), '$'), 0, 1.7976931348623157e+308, 0, 1.7976931348623157e+308, 1.7976931348623157e+308)), 6))), ('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;
PRAGMA short_column_names = NO;
PRAGMA cell_size_check;
.parameter
ATTACH DATABASE ':memory:' AS aux30;
.log ON
SAVEPOINT sp6089;
ATTACH DATABASE '' || (':memory:') AS aux56;
CREATE TABLE main.t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (strftime('%s', format('%d', 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 ignore_check_constraints = 0;
DETACH DATABASE aux56;
INSERT INTO t1 SELECT * FROM t1;
PRAGMA recursive_triggers = OFF;
CREATE TRIGGER IF NOT EXISTS trg_t1_1212 AFTER UPDATE OF c ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
RELEASE sp6089;
CREATE TRIGGER IF NOT EXISTS trg_t1_4991 BEFORE UPDATE OF a ON t1 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
INSERT INTO t1 VALUES (1, 'x', 'x', 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
ALTER TABLE t1 ADD COLUMN extra_6256 CLOB DEFAULT '';
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<1) SELECT * FROM cnt;
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 t1 NATURAL JOIN t1;
ALTER TABLE t1 RENAME COLUMN d TO d_r9145;
INSERT OR FAIL INTO t1 VALUES ('x', 'x', '', -7);
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
UPDATE t1 SET d = d + 1 RETURNING *;
WITH RECURSIVE fib(a,b) AS (VALUES(1,1) UNION ALL SELECT b, a+b FROM fib WHERE b<1000) SELECT a FROM fib;
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;
INSERT INTO T1 VALUES ('x', 'x') ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
ALTER TABLE T1 DROP COLUMN A;
CREATE TEMP VIEW IF NOT EXISTS v_t1_7233 AS SELECT c FROM t1;
DETACH DATABASE aux30;
UPDATE T1 SET A = A + 1 WHERE rowid = 1;
INSERT INTO T1 SELECT * FROM T1;
CREATE TRIGGER IF NOT EXISTS trg_t1_9997 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DELETE FROM T1 WHERE 0;
INSERT INTO t1 DEFAULT VALUES;
ALTER TABLE T2 RENAME TO T2_r5714;
DELETE FROM T2 WHERE 1;
SELECT * FROM T2 WHERE Y > ALL (SELECT Y FROM T2);
SELECT * FROM T2;
ALTER TABLE T1 ADD COLUMN extra_1823 FLOAT UNIQUE;
WITH RECURSIVE fib(a,b,n) AS (VALUES(1,1,1) UNION ALL SELECT b, a+b, n+1 FROM fib WHERE n<95) SELECT a, n FROM fib;
SELECT COUNT(*) FROM T1;
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 T DROP COLUMN b;
INSERT INTO T1 DEFAULT VALUES;
SELECT COUNT(A) FILTER (WHERE A IS NOT NULL) OVER (PARTITION BY A ORDER BY A ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT /* PRAGMA application_id; */ ROW) FROM T2;
INSERT INTO t1 VALUES ('x', 'x', 1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
ALTER TABLE t1 DROP COLUMN b;
INSERT OR FAIL INTO T2 VALUES ('x', -9);
REINDEX;
REINDEX;
SELECT LAG(b, 0) OVER (ORDER BY b RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T;
SELECT SUM(Y) FROM T2;
UPDATE T SET A = NULL WHERE 1;
DELETE FROM /* PRAGMA defer_foreign_keys; */ t1 WHERE c > (SELECT AVG(c) FROM t1);
SELECT COUNT(*) FILTER (WHERE c IS NOT NULL), SUM(rowid) FILTER (WHERE c > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c) FILTER (WHERE c > 0 AND c < 100), COUNT(*) FILTER (WHERE typeof(c) = "text") FROM t1;
.eqp auto
CREATE TABLE T (
a TEXT,
b REAL
);
INSERT INTO T VALUES ('a',abs(json_valid(9223372036854775806, 6))), ('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;
PRAGMA short_column_names = NO;
PRAGMA cell_size_check;
.parameter
ATTACH DATABASE ':memory:' AS aux30;
.log ON
SAVEPOINT sp6089;
ATTACH DATABASE '' || (':memory:') AS aux56;
CREATE TABLE main.t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (strftime('%s', format('%d', 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 ignore_check_constraints = 0;
DETACH DATABASE aux56;
INSERT INTO t1 SELECT * FROM t1;
PRAGMA recursive_triggers = OFF;
CREATE TRIGGER IF NOT EXISTS trg_t1_1212 AFTER UPDATE OF c ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
RELEASE sp6089;
CREATE TRIGGER IF NOT EXISTS trg_t1_4991 BEFORE UPDATE OF a ON t1 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
INSERT INTO t1 VALUES (1, 'x', 'x', 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
ALTER TABLE t1 ADD COLUMN extra_6256 CLOB DEFAULT '';
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<1) SELECT * FROM cnt;
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;
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 t1 NATURAL JOIN t1;
ALTER TABLE t1 RENAME COLUMN d TO d_r9145;
INSERT AND FAIL INTO t1 VALUES ('x', 'x', '', -7);
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
UPDATE t1 SET d = d + 1 RETURNING *;
WITH RECURSIVE fib(a,b) AS (VALUES(1,1) UNION ALL SELECT b, a+b FROM fib WHERE b<1000) SELECT a FROM fib;
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;
INSERT INTO T1 VALUES ('x', 'x') ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
ALTER TABLE T1 DROP COLUMN A;
CREATE TEMP VIEW IF NOT EXISTS v_t1_7233 AS SELECT c FROM t1;
DETACH DATABASE aux30;
UPDATE T1 SET A = A + 1 WHERE rowid = 1;
INSERT INTO T1 SELECT * FROM T1;
CREATE TRIGGER IF NOT EXISTS trg_t1_9997 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DELETE FROM T1 WHERE 0;
INSERT INTO t1 DEFAULT VALUES;
ALTER TABLE T2 RENAME TO T2_r5714;
DELETE FROM T2 WHERE 1;
SELECT * FROM T2 WHERE Y > ALL (SELECT Y FROM T2);
SELECT * FROM T2;
ALTER TABLE T1 ADD COLUMN extra_1823 FLOAT UNIQUE;
WITH RECURSIVE fib(a,b,n) AS (VALUES(1,1,1) UNION ALL SELECT b, a+b, n+1 FROM fib WHERE n<95) SELECT a, n FROM fib;
SELECT COUNT(*) FROM T1;
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 T DROP COLUMN b;
INSERT INTO T1 DEFAULT VALUES;
SELECT COUNT(A) FILTER (WHERE A IS NOT NULL) OVER (PARTITION BY A ORDER BY A ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T2;
INSERT INTO t1 VALUES ('x', 'x', 1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
ALTER TABLE t1 DROP COLUMN b;
INSERT OR FAIL INTO T2 VALUES ('x', -9);
REINDEX;
REINDEX;
SELECT LAG(b, 0) OVER (ORDER BY b RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T;
SELECT SUM(Y) FROM T2;
UPDATE T SET A = NULL WHERE 1;
DELETE FROM t1 WHERE c > (SELECT AVG(c) FROM t1);
SELECT COUNT(*) FILTER (WHERE c IS NOT NULL), SUM(rowid) FILTER (WHERE c > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c) FILTER (WHERE c > 0 AND c < 100), COUNT(*) FILTER (WHERE typeof(c) = "text") FROM t1;
.eqp auto
CREATE TABLE T (
a TEXT,
b REAL
);
INSERT INTO T VALUES ('a',abs(json_valid(9223372036854775806, 6))), ('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;
PRAGMA short_column_names = NO;
PRAGMA cell_size_check;
.parameter
ATTACH DATABASE ':memory:' AS aux30;
.log ON
SAVEPOINT sp6089;
ATTACH DATABASE '' || (':memory:') AS aux56;
CREATE TABLE main.t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (strftime('%s', format('%d', 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 ignore_check_constraints = 0;
DETACH DATABASE aux56;
INSERT INTO t1 SELECT * FROM t1;
PRAGMA recursive_triggers = OFF;
CREATE TRIGGER IF NOT EXISTS trg_t1_1212 AFTER UPDATE OF c ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
RELEASE sp6089;
CREATE TRIGGER IF NOT EXISTS trg_t1_4991 BEFORE UPDATE OF a ON t1 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
INSERT INTO t1 VALUES (1, 'x', 'x', 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
ALTER TABLE t1 ADD COLUMN extra_6256 CLOB DEFAULT '';
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<1) SELECT * FROM cnt;
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 t1 NATURAL JOIN t1;
ALTER TABLE t1 RENAME COLUMN d TO d_r9145;
INSERT AND FAIL INTO t1 VALUES ('x', 'x', '', -7);
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
UPDATE t1 SET d = d + 1 RETURNING *;
WITH RECURSIVE fib(a,b) AS (VALUES(1,1) UNION ALL SELECT b, a+b FROM fib WHERE b<1000) SELECT a FROM fib;
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;
INSERT INTO T1 VALUES ('x', 'x') ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
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;
ALTER TABLE T1 DROP COLUMN A;
CREATE TEMP VIEW IF NOT EXISTS v_t1_7233 AS SELECT c FROM t1;
DETACH DATABASE aux30;
UPDATE T1 SET A = A + 1 WHERE rowid = 1;
INSERT INTO T1 SELECT * FROM T1;
CREATE TRIGGER IF NOT EXISTS trg_t1_9997 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DELETE FROM T1 WHERE 0;
INSERT INTO t1 DEFAULT VALUES;
ALTER TABLE T2 RENAME TO T2_r5714;
DELETE FROM T2 WHERE 1;
SELECT * FROM T2 WHERE Y > ALL (SELECT Y FROM T2);
SELECT * FROM T2;
ALTER TABLE T1 ADD COLUMN extra_1823 FLOAT UNIQUE;
WITH RECURSIVE fib(a,b,n) AS (VALUES(1,1,1) UNION ALL SELECT b, a+b, n+1 FROM fib WHERE n<95) SELECT a, n FROM fib;
SELECT COUNT(*) FROM T1;
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 T DROP COLUMN b;
INSERT INTO T1 DEFAULT VALUES;
SELECT COUNT(A) FILTER (WHERE A IS NOT NULL) OVER (PARTITION BY A ORDER BY A ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T2;
INSERT INTO t1 VALUES ('x', 'x', 1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
ALTER TABLE t1 DROP COLUMN b;
INSERT OR FAIL INTO T2 VALUES ('x', -9);
REINDEX;
REINDEX;
SELECT LAG(b, 0) OVER (ORDER BY b RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T;
SELECT SUM(Y) FROM T2;
UPDATE T SET A = NULL WHERE 1;
DELETE FROM t1 WHERE c > (SELECT AVG(c) FROM t1);
SELECT COUNT(*) FILTER (WHERE c IS NOT NULL), SUM(rowid) FILTER (WHERE c > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c) FILTER (WHERE c > 0 AND c < 100), COUNT(*) FILTER (WHERE typeof(c) = "text") FROM t1;
ROLLBACK TO sp2208;
RELEASE sp2208;
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;
INSERT INTO T1 DEFAULT VALUES;
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 b, COUNT(*) FROM T2 GROUP BY b HAVING COUNT(*) = (SELECT COUNT(*) FROM T2);
ALTER TABLE T1 ADD COLUMN extra_4051 DECIMAL(10,5) DEFAULT NULL;
VACUUM;
SELECT COUNT(*) FROM T2;
CREATE TRIGGER IF NOT EXISTS trg_t1_3933 AFTER DELETE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
INSERT INTO T VALUES (NULL, NULL);
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;
VACUUM main;
INSERT OR ABORT INTO T VALUES (-1, 0);
ALTER TABLE t1 RENAME TO t1_r5175;
CREATE TRIGGER IF NOT EXISTS trg_t1_8911 AFTER UPDATE ON t1 BEGIN SELECT RAISE(FAIL, 'no'); END;
INSERT INTO T1 SELECT * FROM T1;
ALTER TABLE T1 ADD COLUMN extra_2551 CHAR(10) COLLATE NOCASE;
SELECT COUNT(*) FROM T1;
CREATE TRIGGER IF NOT EXISTS trg_T2_1955 BEFORE UPDATE OF a ON T2 FOR EACH ROW BEGIN INSERT INTO T2(a) VALUES (NULL); END;
INSERT OR REPLACE INTO T1 VALUES ('x', 0);
SELECT TOTAL(b) FROM T2;
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_3072 ON T1((b + 1)) WHERE b IS NOT NULL;
VACUUM main;
SELECT LAST_VALUE(b) OVER (ORDER BY b RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM T2;
CREATE VIEW IF NOT EXISTS v_T1_4599 AS SELECT b FROM T1;
CREATE TRIGGER IF NOT EXISTS trg_T1_5914 AFTER DELETE ON T1 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
INSERT OR REPLACE INTO T2 VALUES ('', '');
INSERT INTO t1 SELECT * FROM t1;
INSERT INTO T2 VALUES (NULL, NULL);
WITH cte AS (SELECT 1 AS x) INSERT INTO T1(a) SELECT x FROM cte WHERE 1=0;
```
## 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,107 @@
## 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;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (asin(-9223372036854775807) ->> 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
WITH _m AS MATERIALIZED (SELECT * FROM T2) SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
PRAGMA recursive_triggers = OFF;
PRAGMA ignore_check_constraints != FALSE;
PRAGMA wal_autocheckpoint;
PRAGMA pragma_list;
.sha3sum
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))/-if(-2814635466794726270, 2360804486672605089)
AS INTEGER
) AS c
FROM T;
CREATE TABLE T1 (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15) UNIQUE,
C INTEGER
);
CREATE TABLE _m (
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 OR T1.C >= 0;
SELECT SUM(b) OVER (ORDER BY b ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
ALTER TABLE T RENAME TO T_r3912;
PRAGMA vdbe_trace = 0;
CREATE INDEX IF NOT EXISTS idx_T_6324 ON T(a COLLATE NOCASE) WHERE a > 0;
INSERT INTO T SELECT * 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;
ALTER TABLE T1 RENAME TO T1_r9774;
CREATE TRIGGER IF NOT EXISTS trg_T1_9214 AFTER UPDATE ON T1 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
PRAGMA page_size;
SELECT * FROM T1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
SELECT GROUP_CONCAT(b, '|') FROM T;
SELECT COUNT(*) FROM T2;
SELECT * FROM T2 AS a JOIN T1 AS b ON a.rowid = b.rowid;
ROLLBACK;
WITH RECURSIVE multi(a, b) AS (VALUES(1, 1.0) UNION ALL SELECT a+1, b*0.5 FROM multi WHERE a<48) SELECT * FROM multi;
ALTER TABLE T RENAME COLUMN a TO a_r1923;
SELECT * FROM _m;
ALTER TABLE _m DROP COLUMN X;
ALTER TABLE _m DROP COLUMN X;
WITH RECURSIVE r AS (SELECT * FROM T1 LIMIT 1 UNION ALL SELECT t.* FROM T1 t JOIN r ON t.B = r.B LIMIT 10) SELECT * FROM r;
```
## 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,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
SAVEPOINT sp1179;
PRAGMA reverse_unordered_selects = NO;
PRAGMA short_column_names = TRUE;
.databases
SAVEPOINT sp5671;
.once log.txt
ATTACH DATABASE ('' || '') || ('') || (':memory:') AS aux78;
.limit
CREATE TABLE [T1] (
a INT2,
b REAL
);
CREATE TABLE T2 (
a INTEGER,
b REAL
);
INSERT INTO T1 VALUES (ifnull(timediff(concat_ws(',', CAST(upper(-(-(-json_array_length(strftime('%s', sinh(lower('HELLO'))))))) AS INT2), format(NULL, if(NULL, NULL, NULL)), datetime(unhex('4G'), '+1 day')), lower('HeLLo')), (2 + 0.0)),1.0);
INSERT INTO T2 VALUES (1,-1.0),(2,9e999);
INSERT OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
PRAGMA writable_schema = YES;
SAVEPOINT sp6649;
ATTACH DATABASE ':memory:' AS aux69;
.quit
.trace
CREATE TABLE main.T (
a DOUBLE,
b TEXT,
c REAL
);
INSERT INTO T VALUES (CAST(json_array_length(if(CAST(-(-(length(randomblob(CAST(mod(1.7976931348623157e+308, 1465368752231950166) AS INTEGER))))) AS TINYINT), 1, 0, 1, 0, 1), '$') AS NUMERIC),'a',3.14), (1,'b',-7.75), (2,'c',-9e999);
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT b,a,c,
RANK() OVER (PARTITION BY a ORDER BY c DESC) AS d FROM T;
ATTACH DATABASE ':memory:' AS aux86;
PRAGMA full_column_names = YES;
DROP TABLE IF EXISTS _m;
CREATE TABLE t1 (c0, c1 REAL PRIMARY KEY);
INSERT INTO t1(c0, c1) VALUES ('{', -(-(1))), (0, 0);
UPDATE t1 SET c0 = NULL;
UPDATE OR REPLACE t1 SET c1 = 1;
SELECT DISTINCT * FROM t1 WHERE NOT NOT (NOT NOT (t1.c0 IS NULL)) ;
PRAGMA integrity_check;
SELECT COUNT(*) FROM t1;
SELECT * FROM t1;
DETACH DATABASE aux86;
REINDEX;
ALTER TABLE T ADD COLUMN extra_5481 BLOB NOT NULL DEFAULT 0;
SELECT COUNT(*) FROM T;
CREATE TABLE T (
a TEXT,
b TEXT
);
INSERT INTO T VALUES ('a','b'), ('c','d');
SELECT * FROM T WHERE +a = REPLACE('a;',';','') AND b = 'b';
CREATE TABLE T1 (
A VARCHAR(15) PRIMARY KEY,
B VARCHAR(30) NOT NULL UNIQUE
);
CREATE TABLE T2 (
A VARCHAR(10) PRIMARY KEY,
X VARCHAR(15) NOT NULL,
C BIGINT,
FOREIGN KEY (X) REFERENCES T1(A)
);
INSERT INTO T1 VALUES ('p', 'x');
INSERT INTO T1 VALUES ('q', 'y');
INSERT INTO T2 VALUES ('a', 'p', 9223372036854775807);
INSERT INTO T2 VALUES ('b', 'q', -9223372036854775808);
SELECT X, SUM(C) AS D, COUNT(*) AS E FROM T2 GROUP BY X;
SELECT LAG(c0, 2, 'default') OVER (PARTITION BY c0 ORDER BY c0 ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
SELECT * FROM t1;
CREATE VIEW IF NOT EXISTS v_t1_6883 AS SELECT c1 FROM t1;
ALTER TABLE t1 ADD COLUMN extra_3184 INT2 COLLATE NOCASE;
SELECT * FROM t1;
REINDEX;
SELECT c, COUNT(*) FROM T GROUP BY c HAVING COUNT(*) = (SELECT COUNT(*) 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;
PRAGMA temp_store = 'MEMORY';
VACUUM main;
SELECT * FROM T1 WHERE EXISTS (SELECT 1 FROM T1 WHERE 1 = 0);
SELECT * FROM T1 WHERE A <> ANY (SELECT A FROM T1);
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5592 AS SELECT c0 FROM t1;
REINDEX T2;
UPDATE T SET b = json_object('k', b);
DETACH DATABASE aux69;
DROP INDEX IF EXISTS T1;
SELECT STRING_AGG(C) FROM T2;
ROLLBACK TO sp6649;
RELEASE sp6649;
INSERT OR ABORT INTO T2 VALUES ('x', -9, -9);
SELECT COUNT(*) FILTER (WHERE c1 IS NOT NULL), SUM(rowid) FILTER (WHERE c1 > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c1) FILTER (WHERE c1 > 0 AND c1 < 100), COUNT(*) FILTER (WHERE typeof(c1) = "text") FROM t1;
ALTER TABLE T RENAME COLUMN b TO b_r9085;
INSERT INTO t1 DEFAULT VALUES;
SELECT GROUP_CONCAT(A, '|') FROM T2;
INSERT OR ROLLBACK INTO T1 VALUES (6, '');
WITH RECURSIVE tree(id, path) AS (VALUES(1, "/1") UNION ALL SELECT id+1, path || "/" || (id+1) FROM tree WHERE id<14) SELECT * FROM tree;
CREATE VIEW IF NOT EXISTS v_T1_7673 AS SELECT 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;
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 OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
SELECT COUNT(c) FROM T;
UPDATE T SET a = a + 1 WHERE 1;
ALTER TABLE T ADD COLUMN extra_6983 DATETIME DEFAULT CURRENT_TIMESTAMP;
INSERT INTO T2 VALUES (NULL, NULL);
.limit
CREATE TABLE T1 (
a INTEGER,
b REAL
);
CREATE TABLE T2 (
a INTEGER,
b REAL
);
INSERT INTO T1 VALUES (ifnull(timediff(concat_ws(',', CAST(upper(1) AS INT2), 2, 3), 1), 2),1.0);
INSERT INTO T2 VALUES (1,-1.0),(2,9e999);
INSERT OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
PRAGMA writable_schema = YES;
SAVEPOINT sp6649;
ATTACH DATABASE ':memory:' AS aux69;
.quit
.trace
CREATE TABLE T (
a DOUBLE,
b TEXT,
c REAL
);
INSERT INTO T VALUES (CAST(json_array_length(if(CAST(-(-(length(randomblob(CAST(mod(1.7976931348623157e+308, 1465368752231950166) AS INTEGER))))) AS TINYINT), 1, 0, 1, 0, 1), '$') AS NUMERIC),'a',3.14), (1,'b',-7.75), (2,'c',-9e999);
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT b,a,c,
RANK() OVER (PARTITION BY a ORDER BY c DESC) AS d FROM T;
ATTACH DATABASE ':memory:' AS aux86;
PRAGMA full_column_names = YES;
DROP TABLE IF EXISTS _m;
CREATE TABLE t1 (c0, c1 REAL PRIMARY KEY);
INSERT INTO t1(c0, c1) VALUES ('{', -(-(1))), (0, 0);
UPDATE t1 SET c0 = NULL;
UPDATE OR REPLACE t1 SET c1 = 1;
SELECT DISTINCT * FROM t1 WHERE NOT NOT (t1.c0 IS NULL);
PRAGMA integrity_check;
SELECT COUNT(*) FROM t1;
SELECT * FROM t1;
DETACH DATABASE aux86;
REINDEX;
ALTER TABLE T ADD COLUMN extra_5481 BLOB NOT NULL DEFAULT 0;
SELECT COUNT(*) FROM T;
CREATE TABLE T1 (
A VARCHAR(15) PRIMARY KEY,
B VARCHAR(30) NOT NULL UNIQUE
);
CREATE TABLE T2 (
A VARCHAR(10) PRIMARY KEY,
X VARCHAR(15) NOT NULL,
C BIGINT,
FOREIGN KEY (X) REFERENCES T1(A)
);
INSERT INTO T1 VALUES ('p', 'x');
INSERT INTO T1 VALUES ('q', 'y');
INSERT INTO T2 VALUES ('a', 'p', 9223372036854775807);
INSERT INTO T2 VALUES ('b', 'q', -9223372036854775808);
SELECT X, SUM(C) AS D, COUNT(*) AS E FROM T2 GROUP BY X;
SELECT LAG(c0, 2, 'default') OVER (PARTITION BY c0 ORDER BY c0 ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
SELECT * FROM t1;
CREATE VIEW IF NOT EXISTS v_t1_6883 AS SELECT c1 FROM t1;
ALTER TABLE t1 ADD COLUMN extra_3184 INT2 COLLATE NOCASE;
SELECT * FROM t1;
REINDEX;
SELECT c, COUNT(*) FROM T GROUP BY c HAVING COUNT(*) = (SELECT COUNT(*) 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;
PRAGMA temp_store = 'MEMORY';
VACUUM main;
SELECT * FROM T1 WHERE EXISTS (SELECT 1 FROM T1 WHERE 1 = 0);
SELECT * FROM T1 WHERE A <> ANY (SELECT A /**/ FROM T1);
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5592 AS SELECT c0 FROM t1;
REINDEX T2;
UPDATE T SET b = json_object('k', b);
DETACH DATABASE aux69;
DROP INDEX IF EXISTS T1;
SELECT STRING_AGG(C) FROM T2;
ROLLBACK TO sp6649;
RELEASE sp6649;
INSERT OR ABORT INTO T2 VALUES ('x', -9, -9);
SELECT COUNT(*) FILTER (WHERE c1 IS NOT NULL), SUM(rowid) FILTER (WHERE c1 > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c1) FILTER (WHERE c1 > 0 AND /**/ c1 < 100), COUNT(*) FILTER (WHERE typeof(c1) = "text") FROM t1;
ALTER TABLE T RENAME COLUMN b TO b_r9085;
INSERT INTO t1 DEFAULT VALUES;
SELECT GROUP_CONCAT(A, '|') FROM T2;
INSERT OR ROLLBACK INTO T1 VALUES (6, '');
WITH RECURSIVE tree(id, path) AS (VALUES(1, "/1") UNION ALL SELECT id+1, path || "/" || (id+1) FROM tree WHERE id<14) SELECT * FROM tree;
CREATE VIEW IF NOT EXISTS v_T1_7673 AS SELECT 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;
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 OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
SELECT COUNT(c) FROM T;
UPDATE T SET a = a + 1 WHERE 1;
ALTER TABLE T ADD COLUMN extra_6983 DATETIME DEFAULT CURRENT_TIMESTAMP;
INSERT INTO T2 VALUES (NULL, NULL);
.limit
CREATE TABLE T1 (
a INTEGER,
b REAL
);
CREATE TABLE T2 (
a INTEGER,
b REAL
);
INSERT INTO T1 VALUES (ifnull(timediff(concat_ws(',', CAST(upper(1) AS INT2), 2, 3), 1), 2),1.0);
INSERT INTO T2 VALUES (1,-1.0),(2,9e999);
INSERT OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
PRAGMA writable_schema = YES;
SAVEPOINT sp6649;
ATTACH DATABASE ':memory:' AS aux69;
.quit
.trace
CREATE TABLE T (
a DOUBLE,
b TEXT,
c REAL
);
INSERT INTO T VALUES (CAST(json_array_length(if(CAST(-(-(length(randomblob(CAST(mod(1.7976931348623157e+308, 1465368752231950166) AS INTEGER))))) AS TINYINT), 1, 0, 1, 0, 1), '$') AS NUMERIC),'a',3.14), (1,'b',-7.75), (2,'c',-9e999);
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT b,a,c,
RANK() OVER (PARTITION BY a ORDER BY c DESC) AS d FROM T;
ATTACH DATABASE ':memory:' AS aux86;
PRAGMA full_column_names = YES;
DROP TABLE IF EXISTS _m;
CREATE TABLE t1 (c0, c1 REAL PRIMARY KEY);
INSERT INTO t1(c0, c1) VALUES ('{', -(-(1))), (0, 0);
UPDATE t1 SET c0 = NULL;
UPDATE OR REPLACE t1 SET c1 = 1;
SELECT DISTINCT * FROM t1 WHERE NOT NOT (t1.c0 IS NULL);
PRAGMA integrity_check;
SELECT COUNT(*) FROM t1;
SELECT * FROM t1;
DETACH DATABASE aux86;
REINDEX;
ALTER TABLE T ADD COLUMN extra_5481 BLOB NOT NULL DEFAULT 0;
SELECT COUNT(*) FROM T;
CREATE TABLE T1 (
A VARCHAR(15) PRIMARY KEY,
B VARCHAR(30) NOT NULL UNIQUE
);
CREATE TABLE T2 (
A VARCHAR(10) PRIMARY KEY,
X VARCHAR(15) NOT NULL,
C BIGINT,
FOREIGN KEY (X) REFERENCES T1(A)
);
INSERT INTO T1 /* .recover */ VALUES ('p', 'x');
INSERT INTO T1 VALUES ('q', 'y');
INSERT INTO T2 VALUES ('a', 'p', 9223372036854775807);
INSERT INTO T2 VALUES ('b', 'q', -9223372036854775808);
SELECT X, SUM(C) AS D, COUNT(*) AS E FROM T2 GROUP BY X;
SELECT LAG(c0, 2, 'default') OVER (PARTITION BY c0 ORDER BY c0 ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
SELECT * FROM t1;
CREATE VIEW IF NOT EXISTS v_t1_6883 AS SELECT c1 FROM t1;
ALTER TABLE t1 ADD COLUMN extra_3184 INT2 COLLATE NOCASE;
SELECT * FROM t1;
REINDEX;
SELECT c, COUNT(*) FROM T GROUP BY c HAVING COUNT(*) = (SELECT COUNT(*) 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;
PRAGMA temp_store = 'MEMORY';
VACUUM main;
SELECT * FROM T1 WHERE EXISTS (SELECT 1 FROM T1 WHERE 1 = 0);
SELECT * FROM T1 WHERE A <> ANY (SELECT A FROM T1);
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5592 AS SELECT c0 FROM t1;
REINDEX T2;
UPDATE T SET b = json_object('k', b);
DETACH DATABASE aux69;
DROP INDEX IF EXISTS T1;
SELECT STRING_AGG(C) FROM T2;
ROLLBACK TO sp6649;
RELEASE sp6649;
INSERT OR ABORT INTO T2 VALUES ('x', -9, -9);
SELECT COUNT(*) FILTER (WHERE c1 IS NOT NULL), SUM(rowid) FILTER (WHERE c1 > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c1) FILTER (WHERE c1 > 0 AND c1 < 100), COUNT(*) FILTER (WHERE typeof(c1) = "text") FROM t1;
ALTER TABLE T RENAME COLUMN b TO b_r9085;
INSERT INTO t1 DEFAULT VALUES;
SELECT GROUP_CONCAT(A, '|') FROM T2;
INSERT OR ROLLBACK INTO T1 VALUES (6, '');
WITH RECURSIVE tree(id, path) AS (VALUES(1, "/1") UNION ALL SELECT id+1, path || "/" || (id+1) FROM tree WHERE id<14) SELECT * FROM tree;
CREATE VIEW IF NOT EXISTS v_T1_7673 AS SELECT 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;
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 OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
SELECT COUNT(c) FROM T;
UPDATE T SET a = a + 1 WHERE 1;
ALTER TABLE T ADD COLUMN extra_6983 DATETIME DEFAULT CURRENT_TIMESTAMP;
INSERT INTO T2 VALUES (NULL, NULL);
VACUUM;
CREATE VIEW IF NOT EXISTS v_T2_6393 AS SELECT a FROM T2;
ALTER TABLE T1 RENAME COLUMN b TO b_r8651;
SELECT LEAD(a) OVER (ORDER BY a) FROM T1;
ALTER TABLE T DROP COLUMN a;
SELECT * FROM T1 AS a INNER JOIN T1 AS b ON a.rowid = b.rowid;
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 c1 IN (SELECT c1 FROM t1 t2 WHERE t2.c1 = t1.c1);
SELECT * FROM T2 AS /* load_extension({v}) */ a INNER JOIN T AS b ON a.rowid = b.rowid;
DETACH DATABASE aux78;
SELECT COUNT(*) FILTER (WHERE c1 IS NOT NULL), SUM(rowid) FILTER (WHERE c1 > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c1) FILTER (WHERE c1 > 0 AND c1 < 100), COUNT(*) FILTER (WHERE typeof(c1) = "text") FROM t1;
UPDATE T2 SET A = 'x';
PRAGMA cache_spill = NO;
INSERT INTO T2 SELECT * FROM T2;
VACUUM main;
CREATE VIRTUAL TABLE T
USING 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 WHERE EXISTS (SELECT 1 FROM T1 WHERE C > 0);
ROLLBACK TRANSACTION TO SAVEPOINT sp5671;
RELEASE SAVEPOINT sp5671;
ALTER TABLE T DROP COLUMN a;
SELECT A, (SELECT MIN(A) FROM T2) AS min_val FROM T2;
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 * FROM T1 WHERE A IN (SELECT A FROM T1 WHERE A IN (SELECT A FROM T1));
ALTER TABLE t1 ADD COLUMN extra_514 DATE DEFAULT (abs(random()) % 1000);
SELECT SUM(A) FROM T1;
ALTER TABLE t1 RENAME TO t1_r1859;
SELECT COUNT(*) FROM t1;
SELECT MAX(c0) FROM t1;
SELECT NTILE(1) OVER (PARTITION BY X ORDER BY X ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T2;
CREATE TEMP VIEW IF NOT EXISTS v_T_8701 AS SELECT b FROM T;
REINDEX;
SELECT 0x0ACB29BM205381;
SELECT sqlite_compileoption_used('我的天你是怎么了');
SELECT 1 >> -999999999999999999999999999;
SELECT sqlite_compileoption_get($1);
SELECT sqlite_version();
INSERT INTO t1 SELECT * FROM t1;
SELECT * FROM t1;
SELECT STRING_AGG(a, '|') FROM T;
SELECT * FROM T1;
SELECT GROUP_CONCAT(X, '|') FROM T2;
ALTER TABLE T2 DROP COLUMN A;
INSERT INTO T VALUES (NULL, NULL, NULL);
INSERT INTO t1 SELECT * FROM t1;
CREATE INDEX IF NOT EXISTS idx_T1_6502 ON T1(B);
SELECT COUNT(*) FROM T2;
ROLLBACK TO sp1179;
RELEASE sp1179;
SELECT * FROM t1;
INSERT INTO T2 DEFAULT VALUES;
INSERT OR REPLACE INTO t1 VALUES (-5, 7);
VACUUM;
ALTER TABLE T2 DROP COLUMN X;
SELECT * FROM T1;
SELECT * FROM T1 AS a JOIN T AS b ON a.rowid = b.rowid;
ALTER TABLE T2 ADD COLUMN extra_7126 FLOAT DEFAULT CURRENT_TIMESTAMP;
INSERT INTO T VALUES (NULL, NULL, NULL);
ALTER TABLE T1 DROP COLUMN A;
SELECT c, (SELECT AVG(c) FROM T) AS avg_val FROM T;
SELECT COUNT(*) FROM T2;
ALTER TABLE t1 DROP COLUMN c0;
INSERT INTO T2 SELECT * FROM T2;
ALTER TABLE t1 DROP COLUMN c0;
WITH cte AS (SELECT * FROM T2) SELECT * FROM cte LEFT JOIN T2 ON cte.X = T2.X;
UPDATE t1 SET c1 = '' WHERE c1 BETWEEN 0 AND 100;
INSERT INTO t1 DEFAULT VALUES;
```
## Actual output
```sql
main: "" r/w
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
1|-1.0
2|Inf
```
## Expectation
```sql
```
## Flag
```
```
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,952 @@
## 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 sp1689;
PRAGMA quick_check(20);
SAVEPOINT sp5011;
ATTACH DATABASE ':memory:' AS aux26;
SAVEPOINT sp3272;
PRAGMA ignore_check_constraints = NO;
.eqp off
PRAGMA count_changes = '|';
ATTACH DATABASE ':memory:' AS aux96;
ATTACH DATABASE ':memory:' AS aux34;
CREATE TEMPORARY TABLE t0(x, y, z);
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST(unicode('你好') AS MEDIUMINT), 'Wernher', if(min(-x'b48568f4c83863c45d', '2', 3), 10, 0, 10, 0, 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
SELECT -99999999999999999999999999999999999999999999999999;
SELECT * FROM sqlite_temp_master WHERE NOT NOT (sql GLOB '000[]***') ;
DROP TABLE t0;
REINDEX;
DELETE FROM t0 WHERE 1 RETURNING *;
UPDATE t0 SET z = '' WHERE z BETWEEN 0 AND 100;
SELECT * FROM t0 AS a RIGHT JOIN t1 AS b ON a.rowid = b.rowid;
SELECT * FROM t1 WHERE b NOT IN (SELECT b FROM t1);
DETACH DATABASE aux34;
SELECT * FROM t1 AS a FULL OUTER JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r5353;
ALTER TABLE t1 RENAME TO t1_r3388;
PRAGMA short_column_names = YES;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
SELECT COUNT(*) FROM t1;
CREATE TRIGGER IF NOT EXISTS trg_t0_3641 AFTER UPDATE ON t0 BEGIN SELECT RAISE(IGNORE); 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;
DETACH DATABASE aux96;
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
WITH RECURSIVE multi(a, b) AS (VALUES(1, 1.0) UNION ALL SELECT a+1, b*0.5 FROM multi WHERE a<38) SELECT * FROM multi;
.eqp off
PRAGMA count_changes = '|';
ATTACH DATABASE ':memory:' AS aux96;
ATTACH DATABASE ':memory:' AS aux34;
CREATE TEMPORARY TABLE t0(x, y, z);
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST(unicode('你好') AS MEDIUMINT), '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 -99999999999999999999999999999999999999999999999999;
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
DROP TABLE t0;
REINDEX;
DELETE FROM t0 WHERE 1 RETURNING *;
UPDATE t0 SET z = '' WHERE z BETWEEN 0 AND 100;
SELECT * FROM t0 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
SELECT * FROM t1 WHERE b NOT IN (SELECT b FROM t1);
DETACH DATABASE aux34;
SELECT * FROM t1 AS a FULL OUTER JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r5353;
ALTER TABLE t1 RENAME TO t1_r3388;
PRAGMA short_column_names = YES;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
SELECT COUNT(*) FROM t1;
CREATE TRIGGER IF NOT EXISTS trg_t0_3641 AFTER UPDATE ON t0 BEGIN SELECT RAISE(IGNORE); 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;
DETACH DATABASE aux96;
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
WITH RECURSIVE multi(a, b) AS (VALUES(1, 1.0) UNION ALL SELECT a+1, b*0.5 FROM multi WHERE a<38) SELECT * FROM multi;
.eqp off
PRAGMA count_changes = '|';
ATTACH DATABASE ':memory:' AS aux96;
ATTACH DATABASE ':memory:' AS aux34;
CREATE TEMPORARY TABLE t0(x, y, z);
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST(unicode('你好') AS MEDIUMINT), '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 -99999999999999999999999999999999999999999999999999;
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
DROP TABLE t0;
REINDEX;
DELETE FROM t0 WHERE 1 RETURNING *;
UPDATE t0 SET z = '' WHERE z BETWEEN 0 AND 100;
SELECT * FROM t0 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
SELECT * FROM t1 WHERE b NOT IN (SELECT b FROM t1);
DETACH DATABASE aux34;
SELECT * FROM t1 AS a FULL OUTER JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r5353;
ALTER TABLE t1 RENAME TO t1_r3388;
PRAGMA short_column_names = YES;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
SELECT COUNT(*) FROM t1;
CREATE TRIGGER IF NOT EXISTS trg_t0_3641 AFTER UPDATE ON t0 BEGIN SELECT RAISE(IGNORE); 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;
DETACH DATABASE aux96;
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
WITH RECURSIVE multi(a, b) AS (VALUES(1, 1.0) UNION ALL SELECT a+1, b*0.5 FROM multi WHERE a<38) SELECT * FROM multi;
.eqp off
PRAGMA count_changes = '|';
ATTACH DATABASE ':memory:' AS aux96;
ATTACH DATABASE ':memory:' AS aux34;
CREATE TEMPORARY TABLE t0(x, y, z);
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST(unicode('你好') AS MEDIUMINT), '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 -99999999999999999999999999999999999999999999999999;
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
DROP TABLE t0;
REINDEX;
DELETE FROM t0 WHERE 1 RETURNING *;
UPDATE t0 SET z = '' WHERE z BETWEEN 0 AND 100;
SELECT * FROM t0 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
SELECT * FROM t1 WHERE b NOT IN (SELECT b FROM t1);
DETACH DATABASE aux34;
SELECT * FROM t1 AS a FULL OUTER JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r5353;
ALTER TABLE t1 RENAME TO t1_r3388;
PRAGMA short_column_names = YES;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
SELECT COUNT(*) FROM t1;
CREATE TRIGGER IF NOT EXISTS trg_t0_3641 AFTER UPDATE ON t0 BEGIN SELECT RAISE(IGNORE); 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;
DETACH DATABASE aux96;
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
WITH RECURSIVE multi(a, b) AS (VALUES(1, 1.0) UNION ALL SELECT a+1, b*0.5 FROM multi WHERE a<38) SELECT * FROM multi;
.eqp off
PRAGMA count_changes = '|';
ATTACH DATABASE ':memory:' AS aux96;
ATTACH DATABASE ':memory:' AS aux34;
CREATE TEMPORARY TABLE t0(x, y, z);
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST(unicode('你好') AS MEDIUMINT), '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 -99999999999999999999999999999999999999999999999999;
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
DROP TABLE t0;
REINDEX;
DELETE FROM t0 WHERE 1 RETURNING *;
UPDATE t0 SET z = '' WHERE z BETWEEN 0 AND 100;
SELECT * FROM t0 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
SELECT * FROM t1 WHERE b NOT IN (SELECT b FROM t1);
DETACH DATABASE aux34;
SELECT * FROM t1 AS a FULL OUTER JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r5353;
ALTER TABLE t1 RENAME TO t1_r3388;
PRAGMA short_column_names = YES;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
SELECT COUNT(*) FROM t1;
CREATE TRIGGER IF NOT EXISTS trg_t0_3641 AFTER UPDATE ON t0 BEGIN SELECT RAISE(IGNORE); 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;
DETACH DATABASE aux96;
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
WITH RECURSIVE multi(a, b) AS (VALUES(1, 1.0) UNION ALL SELECT a+1, b*0.5 FROM multi WHERE a<38) SELECT * FROM multi;
.eqp off
PRAGMA count_changes = '|';
ATTACH DATABASE ':memory:' AS aux96;
ATTACH DATABASE ':memory:' AS aux34;
CREATE TEMPORARY TABLE t0(x, y, z);
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST(unicode('你好') AS MEDIUMINT), '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 -99999999999999999999999999999999999999999999999999;
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
DROP TABLE t0;
REINDEX;
DELETE FROM t0 WHERE 1 RETURNING *;
UPDATE t0 SET z = '' WHERE z BETWEEN 0 AND 100;
SELECT * FROM t0 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
SELECT * FROM t1 WHERE b NOT IN (SELECT b FROM t1);
DETACH DATABASE aux34;
SELECT * FROM t1 AS a FULL OUTER JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r5353;
ALTER TABLE t1 RENAME TO t1_r3388;
PRAGMA short_column_names = YES;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
SELECT COUNT(*) FROM t1;
CREATE TRIGGER IF NOT EXISTS trg_t0_3641 AFTER UPDATE ON t0 BEGIN SELECT RAISE(IGNORE); 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;
DETACH DATABASE aux96;
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
WITH RECURSIVE multi(a, b) AS (VALUES(1, 1.0) UNION ALL SELECT a+1, b*0.5 FROM multi WHERE a<38) SELECT * FROM multi;
.eqp off
PRAGMA count_changes = '|';
ATTACH DATABASE ':memory:' AS aux96;
ATTACH DATABASE ':memory:' AS aux34;
CREATE TEMPORARY TABLE t0(x, y, z);
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST(unicode('你好') AS MEDIUMINT), '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 -99999999999999999999999999999999999999999999999999;
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
DROP TABLE t0;
REINDEX;
DELETE FROM t0 WHERE 1 RETURNING *;
UPDATE t0 SET z = '' WHERE z BETWEEN 0 AND 100;
SELECT * FROM t0 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
SELECT * FROM t1 WHERE b NOT IN (SELECT b FROM t1);
DETACH DATABASE aux34;
SELECT * FROM t1 AS a FULL OUTER JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r5353;
ALTER TABLE t1 RENAME TO t1_r3388;
PRAGMA short_column_names = YES;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
SELECT COUNT(*) FROM t1;
CREATE TRIGGER IF NOT EXISTS trg_t0_3641 AFTER UPDATE ON t0 BEGIN SELECT RAISE(IGNORE); 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;
DETACH DATABASE aux96;
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
WITH RECURSIVE multi(a, b) AS (VALUES(1, 1.0) UNION ALL SELECT a+1, b*0.5 FROM multi WHERE a<38) SELECT * FROM multi;
VACUUM main;
CREATE INDEX IF NOT EXISTS idx_t1_5312 ON t1(d) WHERE d > 0;
PRAGMA empty_result_callbacks = ON;
REINDEX t0;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t0_7893 ON t0(lower(x)) WHERE x > 0;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_2600 ON t1(b) WHERE b > 0;
ALTER TABLE t0 RENAME COLUMN z TO z_r9903;
ROLLBACK TO sp3272;
RELEASE sp3272;
SELECT * FROM t1 WHERE c IN (SELECT c FROM t1 LIMIT 0);
VACUUM;
SELECT SUM(y) FILTER (WHERE 1=0) OVER (ORDER BY y RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t0;
VACUUM main;
CREATE TABLE `T` (
A VARCHAR(20),
B VARCHAR(30),
C VARCHAR(30),
PRIMARY KEY (A, B),
UNIQUE (A, C)
);
INSERT INTO T VALUES ('a', 'p', 'x');
INSERT INTO T VALUES ('a', 'q', 'y');
INSERT INTO T VALUES ('b', 'p', 'z');
INSERT INTO T VALUES ('c', 'r', 'w');
INSERT INTO T VALUES ('d', 's', 'v');
SELECT A, COUNT(DISTINCT B) AS D FROM T GROUP BY A HAVING COUNT(DISTINCT B) >= 1;
CREATE INDEX IF NOT EXISTS idx_T_3768 ON T(lower(B));
DELETE FROM T WHERE 0;
CREATE TRIGGER IF NOT EXISTS trg_T_6223 BEFORE UPDATE ON T BEGIN INSERT INTO T(B) VALUES (NULL); END;
PRAGMA integrity_check;
INSERT INTO t1 VALUES ('x', 'x', 'x', 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
DETACH DATABASE aux26;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_2309 ON t1(lower(c)) WHERE c > 0;
ANALYZE;
ALTER TABLE T DROP COLUMN A;
RELEASE sp5011;
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;
CREATE TRIGGER IF NOT EXISTS trg_T_9509 AFTER UPDATE OF B ON T FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END;
SAVEPOINT sp5011;
ATTACH DATABASE ':memory:' AS aux26;
SAVEPOINT sp3272;
PRAGMA ignore_check_constraints = NO;
.eqp off
PRAGMA count_changes = '|';
ATTACH DATABASE ':memory:' AS aux96;
ATTACH DATABASE ':memory:' AS aux34;
CREATE TEMPORARY TABLE t0(x, y, z);
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST(unicode('你好') AS MEDIUMINT), 'Wernher', if(min(-9223372036854775809, '2', 3), 10, 0, 10, 0, 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
SELECT -99999999999999999999999999999999999999999999999999;
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
DROP TABLE t0;
REINDEX;
DELETE FROM t0 WHERE 1 RETURNING *;
UPDATE t0 SET z = '' WHERE z BETWEEN 0 AND 100;
SELECT * FROM t0 AS a FULL OUTER joIN t1 AS b ON a.rowid = b.rowid;
SELECT * FROM t1 WHERE b NOT IN (SELECT b FROM t1);
DETACH DATABASE aux34;
SELECT * FROM t1 AS a FULL OUTER JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r5353;
ALTER TABLE t1 RENAME TO t1_r3388;
PRAGMA short_column_names = YES;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
SELECT COUNT(*) FROM t1;
CREATE TRIGGER IF NOT EXISTS trg_t0_3641 AFTER UPDATE ON t0 BEGIN SELECT RAISE(IGNORE); 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;
DETACH DATABASE aux96;
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
WITH RECURSIVE multi(a, b) AS (VALUES(1, 1.0) UNION ALL SELECT a+1, b*0.5 FROM multi WHERE a<38) SELECT * FROM multi;
.eqp off
PRAGMA count_changes = '|';
ATTACH DATABASE ':memory:' AS aux96;
ATTACH DATABASE ':memory:' AS aux34;
CREATE TEMPORARY TABLE t0(x, y, z);
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST(unicode('你好') AS MEDIUMINT), '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 -99999999999999999999999999999999999999999999999999;
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
DROP TABLE t0;
REINDEX;
DELETE FROM t0 WHERE 1 RETURNING *;
UPDATE t0 SET z = '' WHERE z BETWEEN 0 AND 100;
SELECT * FROM t0 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
SELECT * FROM t1 WHERE b NOT IN (SELECT b FROM t1);
DETACH DATABASE aux34;
SELECT * FROM t1 AS a FULL OUTER JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r5353;
ALTER TABLE t1 RENAME TO t1_r3388;
PRAGMA short_column_names = YES;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
SELECT COUNT(*) FROM t1;
CREATE TRIGGER IF NOT EXISTS trg_t0_3641 AFTER UPDATE ON t0 BEGIN SELECT RAISE(IGNORE); 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;
DETACH DATABASE aux96;
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
WITH RECURSIVE multi(a, b) AS (VALUES(1, 1.0) UNION ALL SELECT a+1, b*0.5 FROM multi WHERE a<38) SELECT * FROM multi;
.eqp off
PRAGMA count_changes = '|';
ATTACH DATABASE ':memory:' AS aux96;
ATTACH DATABASE ':memory:' AS aux34;
CREATE TEMPORARY TABLE t0(x, y, z);
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST(unicode('你好') AS MEDIUMINT), '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 -99999999999999999999999999999999999999999999999999;
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
DROP TABLE t0;
REINDEX;
DELETE FROM t0 WHERE 1 RETURNING *;
UPDATE t0 SET z = '' WHERE z BETWEEN 0 AND 100;
SELECT * FROM t0 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
SELECT * FROM t1 WHERE b NOT IN (SELECT b FROM t1);
DETACH DATABASE aux34;
SELECT * FROM t1 AS a FULL OUTER JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r5353;
ALTER TABLE t1 RENAME TO t1_r3388;
PRAGMA short_column_names = YES;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
SELECT COUNT(*) FROM t1;
CREATE TRIGGER IF NOT EXISTS trg_t0_3641 AFTER UPDATE ON t0 BEGIN SELECT RAISE(IGNORE); 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;
DETACH DATABASE aux96;
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
WITH RECURSIVE multi(a, b) AS (VALUES(1, 1.0) UNION ALL SELECT a+1, b*0.5 FROM multi WHERE a<38) SELECT * FROM multi;
.eqp off
PRAGMA count_changes = '|';
ATTACH DATABASE ':memory:' AS aux96;
ATTACH DATABASE ':memory:' AS aux34;
CREATE TEMPORARY TABLE t0(x, y, z);
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST(unicode('你好') AS MEDIUMINT), '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 -99999999999999999999999999999999999999999999999999;
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
DROP TABLE t0;
REINDEX;
DELETE FROM t0 WHERE 1 RETURNING *;
UPDATE t0 SET z = '' WHERE z BETWEEN 0 AND 100;
SELECT * FROM t0 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
SELECT * FROM t1 WHERE b NOT IN (SELECT b FROM t1);
DETACH DATABASE aux34;
SELECT * FROM t1 AS a FULL OUTER JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r5353;
ALTER TABLE t1 RENAME TO t1_r3388;
PRAGMA short_column_names = YES;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
SELECT COUNT(*) FROM t1;
CREATE TRIGGER IF NOT EXISTS trg_t0_3641 AFTER UPDATE ON t0 BEGIN SELECT RAISE(IGNORE); 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;
DETACH DATABASE aux96;
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
WITH RECURSIVE multi(a, b) AS (VALUES(1, 1.0) UNION ALL SELECT a+1, b*0.5 FROM multi WHERE a<38) SELECT * FROM multi;
.eqp off
PRAGMA count_changes = '|';
ATTACH DATABASE ':memory:' AS aux96;
ATTACH DATABASE ':memory:' AS aux34;
CREATE TEMPORARY TABLE t0(x, y, z);
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST(unicode('你好') AS MEDIUMINT), '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 -99999999999999999999999999999999999999999999999999;
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
DROP TABLE t0;
REINDEX;
DELETE FROM t0 WHERE 1 RETURNING *;
UPDATE t0 SET z = '' WHERE z BETWEEN 0 AND 100;
SELECT * FROM t0 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
SELECT * FROM t1 WHERE b NOT IN (SELECT b FROM t1);
DETACH DATABASE aux34;
SELECT * FROM t1 AS a FULL OUTER JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r5353;
ALTER TABLE t1 RENAME TO t1_r3388;
PRAGMA short_column_names = YES;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
SELECT COUNT(*) FROM t1;
CREATE TRIGGER IF NOT EXISTS trg_t0_3641 AFTER UPDATE ON t0 BEGIN SELECT RAISE(IGNORE); 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;
DETACH DATABASE aux96;
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
WITH RECURSIVE multi(a, b) AS (VALUES(1, 1.0) UNION ALL SELECT a+1, b*0.5 FROM multi WHERE a<38) SELECT * FROM multi;
.eqp off
PRAGMA count_changes = '|';
ATTACH DATABASE ':memory:' AS aux96;
ATTACH DATABASE ':memory:' AS aux34;
CREATE TEMPORARY TABLE t0(x, y, z);
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST(unicode('你好') AS MEDIUMINT), '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 -99999999999999999999999999999999999999999999999999;
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
DROP TABLE t0;
REINDEX;
DELETE FROM t0 WHERE 1 RETURNING *;
UPDATE t0 SET z = '' WHERE z BETWEEN 0 AND 100;
SELECT * FROM t0 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
SELECT * FROM t1 WHERE b NOT IN (SELECT b FROM t1);
DETACH DATABASE aux34;
SELECT * FROM t1 AS a FULL OUTER JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r5353;
ALTER TABLE t1 RENAME TO t1_r3388;
PRAGMA short_column_names = YES;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
SELECT COUNT(*) FROM t1;
CREATE TRIGGER IF NOT EXISTS trg_t0_3641 AFTER UPDATE ON t0 BEGIN SELECT RAISE(IGNORE); 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;
DETACH DATABASE aux96;
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
WITH RECURSIVE multi(a, b) AS (VALUES(1, 1.0) UNION ALL SELECT a+1, b*0.5 FROM multi WHERE a<38) SELECT * FROM multi;
.eqp off
PRAGMA count_changes = '|';
ATTACH DATABASE ':memory:' AS aux96;
ATTACH DATABASE ':memory:' AS aux34;
CREATE TEMPORARY TABLE t0(x, y, z);
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST(unicode('你好') AS MEDIUMINT), '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 -99999999999999999999999999999999999999999999999999;
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
DROP TABLE t0;
REINDEX;
DELETE FROM t0 WHERE 1 RETURNING *;
UPDATE t0 SET z = '' WHERE z BETWEEN 0 AND 100;
SELECT * FROM t0 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
SELECT * FROM t1 WHERE b NOT IN (SELECT b FROM t1);
DETACH DATABASE aux34;
SELECT * FROM t1 AS a FULL OUTER JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r5353;
ALTER TABLE t1 RENAME TO t1_r3388;
PRAGMA short_column_names = YES;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
SELECT COUNT(*) FROM t1;
CREATE TRIGGER IF NOT EXISTS trg_t0_3641 AFTER UPDATE ON t0 BEGIN SELECT RAISE(IGNORE); 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;
DETACH DATABASE aux96;
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
WITH RECURSIVE multi(a, b) AS (VALUES(1, 1.0) UNION ALL SELECT a+1, b*0.5 FROM multi WHERE a<38) SELECT * FROM multi;
VACUUM main;
CREATE INDEX IF NOT EXISTS idx_t1_5312 ON t1(d) WHERE d > 0;
PRAGMA empty_result_callbacks = ON;
REINDEX t0;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t0_7893 ON t0(lower(x)) WHERE x > 0;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_2600 ON t1(b) WHERE b > 0;
ALTER TABLE t0 RENAME COLUMN z TO z_r9903;
ROLLBACK TO sp3272;
RELEASE sp3272;
SELECT * FROM t1 WHERE c IN (SELECT c FROM t1 LIMIT 0);
VACUUM;
SELECT SUM(y) FILTER (WHERE 1=0) OVER (ORDER BY y RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t0;
VACUUM main;
CREATE TABLE T (
A VARCHAR(20),
B VARCHAR(30),
C VARCHAR(30),
PRIMARY KEY (A, B),
UNIQUE (A, C)
);
INSERT INTO T VALUES ('a', 'p', 'x');
INSERT INTO T VALUES ('a', 'q', 'y');
INSERT INTO T VALUES ('b', 'p', 'z');
INSERT INTO T VALUES ('c', 'r', 'w');
INSERT INTO T VALUES ('d', 's', 'v');
SELECT A, COUNT(DISTINCT B) AS D FROM T GROUP BY A HAVING COUNT(DISTINCT B) >= 1;
CREATE INDEX IF NOT EXISTS idx_T_3768 ON T(lower(B));
DELETE FROM T WHERE 0;
CREATE TRIGGER IF NOT EXISTS trg_T_6223 BEFORE UPDATE ON T BEGIN INSERT INTO T(B) VALUES (NULL); END;
PRAGMA integrity_check;
INSERT INTO t1 VALUES ('x', 'x', 'x', 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
DETACH DATABASE aux26;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_2309 ON t1(lower(c)) WHERE c > 0;
ANALYZE;
ALTER TABLE T DROP COLUMN A;
RELEASE sp5011;
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;
CREATE TRIGGER IF NOT EXISTS trg_T_9509 AFTER UPDATE OF B ON T FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END;
VACUUM;
DROP TRIGGER IF EXISTS T;
SELECT COUNT(*) FROM T;
SELECT * FROM T;
UPDATE t1 SET b = -83 WHERE b IS NOT NULL RETURNING *;
INSERT OR FAIL INTO t0 VALUES ('', 3, 0);
RELEASE sp1689;
SELECT COUNT(*) FILTER (WHERE y IS NOT NULL), SUM(rowid) FILTER (WHERE y > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(y) FILTER (WHERE y > 0 AND y < 100), COUNT(*) FILTER (WHERE typeof(y) = "text") FROM t0;
```
## Actual output
```sql
ok
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,59 @@
## 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 aux56;
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 ignore_check_constraints = 0;
DETACH DATABASE aux56;
INSERT INTO t1 SELECT * 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
```
-deserialize
```
@@ -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
PRAGMA fullfsync;
PRAGMA automatic_index = ON;
PRAGMA wal_checkpoint;
.tables
CREATE TABLE t1(c1);
INSERT INTO t1 VALUES(if(1, 12, 0, 12, 0, 12, 12)),(123),(1234),(NULL),('abc');
CREATE TABLE t2(c2);
INSERT INTO t2 VALUES(44),(55),(123);
CREATE TABLE t3(c3,c4);
INSERT INTO t3 VALUES(66,1),(123,2),(77,3);
CREATE VIEW t4 AS SELECT c3 FROM t3;
CREATE VIEW t5 AS SELECT c3 FROM t3 ORDER BY c4;
SELECT * FROM t1, t2 WHERE c1=(SELECT 123 INTERSECT SELECT c2 FROM t4) AND c1=123;
SELECT * FROM t1, t2 WHERE c1=(SELECT 123 INTERSECT SELECT c2 FROM t5) AND c1=123;
SELECT COUNT(*) FROM t1;
ANALYZE;
```
## Actual output
```sql
0
0|-1|-1
0
```
## Expectation
```sql
```
## Flag
```
-batch
```
@@ -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
ATTACH DATABASE ':memory:' AS aux85;
.auth ON
BEGIN IMMEDIATE TRANSACTION;
.tables non_existent_table
CREATE TABLE T (
a INTEGER,
b TEXT,
c INTEGER
);
INSERT INTO T VALUES ((like('%lower%', jsonb_insert(0, '$.key', 0)) + 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 cache_spill = 0;
CREATE TABLE main.artists (id integer NOT NULL PRIMARY KEY AUTOINCREMENT, name varchar(255));
CREATE TABLE albums ( id integer NOT NULL PRIMARY KEY AUTOINCREMENT, name varchar(255), artist_id integer REFERENCES artists);
INSERT INTO artists (name) VALUES ('Ar');
INSERT INTO albums (name, artist_id) VALUES ('Al', 1);
SELECT artists.* FROM artists INNER JOIN artists AS b ON (b.id = artists.id) WHERE (artists.id IN ( SELECT albums.artist_id FROM albums WHERE ((name = 'Al') AND (albums.artist_id IS NOT NULL) AND (albums.id IN ( SELECT id FROM ( SELECT albums.id, row_number() OVER (PARTITION BY /**/ albums.artist_id ORDER BY name) AS x FROM albums WHERE (name = 'Al') ) AS t1 WHERE (x = 1) )) AND (albums.id IN (1, 2))) ));
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
ANALYZE;
REINDEX albums;
REINDEX artists;
SELECT AVG(id) FROM artists;
ALTER TABLE t1 DROP COLUMN c;
DELETE FROM t1 WHERE 0 RETURNING *;
SELECT AVG(b) FROM t1;
CREATE TRIGGER IF NOT EXISTS trg_T_5677 BEFORE UPDATE ON T FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END;
WITH cte AS (SELECT a, COUNT(*) AS cnt FROM t1 GROUP BY a) SELECT * FROM cte WHERE cnt > 1;
INSERT INTO t1 SELECT * FROM t1;
UPDATE albums SET artist_id = artist_id + 1 WHERE artist_id IS NOT NULL RETURNING *;
END;
SELECT DENSE_RANK() OVER (PARTITION BY a ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
VACUUM main;
INSERT INTO albums VALUES (NULL, NULL, NULL) ON CONFLICT(id) DO UPDATE SET id = excluded.id, name = excluded.name, artist_id = excluded.artist_id;
SELECT * FROM T AS a FULL JOIN t1 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux85;
DROP TABLE IF EXISTS albums;
INSERT INTO albums VALUES (NULL, NULL, NULL);
```
## Actual output
```sql
authorizer: TRANSACTION "BEGIN" NULL NULL NULL
authorizer: PRAGMA "database_list" NULL NULL NULL
authorizer: SELECT NULL NULL NULL NULL
authorizer: READ "sqlite_master" "name" "aux85" NULL
authorizer: READ "sqlite_master" "type" "aux85" NULL
authorizer: FUNCTION NULL "like" NULL NULL
authorizer: READ "sqlite_master" "name" "aux85" NULL
authorizer: FUNCTION NULL "like" NULL NULL
authorizer: READ "sqlite_master" "name" "aux85" 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" "name" "main" NULL
authorizer: FUNCTION NULL "like" NULL NULL
authorizer: READ "sqlite_master" "name" "main" NULL
authorizer: SELECT NULL NULL NULL NULL
authorizer: SELECT NULL NULL NULL NULL
authorizer: SELECT NULL NULL NULL NULL
authorizer: READ "sqlite_master" "name" "aux85" NULL
authorizer: READ "sqlite_master" "type" "aux85" NULL
authorizer: FUNCTION NULL "like" NULL NULL
authorizer: READ "sqlite_master" "name" "aux85" NULL
authorizer: FUNCTION NULL "like" NULL NULL
authorizer: READ "sqlite_master" "name" "aux85" 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" "name" "main" NULL
authorizer: FUNCTION NULL "like" NULL NULL
authorizer: READ "sqlite_master" "name" "main" NULL
authorizer: SELECT NULL NULL NULL NULL
authorizer: SELECT 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: FUNCTION NULL "like" NULL NULL
authorizer: SELECT NULL NULL NULL NULL
authorizer: READ "T" "a" "main" "d"
authorizer: READ "T" "b" "main" "d"
authorizer: READ "T" "c" "main" "d"
authorizer: READ "T" "c" "main" "d"
authorizer: READ "T" "a" "main" "d"
authorizer: READ "T" "b" "main" "d"
authorizer: READ "T" "c" "main" "d"
authorizer: READ "T" "c" "main" "d"
authorizer: SELECT NULL NULL NULL "d"
authorizer: RECURSIVE NULL NULL NULL "d"
authorizer: SELECT NULL NULL NULL "d"
authorizer: SELECT NULL NULL NULL "d"
authorizer: PRAGMA "cache_spill" "0" NULL NULL
authorizer: INSERT "sqlite_master" NULL "main" NULL
authorizer: CREATE_TABLE "artists" 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 "sqlite_master" NULL "main" NULL
authorizer: CREATE_TABLE "sqlite_sequence" 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 "sqlite_master" NULL "main" NULL
authorizer: CREATE_TABLE "albums" 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 "artists" NULL "main" NULL
authorizer: INSERT "albums" NULL "main" NULL
authorizer: SELECT NULL NULL NULL NULL
authorizer: READ "artists" "id" "main" NULL
authorizer: READ "artists" "name" "main" NULL
authorizer: READ "albums" "artist_id" "main" NULL
authorizer: READ "albums" "name" "main" NULL
authorizer: READ "albums" "artist_id" "main" NULL
authorizer: READ "albums" "id" "main" NULL
authorizer: FUNCTION NULL "row_number" NULL NULL
authorizer: READ "albums" "artist_id" "main" NULL
authorizer: READ "albums" "name" "main" NULL
authorizer: READ "albums" "name" "main" NULL
authorizer: READ "albums" "id" "main" NULL
authorizer: READ "albums" "id" "main" NULL
authorizer: READ "artists" "id" "main" NULL
authorizer: READ "artists" "id" "main" NULL
authorizer: READ "artists" "id" "main" NULL
authorizer: READ "artists" "" NULL NULL
authorizer: SELECT NULL NULL NULL NULL
authorizer: SELECT NULL NULL NULL NULL
authorizer: SELECT NULL NULL NULL NULL
authorizer: SELECT NULL NULL NULL NULL
1|Ar
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
Wernher|10|1
von|20|2
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
Wernher|10
von|20
```
## Expectation
```sql
```
## Flag
```
```
@@ -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 journal_mode;
BEGIN DEFERRED TRANSACTION;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (asin(changes()), 'Wernher', length(instr(NULL, substr(if('', max(10, 1, 2, 3), 10), 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
.dbconfig fk on
.progress concat_ws(NULL, 'a', 'b')
ATTACH DATABASE '' || (':memory:') AS aux92;
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;
SELECT COUNT(*) FROM T;
VACUUM main;
DETACH DATABASE aux92;
ANALYZE T;
ANALYZE T;
DROP TABLE IF EXISTS T;
SELECT COUNT(*) FROM T;
DROP VIEW IF EXISTS T;
INSERT INTO T SELECT * FROM T;
PRAGMA cell_size_check = OFF;
INSERT INTO T VALUES (NULL, 1, 'x') ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
DROP TRIGGER IF EXISTS T;
ALTER TABLE T ADD COLUMN extra_8822 VARCHAR(255) DEFAULT CURRENT_TIMESTAMP;
SELECT LEAD(B) OVER (ORDER BY B ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T;
INSERT INTO T VALUES (NULL, NULL, NULL);
ALTER TABLE T RENAME TO T_r4159;
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;
COMMIT TRANSACTION;
UPDATE t1 SET c = c + 1 WHERE c BETWEEN 0 AND 100;
ALTER TABLE t1 ADD COLUMN extra_369 CLOB COLLATE RTRIM;
ALTER TABLE t1 RENAME TO t1_r8858;
SELECT * FROM t1 WHERE c IN (SELECT c FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE c IN (SELECT c FROM t1 LIMIT -1);
ALTER TABLE T RENAME TO T_r1073;
INSERT OR ROLLBACK INTO T VALUES ('x', 'x', NULL);
SELECT SUM(d) OVER (ORDER BY d ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM t1;
SELECT COUNT(*) FROM T;
ALTER TABLE T ADD COLUMN extra_6831 NCHAR(55) UNIQUE;
SELECT MAX(B) FROM T;
VACUUM;
ALTER TABLE T RENAME COLUMN B TO B_r5193;
```
## Actual output
```sql
memory
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
```
-nullvalue "NU11"
```
@@ -0,0 +1,366 @@
## 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 sp2208;
.eqp auto
CREATE TABLE T (
a TEXT,
b REAL
);
INSERT INTO T VALUES ('a',abs(json_valid(acos(9223372036854775806), 6))), ('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;
PRAGMA short_column_names = NO;
PRAGMA cell_size_check;
.parameter
ATTACH DATABASE ':memory:' AS aux30;
.log ON
SAVEPOINT sp6089;
ATTACH DATABASE '' || (':memory:') AS aux56;
CREATE TABLE main.t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (strftime('%s', format('%d', 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 ignore_check_constraints = 0;
DETACH DATABASE aux56;
INSERT INTO t1 SELECT * FROM t1;
PRAGMA recursive_triggers = OFF;
CREATE TRIGGER IF NOT EXISTS trg_t1_1212 AFTER UPDATE OF c ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
RELEASE sp6089;
CREATE TRIGGER IF NOT EXISTS trg_t1_4991 BEFORE UPDATE OF a ON t1 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
INSERT INTO t1 VALUES (1, 'x', 'x', 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
ALTER TABLE t1 ADD COLUMN extra_6256 CLOB DEFAULT '';
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<1) SELECT * FROM cnt;
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 t1 NATURAL JOIN t1;
ALTER TABLE t1 RENAME COLUMN d TO d_r9145;
INSERT OR FAIL INTO t1 VALUES ('x', 'x', '', -7);
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
UPDATE t1 SET d = d + 1 RETURNING *;
WITH RECURSIVE fib(a,b) AS (VALUES(1,1) UNION ALL SELECT b, a+b FROM fib WHERE b<1000) SELECT a FROM fib;
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;
INSERT INTO T1 VALUES ('x', 'x') ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
ALTER TABLE T1 DROP COLUMN A;
CREATE TEMP VIEW IF NOT EXISTS v_t1_7233 AS SELECT c FROM t1;
DETACH DATABASE aux30;
UPDATE T1 SET A = A + 1 WHERE rowid = 1;
INSERT INTO T1 SELECT * FROM T1;
CREATE TRIGGER IF NOT EXISTS trg_t1_9997 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DELETE FROM T1 WHERE 0;
INSERT INTO t1 DEFAULT VALUES;
ALTER TABLE T2 RENAME TO T2_r5714;
DELETE FROM T2 WHERE 1;
SELECT * FROM T2 WHERE Y > ALL (SELECT Y FROM T2);
SELECT * FROM T2;
ALTER TABLE T1 ADD COLUMN extra_1823 FLOAT UNIQUE;
WITH RECURSIVE fib(a,b,n) AS (VALUES(1,1,1) UNION ALL SELECT b, a+b, n+1 FROM fib WHERE n<95) SELECT a, n FROM fib;
SELECT COUNT(*) FROM T1;
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 T DROP COLUMN b;
INSERT INTO T1 DEFAULT VALUES;
SELECT COUNT(A) FILTER (WHERE A IS NOT NULL) OVER (PARTITION BY A ORDER BY A ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T2;
INSERT INTO t1 VALUES ('x', 'x', 1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
ALTER TABLE t1 DROP COLUMN b;
INSERT OR FAIL INTO T2 VALUES ('x', -9);
REINDEX;
REINDEX;
SELECT LAG(b, 0) OVER (ORDER BY b RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T;
SELECT SUM(Y) FROM T2;
UPDATE T SET A = NULL WHERE 1;
DELETE FROM t1 WHERE c > (SELECT AVG(c) FROM t1);
SELECT COUNT(*) FILTER (WHERE c IS NOT NULL), SUM(rowid) FILTER (WHERE c > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c) FILTER (WHERE c > 0 AND c < 100), COUNT(*) FILTER (WHERE typeof(c) = "text") FROM t1;
.eqp auto
CREATE TABLE T (
a TEXT,
b REAL
);
INSERT INTO T VALUES ('a',abs(json_valid(9223372036854775806, 6))), ('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;
PRAGMA short_column_names = NO;
PRAGMA cell_size_check;
.parameter
ATTACH DATABASE ':memory:' AS aux30;
.log ON
SAVEPOINT sp6089;
ATTACH DATABASE '' || (':memory:') AS aux56;
CREATE TABLE main.t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (strftime('%s', format('%d', 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 ignore_check_constraints = 0;
DETACH DATABASE aux56;
INSERT INTO t1 SELECT * FROM t1;
PRAGMA recursive_triggers = OFF;
CREATE TRIGGER IF NOT EXISTS trg_t1_1212 AFTER UPDATE OF c ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
RELEASE sp6089;
CREATE TRIGGER IF NOT EXISTS trg_t1_4991 BEFORE UPDATE OF a ON t1 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
INSERT INTO t1 VALUES (1, 'x', 'x', 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
ALTER TABLE t1 ADD COLUMN extra_6256 CLOB DEFAULT '';
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<1) SELECT * FROM cnt;
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 t1 NATURAL JOIN t1;
ALTER TABLE t1 RENAME COLUMN d TO d_r9145;
INSERT AND FAIL INTO t1 VALUES ('x', 'x', '', -7);
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
UPDATE t1 SET d = d + 1 RETURNING *;
WITH RECURSIVE fib(a,b) AS (VALUES(1,1) UNION ALL SELECT b, a+b FROM fib WHERE b<1000) SELECT a FROM fib;
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;
INSERT INTO T1 VALUES ('x', 'x') ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
ALTER TABLE T1 DROP COLUMN A;
CREATE TEMP VIEW IF NOT EXISTS v_t1_7233 AS SELECT c FROM t1;
DETACH DATABASE aux30;
UPDATE T1 SET A = A + 1 WHERE rowid = 1;
INSERT INTO T1 SELECT * FROM T1;
CREATE TRIGGER IF NOT EXISTS trg_t1_9997 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DELETE FROM T1 WHERE 0;
INSERT INTO t1 DEFAULT VALUES;
ALTER TABLE T2 RENAME TO T2_r5714;
DELETE FROM T2 WHERE 1;
SELECT * FROM T2 WHERE Y > ALL (SELECT Y FROM T2);
SELECT * FROM T2;
ALTER TABLE T1 ADD COLUMN extra_1823 FLOAT UNIQUE;
WITH RECURSIVE fib(a,b,n) AS (VALUES(1,1,1) UNION ALL SELECT b, a+b, n+1 FROM fib WHERE n<95) SELECT a, n FROM fib;
SELECT COUNT(*) FROM T1;
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 T DROP COLUMN b;
INSERT INTO T1 DEFAULT VALUES;
SELECT COUNT(A) FILTER (WHERE A IS NOT NULL) OVER (PARTITION BY A ORDER BY A ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T2;
INSERT INTO t1 VALUES ('x', 'x', 1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
ALTER TABLE t1 DROP COLUMN b;
INSERT OR FAIL INTO T2 VALUES ('x', -9);
REINDEX;
REINDEX;
SELECT LAG(b, 0) OVER (ORDER BY b RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T;
SELECT SUM(Y) FROM T2;
UPDATE T SET A = NULL WHERE 1;
DELETE FROM t1 WHERE c > (SELECT AVG(c) FROM t1);
SELECT COUNT(*) FILTER (WHERE c IS NOT NULL), SUM(rowid) FILTER (WHERE c > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c) FILTER (WHERE c > 0 AND c < 100), COUNT(*) FILTER (WHERE typeof(c) = "text") FROM t1;
.eqp auto
CREATE TABLE T (
a TEXT,
b REAL
);
INSERT INTO T VALUES ('a',abs(json_valid(9223372036854775806, 6))), ('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;
PRAGMA short_column_names = NO;
PRAGMA cell_size_check;
.parameter
ATTACH DATABASE ':memory:' AS aux30;
.log ON
SAVEPOINT sp6089;
ATTACH DATABASE '' || (':memory:') AS aux56;
CREATE TABLE main.t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (strftime('%s', format('%d', 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 ignore_check_constraints = 0;
DETACH DATABASE aux56;
INSERT INTO t1 SELECT * FROM t1;
PRAGMA recursive_triggers = OFF;
CREATE TRIGGER IF NOT EXISTS trg_t1_1212 AFTER UPDATE OF c ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
RELEASE sp6089;
CREATE TRIGGER IF NOT EXISTS trg_t1_4991 BEFORE UPDATE OF a ON t1 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
INSERT INTO t1 VALUES (1, 'x', 'x', 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
ALTER TABLE t1 ADD COLUMN extra_6256 CLOB DEFAULT '';
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<1) SELECT * FROM cnt;
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 t1 NATURAL JOIN t1;
ALTER TABLE t1 RENAME COLUMN d TO d_r9145;
INSERT AND FAIL INTO t1 VALUES ('x', 'x', '', -7);
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
UPDATE t1 SET d = d + 1 RETURNING *;
WITH RECURSIVE fib(a,b) AS (VALUES(1,1) UNION ALL SELECT b, a+b FROM fib WHERE b<1000) SELECT a FROM fib;
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;
INSERT INTO T1 VALUES ('x', 'x') ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
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;
ALTER TABLE T1 DROP COLUMN A;
CREATE TEMP VIEW IF NOT EXISTS v_t1_7233 AS SELECT c FROM t1;
DETACH DATABASE aux30;
UPDATE T1 SET A = A + 1 WHERE rowid = 1;
INSERT INTO T1 SELECT * FROM T1;
CREATE TRIGGER IF NOT EXISTS trg_t1_9997 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DELETE FROM T1 WHERE 0;
INSERT INTO t1 DEFAULT VALUES;
ALTER TABLE T2 RENAME TO T2_r5714;
DELETE FROM T2 WHERE 1;
SELECT * FROM T2 WHERE Y > ALL (SELECT Y FROM T2);
SELECT * FROM T2;
ALTER TABLE T1 ADD COLUMN extra_1823 FLOAT UNIQUE;
WITH RECURSIVE fib(a,b,n) AS (VALUES(1,1,1) UNION ALL SELECT b, a+b, n+1 FROM fib WHERE n<95) SELECT a, n FROM fib;
SELECT COUNT(*) FROM T1;
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 T DROP COLUMN b;
INSERT INTO T1 DEFAULT VALUES;
SELECT COUNT(A) FILTER (WHERE A IS NOT NULL) OVER (PARTITION BY A ORDER BY A ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T2;
INSERT INTO t1 VALUES ('x', 'x', 1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
ALTER TABLE t1 DROP COLUMN b;
INSERT OR FAIL INTO T2 VALUES ('x', -9);
REINDEX;
REINDEX;
SELECT LAG(b, 0) OVER (ORDER BY b RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T;
SELECT SUM(Y) FROM T2;
UPDATE T SET A = NULL WHERE 1;
DELETE FROM t1 WHERE c > (SELECT AVG(c) FROM t1);
SELECT COUNT(*) FILTER (WHERE c IS NOT NULL), SUM(rowid) FILTER (WHERE c > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c) FILTER (WHERE c > 0 AND c < 100), COUNT(*) FILTER (WHERE typeof(c) = "text") FROM t1;
ROLLBACK TO sp2208;
RELEASE sp2208;
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;
INSERT INTO T1 DEFAULT VALUES;
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 b, COUNT(*) FROM T2 GROUP BY b HAVING COUNT(*) = (SELECT COUNT(*) FROM T2);
ALTER TABLE T1 ADD COLUMN extra_4051 DECIMAL(10,5) DEFAULT NULL;
```
## Actual output
```sql
0
.parameter CMD ... Manage SQL parameter bindings
clear Erase all bindings
init Initialize the TEMP table that holds bindings
list List the current parameter bindings
set PARAMETER VALUE Given SQL parameter PARAMETER a value of VALUE
PARAMETER should start with one of: $ : @ ?
unset PARAMETER Remove PARAMETER from the binding table
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|-210866673600
von|20|2
Braun|30
Wernher|10
von|20
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,811 @@
## 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 = 1;
PRAGMA empty_result_callbacks = OFF;
CREATE TABLE T (
a INTEGER,
b TEXT,
c REAL
);
INSERT INTO T VALUES (tan(CAST(abs(0) AS DATE)),'a',1.25), (2,'b',-3.5), (3,'c',0.0);
SELECT * FROM T WHERE c < 2.0 ORDER BY c;
PRAGMA synchronous = '2';
PRAGMA vdbe_trace = NO;
.vfsinfo
PRAGMA secure_delete;
-- DATE
PRAGMA reverse_unordered_selects = ON;
.schema @@@@@@@@@@@@@@@@
.fullschema
PRAGMA auto_vacuum = INCREMENTAL;
PRAGMA recursive_triggers;
BEGIN IMMEDIATE TRANSACTION;
ATTACH DATABASE ':memory:' AS aux42;
SAVEPOINT sp664;
.read commands.sql
CREATE TABLE "t1"(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (round(unlikely(NULL), x'2f972a75f5d004ce366600'), 'Wernher', CAST(round(NULL, (-(-(if('', radians(timediff(coalesce(NULL, NULL, typeof(-json_array(7763360827777817353))), 1.7976931348623157e+308)), 2))) * 1)) AS FLOAT), 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;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
.quit
ATTACH DATABASE ':memory:' AS aux33;
ATTACH DATABASE ':memory:' AS aux74;
.nullvalue 232327d3-536b-41de-a764-a6301986aeab
CREATE TABLE [T] (
A VARCHAR(upper('你好')) PRIMARY KEY,
B VARCHAR(json_array()) NOT NULL,
C INTEGER,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', -degrees(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 NOT (C BETWEEN -1000 OR 1000) ORDER BY C ASC;
SELECT * FROM T;
PRAGMA vdbe_debug = 0;
ALTER TABLE T DROP COLUMN B;
CREATE TRIGGER IF NOT EXISTS trg_T_6262 AFTER UPDATe OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
CREATE TRIGGER IF NOT EXISTS trg_T_1635 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT AVG(C) FROM T;
ALTER TABLE T RENAME COLUMN B TO B_r9915;
DETACH DATABASE aux74;
DETACH DATABASE aux33;
SELECT * FROM t1 WHERE +a > ALL (SELECT a FROM t1);
DELETE FROM t1 WHERE 0;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, 0, -6, '');
CREATE TRIGGER IF NOT EXISTS trg_t1_7285 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DROP TRIGGER IF EXISTS t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
RELEASE sp664;
ALTER TABLE t1 ADD COLUMN extra_6969 DOUBLE NOT NULL DEFAULT 0;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1;
REINDEX;
SELECT STRING_AGG(d) FROM t1;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5722 AS SELECT a FROM t1;
ALTER TABLE t1 RENAME COLUMN c TO c_r6930;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1 AS a FULL JOIN t1 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux42;
ALTER TABLE t1 RENAME COLUMN d TO d_r1370;
SELECT * FROM t1 AS a JOIN t1 AS b ON a.rowid = b.rowid;
INSERT OR REPLACE INTO t1 VALUES (NULL, 0, -9, -5);
SELECT COUNT(*) FROM t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
REINDEX t1;
SELECT COUNT(*) FROM t1;
SELECT COUNT(*) FILTER (WHERE c IS NOT NULL), SUM(rowid) FILTER (WHERE +c > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c) FILTER (WHERE c > 0 AND c < 100), COUNT(*) FILTER (WHERE typeof(c) = "text") FROM t1;
UPDATE t1 SET d = CURRENT_TIMESTAMP WHERE d BETWEEN 0 AND 100;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
COMMIT;
INSERT INTO t1 SELECT * FROM t1;
DELETE FROM t1 WHERE 1 RETURNING *;
BEGIN IMMEDIATE TRANSACTION;
ATTACH DATABASE ':memory:' AS aux42;
SAVEPOINT sp664;
.read commands.sql
CREATE TABLE "t1"(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (round(unlikely(NULL), x'2f972a75f5d004ce366600'), 'Wernher', CAST(10 AS FLOAT), 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;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
.quit
ATTACH DATABASE ':memory:' AS aux33;
ATTACH DATABASE ':memory:' AS aux74;
.nullvalue 232327d3-536b-41de-a764-a6301986aeab
CREATE TABLE [T] (
A VARCHAR(upper('你好')) PRIMARY KEY,
B VARCHAR(json_array()) NOT NULL,
C INTEGER,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', -degrees(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 NOT (C BETWEEN -1000 AND 1000) ORDER BY C ASC;
SELECT * FROM T;
PRAGMA vdbe_debug = 0;
ALTER TABLE T DROP COLUMN B;
CREATE TRIGGER IF NOT EXISTS trg_T_6262 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
CREATE TRIGGER IF NOT EXISTS trg_T_1635 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT AVG(C) FROM T;
ALTER TABLE T RENAME COLUMN B TO B_r9915;
DETACH DATABASE aux74;
DETACH DATABASE aux33;
SELECT * FROM t1 WHERE +a > ALL (SELECT a FROM t1);
DELETE FROM t1 WHERE 0;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, 0, -6, '');
CREATE TRIGGER IF NOT EXISTS trg_t1_7285 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DROP TRIGGER IF EXISTS t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
RELEASE sp664;
ALTER TABLE t1 ADD COLUMN extra_6969 DOUBLE NOT NULL DEFAULT 0;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1;
REINDEX;
SELECT STRING_AGG(d) FROM t1;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5722 AS SELECT a FROM t1;
ALTER TABLE t1 RENAME COLUMN c TO c_r6930;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1 AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux42;
ALTER TABLE t1 RENAME COLUMN d TO d_r1370;
SELECT * FROM t1 AS a JOIN t1 AS b ON a.rowid = b.rowid;
INSERT OR REPLACE INTO t1 VALUES (NULL, 0, -9, -5);
SELECT COUNT(*) FROM t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
REINDEX t1;
SELECT COUNT(*) FROM t1;
SELECT COUNT(*) FILTER (WHERE c IS NOT NULL), SUM(rowid) FILTER (WHERE c > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c) FILTER (WHERE c > 0 AND c < 100), COUNT(*) FILTER (WHERE typeof(c) = "text") FROM t1;
UPDATE t1 SET d = CURRENT_TIMESTAMP WHERE d BETWEEN 0 AND 100;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
COMMIT;
INSERT INTO t1 SELECT * FROM t1;
DELETE FROM t1 WHERE 1 RETURNING *;
BEGIN IMMEDIATE TRANSACTION;
ATTACH DATABASE ':memory:' AS aux42;
SAVEPOINT sp664;
.read commands.sql
CREATE TABLE "t1"(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (round(unlikely(NULL), x'2f972a75f5d004ce366600'), 'Wernher', CAST(10 AS FLOAT), 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;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
.quit
ATTACH DATABASE ':memory:' AS aux33;
ATTACH DATABASE ':memory:' AS aux74;
.nullvalue 232327d3-536b-41de-a764-a6301986aeab
CREATE TABLE [T] (
A VARCHAR(upper('你好')) PRIMARY KEY,
B VARCHAR(json_array()) NOT NULL,
C INTEGER,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', -degrees(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 NOT (C BETWEEN -1000 AND 1000) ORDER BY C ASC;
SELECT * FROM T;
PRAGMA vdbe_debug = 0;
ALTER TABLE T DROP COLUMN B;
CREATE TRIGGER IF NOT EXISTS trg_T_6262 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
CREATE TRIGGER IF NOT EXISTS trg_T_1635 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT AVG(C) FROM T;
ALTER TABLE T RENAME COLUMN B TO B_r9915;
DETACH DATABASE aux74;
DETACH DATABASE aux33;
SELECT * FROM t1 WHERE +a > ALL (SELECT a FROM t1);
DELETE FROM t1 WHERE 0;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, 0, -6, '');
CREATE TRIGGER IF NOT EXISTS trg_t1_7285 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DROP TRIGGER IF EXISTS t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
RELEASE sp664;
ALTER TABLE t1 ADD COLUMN extra_6969 DOUBLE NOT NULL DEFAULT 0;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1;
REINDEX;
SELECT STRING_AGG(d) FROM t1;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5722 AS SELECT a FROM t1;
ALTER TABLE t1 RENAME COLUMN c TO c_r6930;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1 AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux42;
ALTER TABLE t1 RENAME COLUMN d TO d_r1370;
SELECT * FROM t1 AS a JOIN t1 AS b ON a.rowid = b.rowid;
INSERT OR REPLACE INTO t1 VALUES (NULL, 0, -9, -5);
SELECT COUNT(*) FROM t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
REINDEX t1;
SELECT COUNT(*) FROM t1;
SELECT COUNT(*) FILTER (WHERE c IS NOT NULL), SUM(rowid) FILTER (WHERE c > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c) FILTER (WHERE c > 0 AND c < 100), COUNT(*) FILTER (WHERE typeof(c) = "text") FROM t1;
UPDATE t1 SET d = CURRENT_TIMESTAMP WHERE d BETWEEN 0 AND 100;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
COMMIT;
INSERT INTO t1 SELECT * FROM t1;
DELETE FROM t1 WHERE 1 RETURNING *;
BEGIN IMMEDIATE TRANSACTION;
ATTACH DATABASE ':memory:' AS aux42;
SAVEPOINT sp664;
.read commands.sql
CREATE TABLE "t1"(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (round(unlikely(NULL), x'2f972a75f5d004ce366600'), 'Wernher', CAST(10 AS FLOAT), 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;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
.quit
ATTACH DATABASE ':memory:' AS aux33;
ATTACH DATABASE ':memory:' AS aux74;
.nullvalue 232327d3-536b-41de-a764-a6301986aeab
CREATE TABLE [T] (
A VARCHAR(upper('你好')) PRIMARY KEY,
B VARCHAR(json_array()) NOT NULL,
C INTEGER,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', -degrees(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 NOT (C BETWEEN -1000 AND 1000) ORDER BY C ASC;
SELECT * FROM T;
PRAGMA vdbe_debug = 0;
ALTER TABLE T DROP COLUMN B;
CREATE TRIGGER IF NOT EXISTS trg_T_6262 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
CREATE TRIGGER IF NOT EXISTS trg_T_1635 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT AVG(C) FROM T;
ALTER TABLE T RENAME COLUMN B TO B_r9915;
DETACH DATABASE aux74;
DETACH DATABASE aux33;
SELECT * FROM t1 WHERE +a > ALL (SELECT a FROM t1);
DELETE FROM t1 WHERE 0;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, 0, -6, '');
CREATE TRIGGER IF NOT EXISTS trg_t1_7285 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DROP TRIGGER IF EXISTS t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
RELEASE sp664;
ALTER TABLE t1 ADD COLUMN extra_6969 DOUBLE NOT NULL DEFAULT 0;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1;
REINDEX;
SELECT STRING_AGG(d) FROM t1;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5722 AS SELECT a FROM t1;
ALTER TABLE t1 RENAME COLUMN c TO c_r6930;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1 AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux42;
ALTER TABLE t1 RENAME COLUMN d TO d_r1370;
SELECT * FROM t1 AS a JOIN t1 AS b ON a.rowid = b.rowid;
INSERT OR REPLACE INTO t1 VALUES (NULL, 0, -9, -5);
SELECT COUNT(*) FROM t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
REINDEX t1;
SELECT COUNT(*) FROM t1;
SELECT COUNT(*) FILTER (WHERE c IS NOT NULL), SUM(rowid) FILTER (WHERE c > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c) FILTER (WHERE c > 0 AND c < 100), COUNT(*) FILTER (WHERE typeof(c) = "text") FROM t1;
UPDATE t1 SET d = CURRENT_TIMESTAMP WHERE d BETWEEN 0 AND 100;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
COMMIT;
INSERT INTO t1 SELECT * FROM t1;
DELETE FROM t1 WHERE 1 RETURNING *;
BEGIN IMMEDIATE TRANSACTION;
ATTACH DATABASE ':memory:' AS aux42;
SAVEPOINT sp664;
.read commands.sql
CREATE TABLE "t1"(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (round(unlikely(NULL), x'2f972a75f5d004ce366600'), 'Wernher', CAST(10 AS FLOAT), 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;
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;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
.quit
ATTACH DATABASE ':memory:' AS aux33;
ATTACH DATABASE ':memory:' AS aux74;
.nullvalue 232327d3-536b-41de-a764-a6301986aeab
CREATE TABLE [T] (
A VARCHAR(upper('你好')) PRIMARY KEY,
B VARCHAR(json_array()) NOT NULL,
C INTEGER,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', -degrees(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 NOT (C BETWEEN -1000 AND 1000) ORDER BY C ASC;
SELECT * FROM T;
PRAGMA vdbe_debug = 0;
ALTER TABLE T DROP COLUMN B;
CREATE TRIGGER IF NOT EXISTS trg_T_6262 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
CREATE TRIGGER IF NOT EXISTS trg_T_1635 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT AVG(C) FROM T;
ALTER TABLE T RENAME COLUMN B TO B_r9915;
DETACH DATABASE aux74;
DETACH DATABASE aux33;
SELECT * FROM t1 WHERE +a > ALL (SELECT a FROM t1);
DELETE FROM t1 WHERE 0;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, 0, -6, '');
CREATE TRIGGER IF NOT EXISTS trg_t1_7285 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DROP TRIGGER IF EXISTS t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
RELEASE sp664;
ALTER TABLE t1 ADD COLUMN extra_6969 DOUBLE NOT NULL DEFAULT 0;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1;
REINDEX;
SELECT STRING_AGG(d) FROM t1;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5722 AS SELECT a FROM t1;
ALTER TABLE t1 RENAME COLUMN c TO c_r6930;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1 AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux42;
ALTER TABLE t1 RENAME COLUMN d TO d_r1370;
SELECT * FROM t1 AS a JOIN t1 AS b ON a.rowid = b.rowid;
INSERT OR REPLACE INTO t1 VALUES (NULL, 0, -9, -5);
SELECT COUNT(*) FROM t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
REINDEX t1;
SELECT COUNT(*) FROM t1;
SELECT COUNT(*) FILTER (WHERE c IS NOT NULL), SUM(rowid) FILTER (WHERE c > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c) FILTER (WHERE c > 0 AND c < 100), COUNT(*) FILTER (WHERE typeof(c) = "text") FROM t1;
UPDATE t1 SET d = CURRENT_TIMESTAMP WHERE d BETWEEN 0 AND 100;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
COMMIT;
INSERT INTO t1 SELECT * FROM t1;
DELETE FROM t1 WHERE 1 RETURNING *;
BEGIN IMMEDIATE TRANSACTION;
ATTACH DATABASE ':memory:' AS aux42;
SAVEPOINT sp664;
.read commands.sql
CREATE TABLE "t1"(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (round(unlikely(NULL), x'2f972a75f5d004ce366600'), 'Wernher', CAST(10 AS FLOAT), 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;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
.quit
ATTACH DATABASE ':memory:' AS aux33;
ATTACH DATABASE ':memory:' AS aux74;
.nullvalue 232327d3-536b-41de-a764-a6301986aeab
CREATE TABLE [T] (
A VARCHAR(upper('你好')) PRIMARY KEY,
B VARCHAR(json_array()) NOT NULL,
C INTEGER,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', -degrees(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 NOT (C BETWEEN -1000 AND 1000) ORDER BY C ASC;
SELECT * FROM T;
PRAGMA vdbe_debug = 0;
ALTER TABLE T DROP COLUMN B;
CREATE TRIGGER IF NOT EXISTS trg_T_6262 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
CREATE TRIGGER IF NOT EXISTS trg_T_1635 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT AVG(C) FROM T;
ALTER TABLE T RENAME COLUMN B TO B_r9915;
DETACH DATABASE aux74;
DETACH DATABASE aux33;
SELECT * FROM t1 WHERE +a > ALL (SELECT a FROM t1);
DELETE FROM t1 WHERE 0;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, 0, -6, '');
CREATE TRIGGER IF NOT EXISTS trg_t1_7285 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DROP TRIGGER IF EXISTS t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
RELEASE sp664;
ALTER TABLE t1 ADD COLUMN extra_6969 DOUBLE NOT NULL DEFAULT 0;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1;
REINDEX;
SELECT STRING_AGG(d) FROM t1;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5722 AS SELECT a FROM t1;
ALTER TABLE t1 RENAME COLUMN c TO c_r6930;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1 AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux42;
ALTER TABLE t1 RENAME COLUMN d TO d_r1370;
SELECT * FROM t1 AS a JOIN t1 AS b ON a.rowid = b.rowid;
INSERT OR REPLACE INTO t1 VALUES (NULL, 0, -9, -5);
SELECT COUNT(*) FROM t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
REINDEX t1;
SELECT COUNT(*) FROM t1;
SELECT COUNT(*) FILTER (WHERE c IS NOT NULL), SUM(rowid) FILTER (WHERE c > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c) FILTER (WHERE c > 0 AND c < 100), COUNT(*) FILTER (WHERE typeof(c) = "text") FROM t1;
UPDATE t1 SET d = CURRENT_TIMESTAMP WHERE d BETWEEN 0 AND 100;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
COMMIT;
INSERT INTO t1 SELECT * FROM t1;
DELETE FROM t1 WHERE 1 RETURNING *;
BEGIN IMMEDIATE TRANSACTION;
ATTACH DATABASE ':memory:' AS aux42;
SAVEPOINT sp664;
.read commands.sql
CREATE TABLE "t1"(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (round(unlikely(NULL), x'2f972a75f5d004ce366600'), 'Wernher', CAST(10 AS FLOAT), 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;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
.quit
ATTACH DATABASE ':memory:' AS aux33;
ATTACH DATABASE ':memory:' AS aux74;
.nullvalue 232327d3-536b-41de-a764-a6301986aeab
CREATE TABLE [T] (
A VARCHAR(upper('你好')) PRIMARY KEY,
B VARCHAR(json_array()) NOT NULL,
C INTEGER,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', -degrees(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 NOT (C BETWEEN -1000 AND 1000) ORDER BY C ASC;
SELECT * FROM T;
PRAGMA vdbe_debug = 0;
ALTER TABLE T DROP COLUMN B;
CREATE TRIGGER IF NOT EXISTS trg_T_6262 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
CREATE TRIGGER IF NOT EXISTS trg_T_1635 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT AVG(C) FROM T;
ALTER TABLE T RENAME COLUMN B TO B_r9915;
DETACH DATABASE aux74;
DETACH DATABASE aux33;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
SELECT * FROM t1 WHERE +a > ALL (SELECT a FROM t1);
DELETE FROM t1 WHERE 0;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, 0, -6, '');
CREATE TRIGGER IF NOT EXISTS trg_t1_7285 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DROP TRIGGER IF EXISTS t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
RELEASE sp664;
ALTER TABLE t1 ADD COLUMN extra_6969 DOUBLE NOT NULL DEFAULT 0;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1;
REINDEX;
SELECT STRING_AGG(d) FROM t1;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5722 AS SELECT a FROM t1;
ALTER TABLE t1 RENAME COLUMN c TO c_r6930;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1 AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux42;
ALTER TABLE t1 RENAME COLUMN d TO d_r1370;
SELECT * FROM t1 AS a JOIN t1 AS b ON a.rowid = b.rowid;
INSERT OR REPLACE INTO t1 VALUES (NULL, 0, -9, -5);
SELECT COUNT(*) FROM t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
REINDEX t1;
SELECT COUNT(*) FROM t1;
SELECT COUNT(*) FILTER (WHERE c IS NOT NULL), SUM(rowid) FILTER (WHERE c > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c) FILTER (WHERE c > 0 AND c < 100), COUNT(*) FILTER (WHERE typeof(c) = "text") FROM t1;
UPDATE t1 SET d = CURRENT_TIMESTAMP WHERE d BETWEEN 0 AND 100;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
COMMIT;
INSERT INTO t1 SELECT * FROM t1;
DELETE FROM t1 WHERE 1 RETURNING *;
BEGIN IMMEDIATE TRANSACTION;
ATTACH DATABASE ':memory:' AS aux42;
SAVEPOINT sp664;
.read commands.sql
CREATE TABLE "t1"(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (round(unlikely(NULL), x'2f972a75f5d004ce366600'), 'Wernher', CAST(10 AS FLOAT), 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;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
.quit
ATTACH DATABASE ':memory:' AS aux33;
ATTACH DATABASE ':memory:' AS aux74;
.nullvalue 232327d3-536b-41de-a764-a6301986aeab
CREATE TABLE [T] (
A VARCHAR(upper('你好')) PRIMARY KEY,
B VARCHAR(json_array()) NOT NULL,
C INTEGER,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', -degrees(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 NOT (C BETWEEN -1000 AND 1000) ORDER BY C ASC;
SELECT * FROM T;
PRAGMA vdbe_debug = 0;
ALTER TABLE T DROP COLUMN B;
CREATE TRIGGER IF NOT EXISTS trg_T_6262 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
CREATE TRIGGER IF NOT EXISTS trg_T_1635 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT AVG(C) FROM T;
ALTER TABLE T RENAME COLUMN B TO B_r9915;
DETACH DATABASE aux74;
DETACH DATABASE aux33;
SELECT * FROM t1 WHERE +a > ALL (SELECT a FROM t1);
DELETE FROM t1 WHERE 0;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, 0, -6, '');
CREATE TRIGGER IF NOT EXISTS trg_t1_7285 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DROP TRIGGER IF EXISTS t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
RELEASE sp664;
ALTER TABLE t1 ADD COLUMN extra_6969 DOUBLE NOT NULL DEFAULT 0;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1;
REINDEX;
SELECT STRING_AGG(d) FROM t1;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5722 AS SELECT a FROM t1;
ALTER TABLE t1 RENAME COLUMN c TO c_r6930;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1 AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux42;
ALTER TABLE t1 RENAME COLUMN d TO d_r1370;
SELECT * FROM t1 AS a JOIN t1 AS b ON a.rowid = b.rowid;
INSERT OR REPLACE INTO t1 VALUES (NULL, 0, -9, -5);
SELECT COUNT(*) FROM t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
REINDEX t1;
SELECT COUNT(*) FROM t1;
SELECT COUNT(*) FILTER (WHERE c IS NOT NULL), SUM(rowid) FILTER (WHERE c > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c) FILTER (WHERE c > 0 AND c < 100), COUNT(*) FILTER (WHERE typeof(c) = "text") FROM t1;
UPDATE t1 SET d = CURRENT_TIMESTAMP WHERE d BETWEEN 0 AND 100;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
COMMIT;
INSERT INTO t1 SELECT * FROM t1;
DELETE FROM t1 WHERE 1 RETURNING *;
BEGIN IMMEDIATE TRANSACTION;
ATTACH DATABASE ':memory:' AS aux42;
SAVEPOINT sp664;
.read commands.sql
CREATE TABLE "t1"(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (round(unlikely(NULL), x'2f972a75f5d004ce366600'), 'Wernher', CAST(10 AS FLOAT), 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;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
.quit
ATTACH DATABASE ':memory:' AS aux33;
ATTACH DATABASE ':memory:' AS aux74;
.nullvalue 232327d3-536b-41de-a764-a6301986aeab
CREATE TABLE [T] (
A VARCHAR(upper('你好')) PRIMARY KEY,
B VARCHAR(json_array()) NOT NULL,
C INTEGER,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', -degrees(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 NOT (C BETWEEN -1000 AND 1000) ORDER BY C ASC;
SELECT * FROM T;
PRAGMA vdbe_debug = 0;
ALTER TABLE T DROP COLUMN B;
CREATE TRIGGER IF NOT EXISTS trg_T_6262 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
CREATE TRIGGER IF NOT EXISTS trg_T_1635 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT AVG(C) FROM T;
ALTER TABLE T RENAME COLUMN B TO B_r9915;
DETACH DATABASE aux74;
DETACH DATABASE aux33;
SELECT * FROM t1 WHERE +a > ALL (SELECT a FROM t1);
DELETE FROM t1 WHERE 0;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, 0, -6, '');
CREATE TRIGGER IF NOT EXISTS trg_t1_7285 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DROP TRIGGER IF EXISTS t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
RELEASE sp664;
ALTER TABLE t1 ADD COLUMN extra_6969 DOUBLE NOT NULL DEFAULT 0;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1;
REINDEX;
SELECT STRING_AGG(d) FROM t1;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5722 AS SELECT a FROM t1;
ALTER TABLE t1 RENAME COLUMN c TO c_r6930;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1 AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux42;
ALTER TABLE t1 RENAME COLUMN d TO d_r1370;
SELECT * FROM t1 AS a JOIN t1 AS b ON a.rowid = b.rowid;
INSERT OR REPLACE INTO t1 VALUES (NULL, 0, -9, -5);
SELECT COUNT(*) FROM t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
REINDEX t1;
SELECT COUNT(*) FROM t1;
SELECT COUNT(*) FILTER (WHERE c IS NOT NULL), SUM(rowid) FILTER (WHERE c > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c) FILTER (WHERE c > 0 AND c < 100), COUNT(*) FILTER (WHERE typeof(c) = "text") FROM t1;
UPDATE t1 SET d = CURRENT_TIMESTAMP WHERE d BETWEEN 0 AND 100;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
COMMIT;
INSERT INTO t1 SELECT * FROM t1;
DELETE FROM t1 WHERE 1 RETURNING *;
DELETE FROM t1 WHERE a > (SELECT AVG(a) FROM t1) RETURNING *;
ALTER TABLE t1 ADD COLUMN extra_1693 DOUBLE PRECISION COLLATE RTRIM;
INSERT INTO t1 VALUES (1, 1, 1, NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
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;
WITH cte(x, y) AS (VALUES(1,2),(3,4),(5,6)) SELECT * FROM cte;
SELECT * FROM t1 WHERE EXISTS (SELECT 1 FROM t1 WHERE a < 0);
SELECT COUNT(*) FROM t1;
SELECT * FROM t1 WHERE d = (SELECT d FROM t1 ORDER BY d LIMIT 1 OFFSET (SELECT COUNT(*) FROM t1 / 2));
CREATE TEMP VIEW IF NOT EXISTS v_t1_4538 AS SELECT a FROM t1;
UPDATE t1 SET b = '';
SELECT COUNT(*) FROM t1;
WITH cte AS (SELECT b, LEAD(b) OVER (ORDER BY b) AS nxt FROM t1) SELECT * FROM cte;
SELECT * FROM t1;
DROP INDEX IF EXISTS t1;
SELECT * FROM t1 AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
SELECT GROUP_CONCAT(a, '|') FROM t1;
WITH RECURSIVE tree(id, parent, depth) AS (VALUES(1, NULL, 0) UNION ALL SELECT id+1, id, depth+1 FROM tree WHERE depth<29) SELECT * FROM tree;
SELECT * FROM t1 WHERE d IN (SELECT d FROM t1 LIMIT 0);
INSERT INTO t1 SELECT * FROM t1;
SELECT * FROM t1;
INSERT OR FAIL INTO t1 VALUES ('', 'x', NULL, '');
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<38) SELECT SUM(x) FROM cnt;
INSERT INTO t1 DEFAULT VALUES;
INSERT OR ROLLBACK INTO t1 VALUES (-5, NULL, 'x', NULL);
CREATE INDEX IF NOT EXISTS idx_t1_2534 ON t1(lower(d)) WHERE d > 0;
CREATE TRIGGER IF NOT EXISTS trg_T_332 AFTER UPDATE OF a ON T BEGIN SELECT RAISE(IGNORE); END;
SELECT MIN(a) FROM T;
SELECT * FROM t1 WHERE c IN (SELECT c FROM t1 WHERE ROW_NUMBER() OVER (ORDER BY c) = 1);
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 T DROP COLUMN B;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
INSERT INTO T SELECT * FROM T;
SELECT GROUP_CONCAT(A) FROM T;
DROP INDEX IF EXISTS T;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
ALTER TABLE t1 RENAME TO t1_r1152;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
INSERT INTO t1 VALUES (1, 1, NULL, 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
INSERT INTO T VALUES (1, NULL) ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B;
SELECT * FROM T;
CREATE VIEW IF NOT EXISTS v_t1_4533 AS SELECT b FROM t1;
ALTER TABLE t1 RENAME TO t1_r2296;
DROP INDEX IF EXISTS T;
CREATE TABLE T (
a TEXT,
b TEXT,
c REAL
);
INSERT INTO T VALUES ('a','b',1.5), ('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 t1 VALUES ('x', NULL, 'x', 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
DROP TABLE IF EXISTS t1;
SELECT LEAD(c, c) OVER (PARTITION BY c ORDER BY c) FROM t1;
ALTER TABLE T ADD COLUMN extra_5216 NONE NOT NULL DEFAULT 0;
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;
SELECT COUNT(*) FROM T;
ALTER TABLE t1 DROP COLUMN b;
REINDEX t1;
ANALYZE;
SELECT * FROM t1 AS a LEFT JOIN T AS b ON a.rowid = b.rowid;
DROP TRIGGER IF EXISTS t1;
SELECT LAST_VALUE(d) OVER (ORDER BY d ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1;
INSERT INTO T DEFAULT VALUES;
WITH cte AS (SELECT d, LAG(d) OVER (ORDER BY d) AS prev FROM t1) SELECT * FROM cte;
INSERT INTO t1 VALUES (NULL, NULL, 1, NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<21), filtered AS (SELECT * FROM cnt WHERE x > 10) SELECT * FROM filtered;
INSERT OR ABORT INTO t1 VALUES (-6, 'x', 3, 'x');
PRAGMA case_sensitive_like = OFF;
UPDATE t1 SET a = CURRENT_TIMESTAMP WHERE 1 RETURNING *;
```
## Actual output
```sql
2,b,-3.5
3,c,0.0
0,a,1.25
vfs.zName = "unix"
vfs.iVersion = 3
vfs.szOsFile = 120
vfs.mxPathname = 512
0
CREATE TABLE T (
a INTEGER,
b TEXT,
c REAL
);
/* No STAT tables available */
0
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!
von,20,2
Braun,30,3
Braun,30
von,20
```
## Expectation
```sql
```
## Flag
```
-separator ","
```
@@ -0,0 +1,484 @@
## 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 sp5011;
ATTACH DATABASE ':memory:' AS aux26;
SAVEPOINT sp3272;
PRAGMA ignore_check_constraints = NO;
.eqp off
PRAGMA count_changes = '|';
ATTACH DATABASE ':memory:' AS aux96;
ATTACH DATABASE ':memory:' AS aux34;
CREATE TEMPORARY TABLE t0(x, y, z);
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST(unicode('你好') AS MEDIUMINT), 'Wernher', if(min(-9223372036854775809, '2', 3), 10, 0, 10, 0, 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
SELECT -99999999999999999999999999999999999999999999999999;
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
DROP TABLE t0;
REINDEX;
DELETE FROM t0 WHERE 1 RETURNING *;
UPDATE t0 SET z = '' WHERE z BETWEEN 0 AND 100;
SELECT * FROM t0 AS a FULL OUTER joIN t1 AS b ON a.rowid = b.rowid;
SELECT * FROM t1 WHERE b NOT IN (SELECT b FROM t1);
DETACH DATABASE aux34;
SELECT * FROM t1 AS a FULL OUTER JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r5353;
ALTER TABLE t1 RENAME TO t1_r3388;
PRAGMA short_column_names = YES;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
SELECT COUNT(*) FROM t1;
CREATE TRIGGER IF NOT EXISTS trg_t0_3641 AFTER UPDATE ON t0 BEGIN SELECT RAISE(IGNORE); 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;
DETACH DATABASE aux96;
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
WITH RECURSIVE multi(a, b) AS (VALUES(1, 1.0) UNION ALL SELECT a+1, b*0.5 FROM multi WHERE a<38) SELECT * FROM multi;
.eqp off
PRAGMA count_changes = '|';
ATTACH DATABASE ':memory:' AS aux96;
ATTACH DATABASE ':memory:' AS aux34;
CREATE TEMPORARY TABLE t0(x, y, z);
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST(unicode('你好') AS MEDIUMINT), '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 -99999999999999999999999999999999999999999999999999;
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
DROP TABLE t0;
REINDEX;
DELETE FROM t0 WHERE 1 RETURNING *;
UPDATE t0 SET z = '' WHERE z BETWEEN 0 AND 100;
SELECT * FROM t0 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
SELECT * FROM t1 WHERE b NOT IN (SELECT b FROM t1);
DETACH DATABASE aux34;
SELECT * FROM t1 AS a FULL OUTER JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r5353;
ALTER TABLE t1 RENAME TO t1_r3388;
PRAGMA short_column_names = YES;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
SELECT COUNT(*) FROM t1;
CREATE TRIGGER IF NOT EXISTS trg_t0_3641 AFTER UPDATE ON t0 BEGIN SELECT RAISE(IGNORE); 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;
DETACH DATABASE aux96;
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
WITH RECURSIVE multi(a, b) AS (VALUES(1, 1.0) UNION ALL SELECT a+1, b*0.5 FROM multi WHERE a<38) SELECT * FROM multi;
.eqp off
PRAGMA count_changes = '|';
ATTACH DATABASE ':memory:' AS aux96;
ATTACH DATABASE ':memory:' AS aux34;
CREATE TEMPORARY TABLE t0(x, y, z);
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST(unicode('你好') AS MEDIUMINT), '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 -99999999999999999999999999999999999999999999999999;
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
DROP TABLE t0;
REINDEX;
DELETE FROM t0 WHERE 1 RETURNING *;
UPDATE t0 SET z = '' WHERE z BETWEEN 0 AND 100;
SELECT * FROM t0 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
SELECT * FROM t1 WHERE b NOT IN (SELECT b FROM t1);
DETACH DATABASE aux34;
SELECT * FROM t1 AS a FULL OUTER JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r5353;
ALTER TABLE t1 RENAME TO t1_r3388;
PRAGMA short_column_names = YES;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
SELECT COUNT(*) FROM t1;
CREATE TRIGGER IF NOT EXISTS trg_t0_3641 AFTER UPDATE ON t0 BEGIN SELECT RAISE(IGNORE); 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;
DETACH DATABASE aux96;
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
WITH RECURSIVE multi(a, b) AS (VALUES(1, 1.0) UNION ALL SELECT a+1, b*0.5 FROM multi WHERE a<38) SELECT * FROM multi;
.eqp off
PRAGMA count_changes = '|';
ATTACH DATABASE ':memory:' AS aux96;
ATTACH DATABASE ':memory:' AS aux34;
CREATE TEMPORARY TABLE t0(x, y, z);
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST(unicode('你好') AS MEDIUMINT), '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 -99999999999999999999999999999999999999999999999999;
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
DROP TABLE t0;
REINDEX;
DELETE FROM t0 WHERE 1 RETURNING *;
UPDATE t0 SET z = '' WHERE z BETWEEN 0 AND 100;
SELECT * FROM t0 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
SELECT * FROM t1 WHERE b NOT IN (SELECT b FROM t1);
DETACH DATABASE aux34;
SELECT * FROM t1 AS a FULL OUTER JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r5353;
ALTER TABLE t1 RENAME TO t1_r3388;
PRAGMA short_column_names = YES;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
SELECT COUNT(*) FROM t1;
CREATE TRIGGER IF NOT EXISTS trg_t0_3641 AFTER UPDATE ON t0 BEGIN SELECT RAISE(IGNORE); 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;
DETACH DATABASE aux96;
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
WITH RECURSIVE multi(a, b) AS (VALUES(1, 1.0) UNION ALL SELECT a+1, b*0.5 FROM multi WHERE a<38) SELECT * FROM multi;
.eqp off
PRAGMA count_changes = '|';
ATTACH DATABASE ':memory:' AS aux96;
ATTACH DATABASE ':memory:' AS aux34;
CREATE TEMPORARY TABLE t0(x, y, z);
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST(unicode('你好') AS MEDIUMINT), '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 -99999999999999999999999999999999999999999999999999;
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
DROP TABLE t0;
REINDEX;
DELETE FROM t0 WHERE 1 RETURNING *;
UPDATE t0 SET z = '' WHERE z BETWEEN 0 AND 100;
SELECT * FROM t0 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
SELECT * FROM t1 WHERE b NOT IN (SELECT b FROM t1);
DETACH DATABASE aux34;
SELECT * FROM t1 AS a FULL OUTER JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r5353;
ALTER TABLE t1 RENAME TO t1_r3388;
PRAGMA short_column_names = YES;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
SELECT COUNT(*) FROM t1;
CREATE TRIGGER IF NOT EXISTS trg_t0_3641 AFTER UPDATE ON t0 BEGIN SELECT RAISE(IGNORE); 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;
DETACH DATABASE aux96;
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
WITH RECURSIVE multi(a, b) AS (VALUES(1, 1.0) UNION ALL SELECT a+1, b*0.5 FROM multi WHERE a<38) SELECT * FROM multi;
.eqp off
PRAGMA count_changes = '|';
ATTACH DATABASE ':memory:' AS aux96;
ATTACH DATABASE ':memory:' AS aux34;
CREATE TEMPORARY TABLE t0(x, y, z);
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST(unicode('你好') AS MEDIUMINT), '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 -99999999999999999999999999999999999999999999999999;
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
DROP TABLE t0;
REINDEX;
DELETE FROM t0 WHERE 1 RETURNING *;
UPDATE t0 SET z = '' WHERE z BETWEEN 0 AND 100;
SELECT * FROM t0 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
SELECT * FROM t1 WHERE b NOT IN (SELECT b FROM t1);
DETACH DATABASE aux34;
SELECT * FROM t1 AS a FULL OUTER JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r5353;
ALTER TABLE t1 RENAME TO t1_r3388;
PRAGMA short_column_names = YES;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
SELECT COUNT(*) FROM t1;
CREATE TRIGGER IF NOT EXISTS trg_t0_3641 AFTER UPDATE ON t0 BEGIN SELECT RAISE(IGNORE); 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;
DETACH DATABASE aux96;
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
WITH RECURSIVE multi(a, b) AS (VALUES(1, 1.0) UNION ALL SELECT a+1, b*0.5 FROM multi WHERE a<38) SELECT * FROM multi;
.eqp off
PRAGMA count_changes = '|';
ATTACH DATABASE ':memory:' AS aux96;
ATTACH DATABASE ':memory:' AS aux34;
CREATE TEMPORARY TABLE t0(x, y, z);
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST(unicode('你好') AS MEDIUMINT), '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 -99999999999999999999999999999999999999999999999999;
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
DROP TABLE t0;
REINDEX;
DELETE FROM t0 WHERE 1 RETURNING *;
UPDATE t0 SET z = '' WHERE z BETWEEN 0 AND 100;
SELECT * FROM t0 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
SELECT * FROM t1 WHERE b NOT IN (SELECT b FROM t1);
DETACH DATABASE aux34;
SELECT * FROM t1 AS a FULL OUTER JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r5353;
ALTER TABLE t1 RENAME TO t1_r3388;
PRAGMA short_column_names = YES;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
SELECT COUNT(*) FROM t1;
CREATE TRIGGER IF NOT EXISTS trg_t0_3641 AFTER UPDATE ON t0 BEGIN SELECT RAISE(IGNORE); 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;
DETACH DATABASE aux96;
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
WITH RECURSIVE multi(a, b) AS (VALUES(1, 1.0) UNION ALL SELECT a+1, b*0.5 FROM multi WHERE a<38) SELECT * FROM multi;
VACUUM main;
CREATE INDEX IF NOT EXISTS idx_t1_5312 ON t1(d) WHERE d > 0;
PRAGMA empty_result_callbacks = ON;
REINDEX t0;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t0_7893 ON t0(lower(x)) WHERE x > 0;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_2600 ON t1(b) WHERE b > 0;
ALTER TABLE t0 RENAME COLUMN z TO z_r9903;
ROLLBACK TO sp3272;
RELEASE sp3272;
SELECT * FROM t1 WHERE c IN (SELECT c FROM t1 LIMIT 0);
VACUUM;
SELECT SUM(y) FILTER (WHERE 1=0) OVER (ORDER BY y RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t0;
VACUUM main;
CREATE TABLE T (
A VARCHAR(20),
B VARCHAR(30),
C VARCHAR(30),
PRIMARY KEY (A, B),
UNIQUE (A, C)
);
INSERT INTO T VALUES ('a', 'p', 'x');
INSERT INTO T VALUES ('a', 'q', 'y');
INSERT INTO T VALUES ('b', 'p', 'z');
INSERT INTO T VALUES ('c', 'r', 'w');
INSERT INTO T VALUES ('d', 's', 'v');
SELECT A, COUNT(DISTINCT B) AS D FROM T GROUP BY A HAVING COUNT(DISTINCT B) >= 1;
CREATE INDEX IF NOT EXISTS idx_T_3768 ON T(lower(B));
DELETE FROM T WHERE 0;
CREATE TRIGGER IF NOT EXISTS trg_T_6223 BEFORE UPDATE ON T BEGIN INSERT INTO T(B) VALUES (NULL); END;
PRAGMA integrity_check;
INSERT INTO t1 VALUES ('x', 'x', 'x', 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
DETACH DATABASE aux26;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_2309 ON t1(lower(c)) WHERE c > 0;
ANALYZE;
ALTER TABLE T DROP COLUMN A;
RELEASE sp5011;
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;
```
## 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,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
PRAGMA module_list;
.exit -(0 + 1)
PRAGMA table_info(users);
PRAGMA short_column_names = ON;
PRAGMA user_version = '''''';
.print https://yewtu.be/watch?v=dQw4w9WgXcQ
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;
SELECT * FROM T AS a FULL JOIN T AS b ON a.rowid = b.rowid;
DELETE FROM T WHERE A > (SELECT AVG(A) FROM T);
UPDATE T SET A = json_object('k', A) WHERE A BETWEEN 0 AND 100;
ALTER TABLE T RENAME COLUMN A TO A_r6693;
DELETE FROM T WHERE 0 RETURNING *;
SELECT COUNT(*) FROM T;
VACUUM main;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<0) SELECT * FROM cnt;
WITH RECURSIVE self(x) AS (SELECT 1 UNION ALL SELECT x FROM self) SELECT * FROM self LIMIT 5;
INSERT INTO T DEFAULT VALUES;
REINDEX T;
SELECT GROUP_CONCAT(B, '|') FROM T;
DELETE FROM T WHERE 0 RETURNING *;
SELECT * FROM T;
SELECT * FROM T WHERE B IN (SELECT B FROM T WHERE B LIKE "%%");
```
## Actual output
```sql
sqlite_dbdata
generate_series
completion
fsdir
tables_used
sqlite_stmt
json_tree
fts4aux
fts3
fts4
sqlite_dbptr
fts3tokenize
bytecode
rtree_i32
sqlite_dbpage
rtree
dbstat
json_each
```
## Expectation
```sql
fsdir
generate_series
bytecode
dbstat
tables_used
sqlite_stmt
sqlite_dbpage
rtree_i32
fts4aux
fts3
zipfile
fts4
completion
rtree
fts3tokenize
```
## Flag
```
```
@@ -0,0 +1,450 @@
## Summary
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
## Minimized query
```sql
PRAGMA function_list;
PRAGMA foreign_keys = FALSE;
PRAGMA secure_delete;
.fullschema
BEGIN;
create TABLE abc(a, b, c, PRIMARY KEY(a, b));
INSERT INTO abc VALUES((sign(-1) * 1), 1, 1);
INSERT INTO abc SELECT a+(select max(a) FROM abc), b+(select max(a) FROM abc), c+(select max(a) FROM abc) FROM abc;
COMMIT;
SELECT count((SELECT a FROM abc WHERE a = NULL AND b >= upper.c)) FROM abc AS upper;
SELECT * FROM sqlite_master WHERE rowid=10;
SELECT MAX(b) FROM abc;
INSERT INTO abc VALUES (NULL, NULL, NULL);
ANALYZE abc;
ANALYZE;
CREATE UNIQUE INDEX IF NOT EXISTS idx_abc_6185 ON abc(c) WHERE c IS NOT NULL;
INSERT INTO abc VALUES (NULL, NULL, NULL);
```
## Actual output
```sql
pow|1|s|utf8|2|2099200
group_concat|1|w|utf8|1|2097152
group_concat|1|w|utf8|2|2097152
json_type|1|s|utf8|1|2048
json_type|1|s|utf8|2|2048
julianday|1|s|utf8|-1|2099200
ntile|1|w|utf8|1|2097152
nullif|1|s|utf8|2|2099200
sqlite_compileoption_get|1|s|utf8|1|2097152
json_valid|1|s|utf8|1|2048
json_quote|1|s|utf8|1|2048
json_patch|1|s|utf8|2|2048
->|1|s|utf8|2|2048
json_array|1|s|utf8|-1|2048
current_timestamp|1|s|utf8|0|2097152
power|1|s|utf8|2|2099200
sqlite_compileoption_used|1|s|utf8|1|2097152
json_remove|1|s|utf8|-1|2048
json_object|1|s|utf8|-1|2048
json_insert|1|s|utf8|-1|2048
->>|1|s|utf8|2|2048
sin|1|s|utf8|1|2099200
sum|1|w|utf8|1|2097152
quote|1|s|utf8|1|2099200
printf|1|s|utf8|-1|2099200
likelihood|1|s|utf8|2|2099200
json_replace|1|s|utf8|-1|2048
json_extract|1|s|utf8|-1|2048
last_value|1|w|utf8|1|2097152
rank|1|w|utf8|0|2097152
sign|1|s|utf8|1|2099200
sqrt|1|s|utf8|1|2099200
sinh|1|s|utf8|1|2099200
tan|1|s|utf8|1|2099200
round|1|s|utf8|1|2099200
round|1|s|utf8|2|2099200
rtrim|1|s|utf8|1|2099200
rtrim|1|s|utf8|2|2099200
nth_value|1|w|utf8|2|2097152
tanh|1|s|utf8|1|2099200
random|1|s|utf8|0|2097152
trim|1|s|utf8|1|2099200
trim|1|s|utf8|2|2099200
time|1|s|utf8|-1|2099200
radians|1|s|utf8|1|2099200
trunc|1|s|utf8|1|2099200
total|1|w|utf8|1|2097152
substr|1|s|utf8|2|2099200
substr|1|s|utf8|3|2099200
replace|1|s|utf8|3|2099200
upper|1|s|utf8|1|2099200
subtype|1|s|utf8|1|2099200
typeof|1|s|utf8|1|2099200
load_extension|1|s|utf8|1|524288
load_extension|1|s|utf8|2|524288
json_group_array|1|w|utf8|1|1050624
avg|1|w|utf8|1|2097152
abs|1|s|utf8|1|2099200
json_group_object|1|w|utf8|2|1050624
json_array_length|1|s|utf8|1|2048
json_array_length|1|s|utf8|2|2048
strftime|1|s|utf8|-1|2099200
atan|1|s|utf8|1|2099200
asin|1|s|utf8|1|2099200
acos|1|s|utf8|1|2099200
unknown|1|s|utf8|-1|2099200
substring|1|s|utf8|2|2099200
substring|1|s|utf8|3|2099200
randomblob|1|s|utf8|1|2097152
unicode|1|s|utf8|1|2099200
percent_rank|1|w|utf8|0|2097152
row_number|1|w|utf8|0|2097152
atanh|1|s|utf8|1|2099200
asinh|1|s|utf8|1|2099200
acosh|1|s|utf8|1|2099200
cos|1|s|utf8|1|2099200
atan2|1|s|utf8|2|2099200
last_insert_rowid|1|s|utf8|0|2097152
sqlite_log|1|s|utf8|2|2099200
unlikely|1|s|utf8|1|2099200
cosh|1|s|utf8|1|2099200
ceil|1|s|utf8|1|2099200
char|1|s|utf8|-1|2099200
unixepoch|1|s|utf8|-1|2099200
exp|1|s|utf8|1|2099200
count|1|w|utf8|0|2097152
count|1|w|utf8|1|2097152
date|1|s|utf8|-1|2099200
sqlite_offset|1|s|utf8|1|2097152
ceiling|1|s|utf8|1|2099200
total_changes|1|s|utf8|0|2097152
changes|1|s|utf8|0|2097152
sqlite_version|1|s|utf8|0|2097152
degrees|1|s|utf8|1|2099200
floor|1|s|utf8|1|2099200
coalesce|1|s|utf8|-1|2099200
glob|1|s|utf8|2|2099200
zeroblob|1|s|utf8|1|2099200
hex|1|s|utf8|1|2099200
iif|1|s|utf8|3|2099200
sqlite_source_id|1|s|utf8|0|2097152
format|1|s|utf8|-1|2099200
datetime|1|s|utf8|-1|2099200
cume_dist|1|w|utf8|0|2097152
ln|1|s|utf8|1|2099200
instr|1|s|utf8|2|2099200
json|1|s|utf8|1|2048
dense_rank|1|w|utf8|0|2097152
log|1|s|utf8|1|2099200
log|1|s|utf8|2|2099200
ifnull|1|s|utf8|2|2099200
current_date|1|s|utf8|0|2097152
current_time|1|s|utf8|0|2097152
lag|1|w|utf8|1|2097152
lag|1|w|utf8|3|2097152
lag|1|w|utf8|2|2097152
mod|1|s|utf8|2|2099200
log2|1|s|utf8|1|2099200
like|1|s|utf8|2|2099200
like|1|s|utf8|3|2099200
max|1|s|utf8|-1|2099200
max|1|w|utf8|1|2097152
min|1|s|utf8|-1|2099200
min|1|w|utf8|1|2097152
lead|1|w|utf8|1|2097152
lead|1|w|utf8|3|2097152
lead|1|w|utf8|2|2097152
log10|1|s|utf8|1|2099200
lower|1|s|utf8|1|2099200
ltrim|1|s|utf8|1|2099200
ltrim|1|s|utf8|2|2099200
first_value|1|w|utf8|1|2097152
pi|1|s|utf8|0|2099200
length|1|s|utf8|1|2099200
likely|1|s|utf8|1|2099200
json_set|1|s|utf8|-1|2048
edit|0|s|utf8|2|0
edit|0|s|utf8|1|0
usleep|0|s|utf8|1|0
shell_idquote|0|s|utf8|1|0
shell_escape_crnl|0|s|utf8|1|0
shell_putsnl|0|s|utf8|1|0
ieee754_from_blob|0|s|utf8|1|2097152
shell_add_schema|0|s|utf8|3|0
ieee754_to_blob|0|s|utf8|1|2097152
ieee754|0|s|utf8|2|2097152
ieee754|0|s|utf8|1|2097152
shell_int32|0|s|utf8|2|0
regexp|0|s|utf8|2|2099200
ieee754_exponent|0|s|utf8|1|2097152
decimal_sub|0|s|utf8|2|2099200
decimal_cmp|0|s|utf8|2|2099200
writefile|0|s|utf8|-1|524288
lsmode|0|s|utf8|1|0
readfile|0|s|utf8|1|524288
match|0|s|utf8|2|0
fts3_tokenizer|0|s|utf8|2|524288
fts3_tokenizer|0|s|utf8|1|524288
ieee754_mantissa|0|s|utf8|1|2097152
decimal_add|0|s|utf8|2|2099200
decimal|0|s|utf8|1|2099200
snippet|0|s|utf8|-1|0
offsets|0|s|utf8|1|0
shell_module_schema|0|s|utf8|1|0
matchinfo|0|s|utf8|2|0
matchinfo|0|s|utf8|1|0
optimize|0|s|utf8|1|0
decimal_sum|0|w|utf8|1|2099200
sha3|0|s|utf8|2|2099200
sha3|0|s|utf8|1|2099200
rtreedepth|0|s|utf8|1|0
regexpi|0|s|utf8|2|2099200
decimal_mul|0|s|utf8|2|2099200
sha3_query|0|s|utf8|2|524288
sha3_query|0|s|utf8|1|524288
rtreenode|0|s|utf8|2|0
rtreecheck|0|s|utf8|-1|0
0
/* No STAT tables available */
0
1
```
## Expectation
```sql
pow|1|s|utf8|2|2099200
median|1|w|utf8|1|0
group_concat|1|w|utf8|1|2097152
group_concat|1|w|utf8|2|2097152
json_type|1|s|utf8|1|2099200
json_type|1|s|utf8|2|2099200
jsonb_set|1|s|utf8|-1|3147776
julianday|1|s|utf8|-1|2099200
ntile|1|w|utf8|1|2097152
nullif|1|s|utf8|2|2099200
sqlite_compileoption_get|1|s|utf8|1|2097152
json_valid|1|s|utf8|1|2099200
json_valid|1|s|utf8|2|2099200
json_quote|1|s|utf8|1|3147776
json_patch|1|s|utf8|2|2099200
->|1|s|utf8|2|2099200
json_array|1|s|utf8|-1|3147776
current_timestamp|1|s|utf8|0|2097152
power|1|s|utf8|2|2099200
sqlite_compileoption_used|1|s|utf8|1|2097152
json_remove|1|s|utf8|-1|2099200
json_pretty|1|s|utf8|1|2099200
json_pretty|1|s|utf8|2|2099200
jsonb_patch|1|s|utf8|2|2099200
json_object|1|s|utf8|-1|3147776
json_insert|1|s|utf8|-1|3147776
->>|1|s|utf8|2|2099200
jsonb_array|1|s|utf8|-1|3147776
sin|1|s|utf8|1|2099200
sum|1|w|utf8|1|2097152
quote|1|s|utf8|1|2099200
printf|1|s|utf8|-1|2099200
likelihood|1|s|utf8|2|2099200
json_replace|1|s|utf8|-1|3147776
jsonb_remove|1|s|utf8|-1|2099200
jsonb_object|1|s|utf8|-1|3147776
jsonb_insert|1|s|utf8|-1|3147776
json_extract|1|s|utf8|-1|2099200
last_value|1|w|utf8|1|2097152
rank|1|w|utf8|0|2097152
sign|1|s|utf8|1|2099200
sqrt|1|s|utf8|1|2099200
sinh|1|s|utf8|1|2099200
tan|1|s|utf8|1|2099200
round|1|s|utf8|1|2099200
round|1|s|utf8|2|2099200
rtrim|1|s|utf8|1|2099200
rtrim|1|s|utf8|2|2099200
jsonb_replace|1|s|utf8|-1|3147776
jsonb_extract|1|s|utf8|-1|2099200
nth_value|1|w|utf8|2|2097152
tanh|1|s|utf8|1|2099200
random|1|s|utf8|0|2097152
trim|1|s|utf8|1|2099200
trim|1|s|utf8|2|2099200
time|1|s|utf8|-1|2099200
radians|1|s|utf8|1|2099200
trunc|1|s|utf8|1|2099200
total|1|w|utf8|1|2097152
substr|1|s|utf8|2|2099200
substr|1|s|utf8|3|2099200
replace|1|s|utf8|3|2099200
percentile|1|w|utf8|2|0
unhex|1|s|utf8|1|2099200
unhex|1|s|utf8|2|2099200
upper|1|s|utf8|1|2099200
subtype|1|s|utf8|1|3147776
typeof|1|s|utf8|1|2099200
load_extension|1|s|utf8|1|524288
load_extension|1|s|utf8|2|524288
json_group_array|1|w|utf8|1|3147776
avg|1|w|utf8|1|2097152
unistr|1|s|utf8|1|2099200
abs|1|s|utf8|1|2099200
octet_length|1|s|utf8|1|2099200
json_group_object|1|w|utf8|2|3147776
jsonb_group_array|1|w|utf8|1|3147776
json_array_length|1|s|utf8|1|2099200
json_array_length|1|s|utf8|2|2099200
strftime|1|s|utf8|-1|2099200
atan|1|s|utf8|1|2099200
asin|1|s|utf8|1|2099200
acos|1|s|utf8|1|2099200
unknown|1|s|utf8|-1|2099200
substring|1|s|utf8|2|2099200
substring|1|s|utf8|3|2099200
randomblob|1|s|utf8|1|2097152
unicode|1|s|utf8|1|2099200
jsonb_group_object|1|w|utf8|2|3147776
timediff|1|s|utf8|2|2099200
percent_rank|1|w|utf8|0|2097152
row_number|1|w|utf8|0|2097152
atanh|1|s|utf8|1|2099200
asinh|1|s|utf8|1|2099200
acosh|1|s|utf8|1|2099200
cos|1|s|utf8|1|2099200
atan2|1|s|utf8|2|2099200
string_agg|1|w|utf8|2|2097152
last_insert_rowid|1|s|utf8|0|2097152
sqlite_log|1|s|utf8|2|2099200
unlikely|1|s|utf8|1|2099200
json_error_position|1|s|utf8|1|2099200
cosh|1|s|utf8|1|2099200
ceil|1|s|utf8|1|2099200
char|1|s|utf8|-1|2099200
unixepoch|1|s|utf8|-1|2099200
exp|1|s|utf8|1|2099200
percentile_disc|1|w|utf8|2|0
percentile_cont|1|w|utf8|2|0
count|1|w|utf8|0|2097152
count|1|w|utf8|1|2097152
date|1|s|utf8|-1|2099200
concat|1|s|utf8|-3|2099200
sqlite_offset|1|s|utf8|1|2099200
ceiling|1|s|utf8|1|2099200
total_changes|1|s|utf8|0|2097152
changes|1|s|utf8|0|2097152
unistr_quote|1|s|utf8|1|2099200
sqlite_version|1|s|utf8|0|2097152
if|1|s|utf8|-4|2099200
coalesce|1|s|utf8|-4|2099200
degrees|1|s|utf8|1|2099200
floor|1|s|utf8|1|2099200
glob|1|s|utf8|2|2099200
zeroblob|1|s|utf8|1|2099200
hex|1|s|utf8|1|2099200
iif|1|s|utf8|-4|2099200
sqlite_source_id|1|s|utf8|0|2097152
concat_ws|1|s|utf8|-4|2099200
format|1|s|utf8|-1|2099200
datetime|1|s|utf8|-1|2099200
cume_dist|1|w|utf8|0|2097152
ln|1|s|utf8|1|2099200
instr|1|s|utf8|2|2099200
json|1|s|utf8|1|2099200
dense_rank|1|w|utf8|0|2097152
log|1|s|utf8|1|2099200
log|1|s|utf8|2|2099200
ifnull|1|s|utf8|2|2099200
jsonb|1|s|utf8|1|2099200
current_date|1|s|utf8|0|2097152
current_time|1|s|utf8|0|2097152
lag|1|w|utf8|1|2097152
lag|1|w|utf8|3|2097152
lag|1|w|utf8|2|2097152
mod|1|s|utf8|2|2099200
log2|1|s|utf8|1|2099200
like|1|s|utf8|2|2099200
like|1|s|utf8|3|2099200
max|1|s|utf8|-3|2099200
max|1|w|utf8|1|2097152
min|1|s|utf8|-3|2099200
min|1|w|utf8|1|2097152
lead|1|w|utf8|1|2097152
lead|1|w|utf8|3|2097152
lead|1|w|utf8|2|2097152
log10|1|s|utf8|1|2099200
lower|1|s|utf8|1|2099200
ltrim|1|s|utf8|1|2099200
ltrim|1|s|utf8|2|2099200
first_value|1|w|utf8|1|2097152
pi|1|s|utf8|0|2099200
length|1|s|utf8|1|2099200
likely|1|s|utf8|1|2099200
json_set|1|s|utf8|-1|3147776
usleep|0|s|utf8|1|0
shell_putsnl|0|s|utf8|1|0
dtostr|0|s|utf8|2|0
dtostr|0|s|utf8|1|0
sqlar_uncompress|0|s|utf8|2|2097152
sqlar_compress|0|s|utf8|1|2097152
zipfile|0|a|utf8|-1|0
lsmode|0|s|utf8|1|0
writefile|0|s|utf8|-1|524288
readfile|0|s|utf8|1|524288
ieee754_from_blob|0|s|utf8|1|2097152
offsets|0|s|utf8|1|0
decimal_cmp|0|s|utf8|2|2099200
fts3_tokenizer|0|s|utf8|2|524288
fts3_tokenizer|0|s|utf8|1|524288
decimal|0|s|utf8|1|2099200
sha1b|0|s|utf8|1|2099200
zipfile_cds|0|s|utf8|-1|0
decimal_mul|0|s|utf8|2|2099200
matchinfo|0|s|utf8|2|0
matchinfo|0|s|utf8|1|0
ieee754_inc|0|s|utf8|2|2097152
optimize|0|s|utf8|1|0
rtreedepth|0|s|utf8|1|0
ieee754_mantissa|0|s|utf8|1|2097152
rtreenode|0|s|utf8|2|0
shell_add_schema|0|s|utf8|3|0
strtod|0|s|utf8|1|0
rtreecheck|0|s|utf8|-1|0
shell_module_schema|0|s|utf8|1|0
match|0|s|utf8|2|0
sha1|0|s|utf8|1|2099200
sha1_query|0|s|utf8|1|524288
sha3|0|s|utf8|2|2099200
sha3|0|s|utf8|1|2099200
sha3_agg|0|a|utf8|2|2099200
sha3_agg|0|a|utf8|1|2099200
ieee754_exponent|0|s|utf8|1|2097152
ieee754|0|s|utf8|2|2097152
ieee754|0|s|utf8|1|2097152
decimal_sub|0|s|utf8|2|2099200
regexpi|0|s|utf8|2|2099200
sha3_query|0|s|utf8|2|524288
sha3_query|0|s|utf8|1|524288
stmtrand|0|s|utf8|0|0
stmtrand|0|s|utf8|1|0
decimal_exp|0|s|utf8|1|2099200
ieee754_to_blob|0|s|utf8|1|2097152
base85|0|s|utf8|1|2623488
decimal_add|0|s|utf8|2|2099200
edit|0|s|utf8|2|0
edit|0|s|utf8|1|0
decimal_pow2|0|s|utf8|1|2099200
base64|0|s|utf8|1|2623488
snippet|0|s|utf8|-1|0
decimal_sum|0|w|utf8|1|2099200
regexp|0|s|utf8|2|2099200
0
/* No STAT tables available */
0
1
```
## 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;
.dump
SAVEPOINT sp688;
-- json_array({v})
.nullvalue x'8bfa8aa1306e3bcaaf92966e8ce19b'NULL2327d3-log2(soundex(5))36b-41de-a764-a6301986aeab
PRAGMA defer_foreign_keys;
CREATE TABLE "T" (
a DOUB,
b TEXT,
c REAL
);
INSERT INTO T VALUES (pow(atan(1), 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;
ATTACH DATABASE ':memory:' AS aux77;
ATTACH DATABASE ':memory:' AS aux50;
PRAGMA module_list;
.exit -(jsonb_each(json_each(x'4452f1f3ff4b'), '$.arr') + CAST(1 AS FLOAT))
PRAGMA table_info(users);
PRAGMA short_column_names = ON;
PRAGMA user_version = '''''';
.print https://yewtu.be/watch?v=dQw4w9WgXcQ
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;
SELECT * FROM T AS a INNER JOIN T AS b ON a.rowid = b.rowid;
DELETE FROM T WHERE NOT A > (SELECT AVG(A) FROM T);
UPDATE T SET A = json_object('k', A) WHERE A BETWEEN 0 AND 100;
ALTER TABLE T RENAME COLUMN A TO A_r6693;
DELETE FROM T WHERE 0 RETURNING *;
SELECT COUNT(*) FROM T;
VACUUM main;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<0) SELECT * FROM cnt;
WITH RECURSIVE self(x) AS (SELECT 1 UNION ALL SELECT x FROM self) SELECT * FROM self LIMIT 5;
INSERT INTO T DEFAULT VALUES;
REINDEX T;
SELECT GROUP_CONCAT(B, '|') FROM T;
DELETE FROM T WHERE 0 RETURNING *;
SELECT * FROM T;
SELECT * FROM T WHERE B IN (SELECT B FROM T WHERE B LIKE "%%");
ALTER TABLE T RENAME TO T_r8238;
SELECT COUNT(*) FROM T;
PRAGMA trusted_schema = NO;
ALTER TABLE T DROP COLUMN B;
SELECT * FROM T AS a LEFT JOIN T AS b ON a.rowid = b.rowid;
CREATE TABLE T (
a NATIVE CHARACTER(70)NVARCHAR(100),
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;
DETACH DATABASE aux50;
DETACH DATABASE aux77;
SELECT * FROM T CROSS JOIN T;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T VALUES (NULL, NULL);
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_9728 AS SELECT b FROM T;
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;
CREATE VIEW IF NOT EXISTS v_T_1441 AS SELECT b FROM T;
ANALYZE T;
ALTER TABLE T DROP COLUMN b;
SELECT COUNT(*) FROM T;
SELECT * FROM T WHERE /**/ b > (SELECT COUNT(*) FROM T);
INSERT INTO T DEFAULT VALUES;
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T t2 WHERE t2.a = T.a);
SELECT * FROM T WHERE a <= ANY (SELECT a FROM T);
SELECT * FROM T WHERE a <= ALL (SELECT a FROM T);
DROP TRIGGER IF EXISTS 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;
CREATE INDEX IF NOT EXISTS idx_T_6057 ON T((b + 1));
INSERT INTO T DEFAULT VALUES;
SELECT LAG(a, 1) OVER (PARTITION BY a ORDER BY a RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T;
RELEASE sp688;
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 T DEFAULT VALUES;
SELECT * FROM T WHERE b < (SELECT AVG(b) FROM T);
SELECT MIN(b) FROM T;
ALTER TABLE T RENAME TO T_r8142;
SELECT STRING_AGG(a) FROM T;
COMMIT TRANSACTION;
INSERT OR IGNORE INTO T VALUES ('', NULL);
```
## Actual output
```sql
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
COMMIT;
0
a|0.785398163397448|3.14|1
b|1.0|-7.75|1
c|2.0|-Inf|1
sqlite_dbdata
generate_series
completion
fsdir
tables_used
sqlite_stmt
json_tree
fts4aux
fts3
fts4
sqlite_dbptr
fts3tokenize
bytecode
rtree_i32
sqlite_dbpage
rtree
dbstat
json_each
```
## Expectation
```sql
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
COMMIT;
0
a|0.785398163397448|3.14|1
b|1.0|-7.75|1
c|2.0|-Inf|1
fsdir
generate_series
bytecode
dbstat
tables_used
sqlite_stmt
sqlite_dbpage
rtree_i32
fts4aux
fts3
zipfile
fts4
completion
rtree
fts3tokenize
```
## 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
ATTACH DATABASE ':memory:' AS aux34;
CREATE TEMPORARY TABLE t0(x, y, z);
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (CAST(unicode('你好') AS MEDIUMINT), '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 -99999999999999999999999999999999999999999999999999;
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
DROP TABLE t0;
REINDEX;
DELETE FROM t0 WHERE 1 RETURNING *;
UPDATE t0 SET z = '' WHERE z BETWEEN 0 AND 100;
SELECT * FROM t0 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
SELECT * FROM t1 WHERE b NOT IN (SELECT b FROM t1);
DETACH DATABASE aux34;
SELECT * FROM t1 AS a FULL OUTER JOIN t0 AS b ON a.rowid = b.rowid;
ALTER TABLE t0 RENAME TO t0_r5353;
ALTER TABLE t1 RENAME TO t1_r3388;
PRAGMA short_column_names = YES;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
SELECT COUNT(*) FROM t1;
CREATE TRIGGER IF NOT EXISTS trg_t0_3641 AFTER UPDATE ON t0 BEGIN SELECT RAISE(IGNORE); END;
```
## 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|63
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|63
von|20|2
Braun|30
Wernher|10
von|20
```
## Flag
```
```
@@ -0,0 +1,115 @@
## 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 VARCHAR(15) PRIMARY KEY,
B VARCHAR(30) NOT NULL,
C BIGINT 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 C <> 0 ORDER BY C DESC;
ATTACH DATABASE ':memory:' AS aux2;
CREATE TABLE t1(a INT 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 temp_store = '0';
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;
PRAGMA empty_result_callbacks = FALSE;
PRAGMA default_cache_size = -1000;
.output
CREATE TABLE t1(a INTEGER, b TEXT, c BLOB, CHECK( coalesce(b,c) ));
INSERT INTO t1 VALUES(1, 2, 3);
ALTER TABLE t1 RENAME COLUMN b TO d;
CREATE TABLE t3(a, b, c, d, e, f, g, h, i, j, k, l, m, FOREIGN KEY (b, c, d, e, f, g, h, i, j, k, l, m) REFERENCES `t4`);
CREATE TABLE t4(x, y, z);
INSERT INTO t4 VALUES(3, 2, 1);
SELECT STRING_AGG(c) FROM t1;
ALTER TABLE t4 RENAME TO t4_r7558;
ALTER TABLE t1 ADD COLUMN extra_4840 INT NOT NULL DEFAULT 0;
INSERT INTO t3 VALUES (NULL, 'x', 1, 1, 1, 'x', 'x', 'x', NULL, 'x', 1, 'x', 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
DETACH DATABASE aux2;
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;
UPDATE T SET c = NULL WHERE c IS NOT NULL;
ALTER TABLE t1 DROP COLUMN a;
PRAGMA cache_size = -2000;
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 t4;
INSERT INTO t1 DEFAULT VALUES;
INSERT INTO t1 DEFAULT VALUES;
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 t4;
```
## Actual output
```sql
e|x|9223372036854775807
f|z|2147483648
d|y|42
b|y|-1000000
a|x|-9223372036854775808
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
e|x|9223372036854775807
f|z|2147483648
d|y|42
b|y|-1000000
a|x|-9223372036854775808
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,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
PRAGMA encoding = 'UTF-8';
ATTACH DATABASE ':memory:' AS aux44;
CREATE TABLE T (
a INTEGER,
b REAL,
c REAL
);
INSERT INTO T VALUES (strftime('%s', if(0, 9145485036963515638, 9145485036963515638)),1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
SELECT * FROM T WHERE b < 2.0 ORDER BY b;
DETACH DATABASE aux44;
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T t2 WHERE t2.a = T.a);
INSERT INTO T VALUES (NULL, NULL, NULL);
INSERT OR ROLLBACK INTO T VALUES (NULL, NULL, '');
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<21) SELECT * FROM cnt;
```
## Actual output
```sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,99 @@
## 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;
BEGIN DEFERRED TRANSACTION;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (asin(changes()), 'Wernher', length(instr(NULL, substr(if('', max(10, 1, 2, 3), 10), 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
.dbconfig fk on
.progress concat_ws(NULL, 'a', 'b')
ATTACH DATABASE '' || (':memory:') AS aux92;
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;
SELECT COUNT(*) FROM T;
VACUUM main;
DETACH DATABASE aux92;
ANALYZE T;
ANALYZE T;
DROP TABLE IF EXISTS T;
SELECT COUNT(*) FROM T;
DROP VIEW IF EXISTS T;
INSERT INTO T SELECT * FROM T;
PRAGMA cell_size_check = OFF;
INSERT INTO T VALUES (NULL, 1, 'x') ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
DROP TRIGGER IF EXISTS T;
ALTER TABLE T ADD COLUMN extra_8822 VARCHAR(255) DEFAULT CURRENT_TIMESTAMP;
SELECT LEAD(B) OVER (ORDER BY B ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T;
INSERT INTO T VALUES (NULL, NULL, NULL);
ALTER TABLE T RENAME TO T_r4159;
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;
COMMIT TRANSACTION;
UPDATE t1 SET c = c + 1 WHERE c BETWEEN 0 AND 100;
ALTER TABLE t1 ADD COLUMN extra_369 CLOB COLLATE RTRIM;
ALTER TABLE t1 RENAME TO t1_r8858;
SELECT * FROM t1 WHERE c IN (SELECT c FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE c IN (SELECT c FROM t1 LIMIT -1);
ALTER TABLE T RENAME TO T_r1073;
INSERT OR ROLLBACK INTO T VALUES ('x', 'x', NULL);
SELECT SUM(d) OVER (ORDER BY d ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM t1;
SELECT COUNT(*) FROM T;
ALTER TABLE T ADD COLUMN extra_6831 NCHAR(55) UNIQUE;
SELECT MAX(B) FROM T;
VACUUM;
ALTER TABLE T RENAME COLUMN B TO B_r5193;
ANALYZE;
```
## Actual output
```sql
[{"journal_mode":"memory"}]
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":"von","c":20,"_ROWID_":2}]
[{"b":"Braun","c":30},
{"b":"von","c":20}]
```
## Expectation
```sql
```
## Flag
```
-json
```
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,626 @@
## 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 VIRTUAL TABLE t0 USING fts3("x", "y", "z");
DROP TABLE t0;
SAVEPOINT sp7292;
BEGIN IMMEDIATE TRANSACTION;
.print
BEGIN DEFERRED TRANSACTION;
PRAGMA synchronous;
ATTACH DATABASE ':memory:' AS aux73;
SAVEPOINT sp987;
ATTACH DATABASE ':memory:' AS aux76;
CREATE TABLE t1(a BIGINT PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES ((likelihood(length('hello'), -(-('('))) + 2147483646), '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 (
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 OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
SELECT * FROM T2;
SELECT * FROM T2 AS a RIGHT JOIN T2 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux76;
INSERT INTO T2 DEFAULT VALUES;
ALTER TABLE T2 DROP COLUMN a;
VACUUM main;
ROLLBACK TRANSACTION TO SAVEPOINT sp987;
RELEASE SAVEPOINT sp987;
SELECT GROUP_CONCAT(a, '.') OVER (PARTITION BY a ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T2;
SELECT * FROM T1;
CREATE VIEW IF NOT EXISTS v_T1_5205 AS SELECT a FROM T1;
DETACH DATABASE aux73;
CREATE TRIGGER IF NOT EXISTS trg_T2_2706 AFTER UPDATE OF b ON T2 BEGIN SELECT RAISE(IGNORE); END;
ALTER TABLE T2 DROP COLUMN b;
ANALYZE;
END TRANSACTION;
DELETE FROM t1 WHERE d > (SELECT AVG(d) FROM t1);
SELECT COUNT(*) FROM t1;
ALTER TABLE t1 RENAME TO t1_r9370;
CREATE TRIGGER IF NOT EXISTS trg_t1_5404 BEFORE UPDATE OF a ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) 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 T2;
ANALYZE;
SELECT TOTAL(b) FROM T1;
REINDEX;
PRAGMA journal_mode = 'PERSIST';
ANALYZE;
ANALYZE T2;
WITH cte AS (SELECT a, COUNT(*) FROM T2 GROUP BY a) SELECT * FROM cte;
ANALYZE;
VACUUM;
COMMIT;
INSERT INTO t1 SELECT * FROM t1;
SELECT * FROM T2 WHERE a > ANY (SELECT a FROM T2);
ROLLBACK TRANSACTION TO SAVEPOINT sp7292;
RELEASE SAVEPOINT sp7292;
REINDEX;
creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z");
DROP TABLE t0;
SAVEPOINT sp7292;
BEGIN IMMEDIATE TRANSACTION;
.print
BEGIN DEFERRED TRANSACTION;
PRAGMA synchronous;
ATTACH DATABASE ':memory:' AS aux73;
SAVEPOINT sp987;
ATTACH DATABASE ':memory:' AS aux76;
CREATE TABLE t1(a BIGINT PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES ((likelihood(length('hello'), -(-(9223372036854775807))) + 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 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 OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
SELECT * FROM T2;
SELECT * FROM T2 AS a RIGHT JOIN T2 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux76;
INSERT INTO T2 DEFAULT VALUES;
ALTER TABLE T2 DROP COLUMN a;
VACUUM main;
ROLLBACK TRANSACTION TO SAVEPOINT sp987;
RELEASE SAVEPOINT sp987;
SELECT GROUP_CONCAT(a, '.') OVER (PARTITION BY a ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T2;
SELECT * FROM T1;
CREATE VIEW IF NOT EXISTS v_T1_5205 AS SELECT a FROM T1;
DETACH DATABASE aux73;
CREATE TRIGGER IF NOT EXISTS trg_T2_2706 AFTER UPDATE OF b ON T2 BEGIN SELECT RAISE(IGNORE); END;
ALTER TABLE T2 DROP COLUMN b;
ANALYZE;
END TRANSACTION;
DELETE FROM t1 WHERE d > (SELECT AVG(d) FROM t1);
SELECT COUNT(*) FROM t1;
ALTER TABLE t1 RENAME TO t1_r9370;
CREATE TRIGGER IF NOT EXISTS trg_t1_5404 BEFORE UPDATE OF a ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) 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 T2;
ANALYZE;
SELECT TOTAL(b) FROM T1;
REINDEX;
PRAGMA journal_mode = 'PERSIST';
ANALYZE;
ANALYZE T2;
WITH cte AS (SELECT a, COUNT(*) FROM T2 GROUP BY a) SELECT * FROM cte;
ANALYZE;
VACUUM;
COMMIT;
INSERT INTO t1 SELECT * FROM t1;
SELECT * FROM T2 WHERE a > ANY (SELECT a FROM T2);
ROLLBACK TRANSACTION TO SAVEPOINT sp7292;
RELEASE SAVEPOINT sp7292;
REINDEX;
creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z");
DROP TABLE t0;
SAVEPOINT sp7292;
BEGIN IMMEDIATE TRANSACTION;
.print
BEGIN DEFERRED TRANSACTION;
PRAGMA synchronous;
ATTACH DATABASE ':memory:' AS aux73;
SAVEPOINT sp987;
ATTACH DATABASE ':memory:' AS aux76;
CREATE TABLE t1(a BIGINT PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES ((likelihood(length('hello'), -(-(9223372036854775807))) + 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 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 OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
SELECT * FROM T2;
SELECT * FROM T2 AS a RIGHT JOIN T2 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux76;
INSERT INTO T2 DEFAULT VALUES;
ALTER TABLE T2 DROP COLUMN a;
VACUUM main;
ROLLBACK TRANSACTION TO SAVEPOINT sp987;
RELEASE SAVEPOINT sp987;
SELECT GROUP_CONCAT(a, '.') OVER (PARTITION BY a ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T2;
SELECT * FROM T1;
CREATE VIEW IF NOT EXISTS v_T1_5205 AS SELECT a FROM T1;
DETACH DATABASE aux73;
CREATE TRIGGER IF NOT EXISTS trg_T2_2706 AFTER UPDATE OF b ON T2 BEGIN SELECT RAISE(IGNORE); END;
ALTER TABLE T2 DROP COLUMN b;
ANALYZE;
END TRANSACTION;
DELETE FROM t1 WHERE d > (SELECT AVG(d) FROM t1);
SELECT COUNT(*) FROM t1;
ALTER TABLE t1 RENAME TO t1_r9370;
CREATE TRIGGER IF NOT EXISTS trg_t1_5404 BEFORE UPDATE OF a ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) 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 T2;
ANALYZE;
SELECT TOTAL(b) FROM T1;
REINDEX;
PRAGMA journal_mode = 'PERSIST';
ANALYZE;
ANALYZE T2;
WITH cte AS (SELECT a, COUNT(*) FROM T2 GROUP BY a) SELECT * FROM cte;
ANALYZE;
VACUUM;
COMMIT;
INSERT INTO t1 SELECT * FROM t1;
SELECT * FROM T2 WHERE a > ANY (SELECT a FROM T2);
ROLLBACK TRANSACTION TO SAVEPOINT sp7292;
RELEASE SAVEPOINT sp7292;
REINDEX;
creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z");
DROP TABLE t0;
SAVEPOINT sp7292;
BEGIN IMMEDIATE TRANSACTION;
.print
BEGIN DEFERRED TRANSACTION;
PRAGMA synchronous;
ATTACH DATABASE ':memory:' AS aux73;
SAVEPOINT sp987;
ATTACH DATABASE ':memory:' AS aux76;
CREATE TABLE t1(a BIGINT PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES ((likelihood(length('hello'), -(-(9223372036854775807))) + 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 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 OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
SELECT * FROM T2;
SELECT * FROM T2 AS a RIGHT JOIN T2 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux76;
INSERT INTO T2 DEFAULT VALUES;
ALTER TABLE T2 DROP COLUMN a;
VACUUM main;
ROLLBACK TRANSACTION TO SAVEPOINT sp987;
RELEASE SAVEPOINT sp987;
SELECT GROUP_CONCAT(a, '.') OVER (PARTITION BY a ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T2;
SELECT * FROM T1;
CREATE VIEW IF NOT EXISTS v_T1_5205 AS SELECT a FROM T1;
DETACH DATABASE aux73;
CREATE TRIGGER IF NOT EXISTS trg_T2_2706 AFTER UPDATE OF b ON T2 BEGIN SELECT RAISE(IGNORE); END;
ALTER TABLE T2 DROP COLUMN b;
ANALYZE;
END TRANSACTION;
DELETE FROM t1 WHERE d > (SELECT AVG(d) FROM t1);
SELECT COUNT(*) FROM t1;
ALTER TABLE t1 RENAME TO t1_r9370;
CREATE TRIGGER IF NOT EXISTS trg_t1_5404 BEFORE UPDATE OF a ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) 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 T2;
ANALYZE;
SELECT TOTAL(b) FROM T1;
REINDEX;
PRAGMA journal_mode = 'PERSIST';
ANALYZE;
ANALYZE T2;
WITH cte AS (SELECT a, COUNT(*) FROM T2 GROUP BY a) SELECT * FROM cte;
ANALYZE;
VACUUM;
COMMIT;
INSERT INTO t1 SELECT * FROM t1;
SELECT * FROM T2 WHERE a > ANY (SELECT a FROM T2);
ROLLBACK TRANSACTION TO SAVEPOINT sp7292;
RELEASE SAVEPOINT sp7292;
REINDEX;
creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z");
DROP TABLE t0;
SAVEPOINT sp7292;
BEGIN IMMEDIATE TRANSACTION;
.print
BEGIN DEFERRED TRANSACTION;
PRAGMA synchronous;
ATTACH DATABASE ':memory:' AS aux73;
SAVEPOINT sp987;
ATTACH DATABASE ':memory:' AS aux76;
CREATE TABLE t1(a BIGINT PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES ((likelihood(length('hello'), -(-(9223372036854775807))) + 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 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 OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
SELECT * FROM T2;
SELECT * FROM T2 AS a RIGHT JOIN T2 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux76;
INSERT INTO T2 DEFAULT VALUES;
ALTER TABLE T2 DROP COLUMN a;
VACUUM main;
ROLLBACK TRANSACTION TO SAVEPOINT sp987;
RELEASE SAVEPOINT sp987;
SELECT GROUP_CONCAT(a, '.') OVER (PARTITION BY a ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T2;
SELECT * FROM T1;
CREATE VIEW IF NOT EXISTS v_T1_5205 AS SELECT a FROM T1;
DETACH DATABASE aux73;
CREATE TRIGGER IF NOT EXISTS trg_T2_2706 AFTER UPDATE OF b ON T2 BEGIN SELECT RAISE(IGNORE); END;
ALTER TABLE T2 DROP COLUMN b;
ANALYZE;
END TRANSACTION;
DELETE FROM t1 WHERE d > (SELECT AVG(d) FROM t1);
SELECT COUNT(*) FROM t1;
ALTER TABLE t1 RENAME TO t1_r9370;
CREATE TRIGGER IF NOT EXISTS trg_t1_5404 BEFORE UPDATE OF a ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) 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 T2;
ANALYZE;
SELECT TOTAL(b) FROM T1;
REINDEX;
PRAGMA journal_mode = 'PERSIST';
ANALYZE;
ANALYZE T2;
WITH cte AS (SELECT a, COUNT(*) FROM T2 GROUP BY a) SELECT * FROM cte;
ANALYZE;
VACUUM;
COMMIT;
INSERT INTO t1 SELECT * FROM t1;
SELECT * FROM T2 WHERE a > ANY (SELECT a FROM T2);
ROLLBACK TRANSACTION TO SAVEPOINT sp7292;
RELEASE SAVEPOINT sp7292;
REINDEX;
creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z");
DROP TABLE t0;
SAVEPOINT sp7292;
BEGIN IMMEDIATE TRANSACTION;
.print
BEGIN DEFERRED TRANSACTION;
PRAGMA synchronous;
ATTACH DATABASE ':memory:' AS aux73;
SAVEPOINT sp987;
ATTACH DATABASE ':memory:' AS aux76;
CREATE TABLE t1(a BIGINT PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES ((likelihood(length('hello'), -(-(9223372036854775807))) + 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 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 OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
SELECT * FROM T2;
SELECT * FROM T2 AS a RIGHT JOIN T2 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux76;
INSERT INTO T2 DEFAULT VALUES;
ALTER TABLE T2 DROP COLUMN a;
VACUUM main;
ROLLBACK TRANSACTION TO SAVEPOINT sp987;
RELEASE SAVEPOINT sp987;
SELECT GROUP_CONCAT(a, '.') OVER (PARTITION BY a ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T2;
SELECT * FROM T1;
CREATE VIEW IF NOT EXISTS v_T1_5205 AS SELECT a FROM T1;
DETACH DATABASE aux73;
CREATE TRIGGER IF NOT EXISTS trg_T2_2706 AFTER UPDATE OF b ON T2 BEGIN SELECT RAISE(IGNORE); END;
ALTER TABLE T2 DROP COLUMN b;
ANALYZE;
END TRANSACTION;
DELETE FROM t1 WHERE d > (SELECT AVG(d) FROM t1);
SELECT COUNT(*) FROM t1;
ALTER TABLE t1 RENAME TO t1_r9370;
CREATE TRIGGER IF NOT EXISTS trg_t1_5404 BEFORE UPDATE OF a ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) 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 T2;
ANALYZE;
SELECT TOTAL(b) FROM T1;
REINDEX;
PRAGMA journal_mode = 'PERSIST';
ANALYZE;
ANALYZE T2;
WITH cte AS (SELECT a, COUNT(*) FROM T2 GROUP BY a) SELECT * FROM cte;
ANALYZE;
VACUUM;
COMMIT;
INSERT INTO t1 SELECT * FROM t1;
SELECT * FROM T2 WHERE a > ANY (SELECT a FROM T2);
ROLLBACK TRANSACTION TO SAVEPOINT sp7292;
RELEASE SAVEPOINT sp7292;
REINDEX;
creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z");
DROP TABLE t0;
SAVEPOINT sp7292;
BEGIN IMMEDIATE TRANSACTION;
.print
BEGIN DEFERRED TRANSACTION;
PRAGMA synchronous;
ATTACH DATABASE ':memory:' AS aux73;
SAVEPOINT sp987;
ATTACH DATABASE ':memory:' AS aux76;
CREATE TABLE t1(a BIGINT PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES ((likelihood(length('hello'), -(-(9223372036854775807))) + 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 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 OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
SELECT * FROM T2;
SELECT * FROM T2 AS a RIGHT JOIN T2 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux76;
INSERT INTO T2 DEFAULT VALUES;
ALTER TABLE T2 DROP COLUMN a;
VACUUM main;
ROLLBACK TRANSACTION TO SAVEPOINT sp987;
RELEASE SAVEPOINT sp987;
SELECT GROUP_CONCAT(a, '.') OVER (PARTITION BY a ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T2;
SELECT * FROM T1;
CREATE VIEW IF NOT EXISTS v_T1_5205 AS SELECT a FROM T1;
DETACH DATABASE aux73;
CREATE TRIGGER IF NOT EXISTS trg_T2_2706 AFTER UPDATE OF b ON T2 BEGIN SELECT RAISE(IGNORE); END;
ALTER TABLE T2 DROP COLUMN b;
ANALYZE;
END TRANSACTION;
DELETE FROM t1 WHERE d > (SELECT AVG(d) FROM t1);
SELECT COUNT(*) FROM t1;
ALTER TABLE t1 RENAME TO t1_r9370;
CREATE TRIGGER IF NOT EXISTS trg_t1_5404 BEFORE UPDATE OF a ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) 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 T2;
ANALYZE;
SELECT TOTAL(b) FROM T1;
REINDEX;
PRAGMA journal_mode = 'PERSIST';
ANALYZE;
ANALYZE T2;
WITH cte AS (SELECT a, COUNT(*) FROM T2 GROUP BY a) SELECT * FROM cte;
ANALYZE;
VACUUM;
COMMIT;
INSERT INTO t1 SELECT * FROM t1;
SELECT * FROM T2 WHERE a > ANY (SELECT a FROM T2);
ROLLBACK TRANSACTION TO SAVEPOINT sp7292;
RELEASE SAVEPOINT sp7292;
REINDEX;
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;
INSERT OR ROLLBACK INTO T1 VALUES (6, 0);
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
```
## 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
```
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,446 @@
## 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 sp4770;
-- typeof(1.0)
.limit
SAVEPOINT sp9818;
ATTACH DATABASE ':memory:' AS aux84;
SAVEPOINT sp2531;
.check
SAVEPOINT sp9694;
PRAGMA encoding = 'UTF-8';
ATTACH DATABASE ':memory:' AS aux44;
CREATE TABLE main.main.`T` (
a REAL,
b REAL,
c REAL
);
INSERT INTO T VALUES (strftime('%s', if(coalesce(NULL, NULL, NULL) -> sqrt(datetime(-(-(CAST(x'2f' AS BLOB))))), typeof(NULL), (-(-(datetime(CAST(((0 + 0.0) + 0.0) AS BIGINT)))) + 9145485036963515638))),1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (SELECT * FROM T) SELEC_m * FROM T) SELEC_m * FROM T WHERE NOT NOT (NOT NOT (+b < 2.0)) ORDER BY b;
DETACH DATABASE aux44;
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T t2 WHERE t2.a = T.a);
INSERT INTO T VALUES (NULL, NULL, NULL);
INSERT OR ROLLBACK INTO T VALUES (NULL, NULL, '');
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE +x<21) SELECT * FROM cnt;
ALTER TABLE T DROP COLUMN b;
DROP VIEW IF EXISTS T;
SELECT ROW_NUMBER() OVER (ORDER BY a ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T;
INSERT OR ROLLBACK INTO T VALUES (-2, NULL, 0);
ROLLBACK TO sp9694;
RELEASE sp9694;
ALTER TABLE T ADD COLUMN extra_4532 UNSIGNED BIG INT DEFAULT (abs(random()) % 1000);
SELECT a, COUNT(*) FROM T GROUP BY a HAVING COUNT(*) = (SELECT COUNT(*) FROM T);
CREATE TRIGGER IF NOT EXISTS trg_T_7371 BEFORE UPDATE ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT COUNT(*) FROM T;
ROLLBACK TO sp2531;
RELEASE sp2531;
INSERT OR ABORT INTO T VALUES (6, 0, 0);
SELECT COUNT(*) FROM T;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION SELECT x+1 FROM cnt WHERE x<8) SELECT * FROM cnt;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<0) SELECT * FROM cnt;
DETACH DATABASE aux84;
SELECT * FROM T t1 JOIN T t2 ON t1.a = (SELECT a FROM T LIMIT 1);
ALTER TABLE T RENAME TO T_r9068;
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;
ROLLBACK TRANSACTION TO SAVEPOINT sp9818;
RELEASE SAVEPOINT sp9818;
SELECT STRING_AGG(a, '|') FROM T;
INSERT INTO T VALUES (NULL, NULL, NULL);
SELECT LEAD(a, 1, NULL) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T;
SELECT RANK() OVER (ORDER BY c GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T;
SELECT COUNT(*) FROM T;
SELECT * FROM T AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
INSERT INTO T VALUES (NULL, NULL, NULL);
ALTER TABLE T ADD COLUMN extra_9504 DOUBLE COLLATE RTRIM;
SELECT * FROM T NATURAL JOIN T;
ANALYZE;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T VALUES (NULL, NULL, NULL);
WITH cte AS (SELECT CASE WHEN a > 0 THEN "pos" ELSE "neg" END AS sign FROM T) SELECT * FROM cte;
SELECT FIRST_VALUE(c) OVER (ORDER BY c ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
ALTER TABLE T ADD COLUMN extra_5697 BIGINT COLLATE NOCASE;
RELEASE sp4770;
PRAGMA short_column_names = OFF;
CREATE TRIGGER IF NOT EXISTS trg_T_534 AFTER UPDATE OF A ON T BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT * FROM T WHERE C = (SELECT GROUP_CONCAT(C) FROM T);
SAVEPOINT sp4770;
.limit
SAVEPOINT sp9818;
ATTACH DATABASE ':memory:' AS aux84;
SAVEPOINT sp2531;
.check
SAVEPOINT sp9694;
PRAGMA encoding = 'UTF-8';
ATTACH DATABASE ':memory:' AS aux44;
CREATE TABLE main.main.`T` (
a REAL,
b REAL,
c REAL
);
INSERT INTO T VALUES (strftime('%s', if(coalesce(NULL, NULL, NULL) -> sqrt(datetime(-(-(CAST(x'2f' AS BLOB))))), typeof(NULL), (0 + 9145485036963515638))),1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (SELECT * FROM T) SELEC_m * FROM T) SELEC_m * FROM T WHERE NOT NOT (NOT NOT (+b < 2.0)) ORDER BY b;
DETACH DATABASE aux44;
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T t2 WHERE t2.a = T.a);
INSERT INTO T VALUES (NULL, NULL, NULL);
INSERT OR ROLLBACK INTO T VALUES (NULL, NULL, '');
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE +x<21) SELECT * FROM cnt;
ALTER TABLE T DROP COLUMN b;
DROP VIEW IF EXISTS T;
SELECT ROW_NUMBER() OVER (ORDER BY a ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T;
INSERT OR ROLLBACK INTO T VALUES (-2, NULL, 0);
ROLLBACK TO sp9694;
RELEASE sp9694;
ALTER TABLE T ADD COLUMN extra_4532 UNSIGNED BIG INT DEFAULT (abs(random()) % 1000);
SELECT a, COUNT(*) FROM T GROUP BY a HAVING COUNT(*) = (SELECT COUNT(*) FROM T);
CREATE TRIGGER IF NOT EXISTS trg_T_7371 BEFORE UPDATE ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT COUNT(*) FROM T;
ROLLBACK TO sp2531;
RELEASE sp2531;
INSERT OR ABORT INTO T VALUES (6, 0, 0);
SELECT COUNT(*) FROM T;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION SELECT x+1 FROM cnt WHERE x<8) SELECT * FROM cnt;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<0) SELECT * FROM cnt;
DETACH DATABASE aux84;
SELECT * FROM T t1 JOIN T t2 ON t1.a = (SELECT a FROM T LIMIT 1);
ALTER TABLE T RENAME TO T_r9068;
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;
ROLLBACK TRANSACTION TO SAVEPOINT sp9818;
RELEASE SAVEPOINT sp9818;
SELECT STRING_AGG(a, '|') FROM T;
INSERT INTO T VALUES (NULL, NULL, NULL);
SELECT LEAD(a, 1, NULL) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T;
SELECT RANK() OVER (ORDER BY c GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T;
SELECT COUNT(*) FROM T;
SELECT * FROM T AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
INSERT INTO T VALUES (NULL, NULL, NULL);
ALTER TABLE T ADD COLUMN extra_9504 DOUBLE COLLATE RTRIM;
SELECT * FROM T NATURAL JOIN T;
ANALYZE;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T VALUES (NULL, NULL, NULL);
WITH cte AS (SELECT CASE WHEN a > 0 THEN "pos" ELSE "neg" END AS sign FROM T) SELECT * FROM cte;
SELECT FIRST_VALUE(c) OVER (ORDER BY c ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
ALTER TABLE T ADD COLUMN extra_5697 BIGINT COLLATE NOCASE;
RELEASE sp4770;
PRAGMA short_column_names = OFF;
CREATE TRIGGER IF NOT EXISTS trg_T_534 AFTER UPDATE OF A ON T BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT * FROM T WHERE C = (SELECT GROUP_CONCAT(C) FROM T);
SAVEPOINT sp4770;
.limit
SAVEPOINT sp9818;
ATTACH DATABASE ':memory:' AS aux84;
SAVEPOINT sp2531;
.check
SAVEPOINT sp9694;
PRAGMA encoding = 'UTF-8';
ATTACH DATABASE ':memory:' AS aux44;
CREATE TABLE main.main.`T` (
a REAL,
b REAL,
c REAL
);
INSERT INTO T VALUES (strftime('%s', if(coalesce(NULL, NULL, NULL) -> sqrt(datetime(-(-(CAST(x'2f' AS BLOB))))), typeof(NULL), (0 + 9145485036963515638))),1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (SELECT * FROM T) SELEC_m * FROM T) SELEC_m * FROM T WHERE NOT NOT (NOT NOT (+b < 2.0)) ORDER BY b;
DETACH DATABASE aux44;
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T t2 WHERE t2.a = T.a);
INSERT INTO T VALUES (NULL, NULL, NULL);
INSERT OR ROLLBACK INTO T VALUES (NULL, NULL, '');
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE +x<21) SELECT * FROM cnt;
ALTER TABLE T DROP COLUMN b;
DROP VIEW IF EXISTS T;
SELECT ROW_NUMBER() OVER (ORDER BY a ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T;
INSERT OR ROLLBACK INTO T VALUES (-2, NULL, 0);
ROLLBACK TO sp9694;
RELEASE sp9694;
ALTER TABLE T ADD COLUMN extra_4532 UNSIGNED BIG INT DEFAULT (abs(random()) % 1000);
SELECT a, COUNT(*) FROM T GROUP BY a HAVING COUNT(*) = (SELECT COUNT(*) FROM T);
CREATE TRIGGER IF NOT EXISTS trg_T_7371 BEFORE UPDATE ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT COUNT(*) FROM T;
ROLLBACK TO sp2531;
RELEASE sp2531;
INSERT OR ABORT INTO T VALUES (6, 0, 0);
SELECT COUNT(*) FROM T;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION SELECT x+1 FROM cnt WHERE x<8) SELECT * FROM cnt;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<0) SELECT * FROM cnt;
DETACH DATABASE aux84;
SELECT * FROM T t1 JOIN T t2 ON t1.a = (SELECT a FROM T LIMIT 1);
ALTER TABLE T RENAME TO T_r9068;
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;
ROLLBACK TRANSACTION TO SAVEPOINT sp9818;
RELEASE SAVEPOINT sp9818;
SELECT STRING_AGG(a, '|') FROM T;
INSERT INTO T VALUES (NULL, NULL, NULL);
SELECT LEAD(a, 1, NULL) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T;
SELECT RANK() OVER (ORDER BY c GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T;
SELECT COUNT(*) FROM T;
SELECT * FROM T AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
INSERT INTO T VALUES (NULL, NULL, NULL);
ALTER TABLE T ADD COLUMN extra_9504 DOUBLE COLLATE RTRIM;
SELECT * FROM T NATURAL JOIN T;
ANALYZE;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T VALUES (NULL, NULL, NULL);
WITH cte AS (SELECT CASE WHEN a > 0 THEN "pos" ELSE "neg" END AS sign FROM T) SELECT * FROM cte;
SELECT FIRST_VALUE(c) OVER (ORDER BY c ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
ALTER TABLE T ADD COLUMN extra_5697 BIGINT COLLATE NOCASE;
RELEASE sp4770;
PRAGMA short_column_names = OFF;
CREATE TRIGGER IF NOT EXISTS trg_T_534 AFTER UPDATE OF A ON T BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT * FROM T WHERE C = (SELECT GROUP_CONCAT(C) FROM T);
SAVEPOINT sp4770;
.limit
SAVEPOINT sp9818;
ATTACH DATABASE ':memory:' AS aux84;
SAVEPOINT sp2531;
.check
SAVEPOINT sp9694;
PRAGMA encoding = 'UTF-8';
ATTACH DATABASE ':memory:' AS aux44;
CREATE TABLE main.main.`T` (
a REAL,
b REAL,
c REAL
);
INSERT INTO T VALUES (strftime('%s', if(coalesce(NULL, NULL, NULL) -> sqrt(datetime(-(-(CAST(x'2f' AS BLOB))))), typeof(NULL), (0 + 9145485036963515638))),1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (SELECT * FROM T) SELEC_m * FROM T) SELEC_m * FROM T WHERE NOT NOT (NOT NOT (+b < 2.0)) ORDER BY b;
DETACH DATABASE aux44;
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T t2 WHERE t2.a = T.a);
INSERT INTO T VALUES (NULL, NULL, NULL);
INSERT OR ROLLBACK INTO T VALUES (NULL, NULL, '');
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE +x<21) SELECT * FROM cnt;
ALTER TABLE T DROP COLUMN b;
DROP VIEW IF EXISTS T;
SELECT ROW_NUMBER() OVER (ORDER BY a ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T;
INSERT OR ROLLBACK INTO T VALUES (-2, NULL, 0);
ROLLBACK TO sp9694;
RELEASE sp9694;
ALTER TABLE T ADD COLUMN extra_4532 UNSIGNED BIG INT DEFAULT (abs(random()) % 1000);
SELECT a, COUNT(*) FROM T GROUP BY a HAVING COUNT(*) = (SELECT COUNT(*) FROM T);
CREATE TRIGGER IF NOT EXISTS trg_T_7371 BEFORE UPDATE ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT COUNT(*) FROM T;
ROLLBACK TO sp2531;
RELEASE sp2531;
INSERT OR ABORT INTO T VALUES (6, 0, 0);
SELECT COUNT(*) FROM T;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION SELECT x+1 FROM cnt WHERE x<8) SELECT * FROM cnt;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<0) SELECT * FROM cnt;
DETACH DATABASE aux84;
SELECT * FROM T t1 JOIN T t2 ON t1.a = (SELECT a FROM T LIMIT 1);
ALTER TABLE T RENAME TO T_r9068;
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;
ROLLBACK TRANSACTION TO SAVEPOINT sp9818;
RELEASE SAVEPOINT sp9818;
SELECT STRING_AGG(a, '|') FROM T;
INSERT INTO T VALUES (NULL, NULL, NULL);
SELECT LEAD(a, 1, NULL) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T;
SELECT RANK() OVER (ORDER BY c GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T;
SELECT COUNT(*) FROM T;
SELECT * FROM T AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
INSERT INTO T VALUES (NULL, NULL, NULL);
ALTER TABLE T ADD COLUMN extra_9504 DOUBLE COLLATE RTRIM;
SELECT * FROM T NATURAL JOIN T;
ANALYZE;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T VALUES (NULL, NULL, NULL);
WITH cte AS (SELECT CASE WHEN a > 0 THEN "pos" ELSE "neg" END AS sign FROM T) SELECT * FROM cte;
SELECT FIRST_VALUE(c) OVER (ORDER BY c ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
ALTER TABLE T ADD COLUMN extra_5697 BIGINT COLLATE NOCASE;
RELEASE sp4770;
PRAGMA short_column_names = OFF;
CREATE TRIGGER IF NOT EXISTS trg_T_534 AFTER UPDATE OF A ON T BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT * FROM T WHERE C = (SELECT GROUP_CONCAT(C) FROM T);
SAVEPOINT sp4770;
.limit
SAVEPOINT sp9818;
ATTACH DATABASE ':memory:' AS aux84;
SAVEPOINT sp2531;
.check
SAVEPOINT sp9694;
PRAGMA encoding = 'UTF-8';
ATTACH DATABASE ':memory:' AS aux44;
CREATE TABLE main.main.`T` (
a REAL,
b REAL,
c REAL
);
INSERT INTO T VALUES (strftime('%s', if(coalesce(NULL, NULL, NULL) -> sqrt(datetime(-(-(CAST(x'2f' AS BLOB))))), typeof(NULL), (0 + 9145485036963515638))),1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (SELECT * FROM T) SELEC_m * FROM T) SELEC_m * FROM T WHERE NOT NOT (NOT NOT (+b < 2.0)) ORDER BY b;
DETACH DATABASE aux44;
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T t2 WHERE t2.a = T.a);
INSERT INTO T VALUES (NULL, NULL, NULL);
INSERT OR ROLLBACK INTO T VALUES (NULL, NULL, '');
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE +x<21) SELECT * FROM cnt;
ALTER TABLE T DROP COLUMN b;
DROP VIEW IF EXISTS T;
SELECT ROW_NUMBER() OVER (ORDER BY a ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T;
INSERT OR ROLLBACK INTO T VALUES (-2, NULL, 0);
ROLLBACK TO sp9694;
RELEASE sp9694;
ALTER TABLE T ADD COLUMN extra_4532 UNSIGNED BIG INT DEFAULT (abs(random()) % 1000);
SELECT a, COUNT(*) FROM T GROUP BY a HAVING COUNT(*) = (SELECT COUNT(*) FROM T);
CREATE TRIGGER IF NOT EXISTS trg_T_7371 BEFORE UPDATE ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT COUNT(*) FROM T;
ROLLBACK TO sp2531;
RELEASE sp2531;
INSERT OR ABORT INTO T VALUES (6, 0, 0);
SELECT COUNT(*) FROM T;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION SELECT x+1 FROM cnt WHERE x<8) SELECT * FROM cnt;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<0) SELECT * FROM cnt;
DETACH DATABASE aux84;
SELECT * FROM T t1 JOIN T t2 ON t1.a = (SELECT a FROM T LIMIT 1);
ALTER TABLE T RENAME TO T_r9068;
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;
ROLLBACK TRANSACTION TO SAVEPOINT sp9818;
RELEASE SAVEPOINT sp9818;
SELECT STRING_AGG(a, '|') FROM T;
INSERT INTO T VALUES (NULL, NULL, NULL);
SELECT LEAD(a, 1, NULL) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T;
SELECT RANK() OVER (ORDER BY c GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T;
SELECT COUNT(*) FROM T;
SELECT * FROM T AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
INSERT INTO T VALUES (NULL, NULL, NULL);
ALTER TABLE T ADD COLUMN extra_9504 DOUBLE COLLATE RTRIM;
SELECT * FROM T NATURAL JOIN T;
ANALYZE;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T VALUES (NULL, NULL, NULL);
WITH cte AS (SELECT CASE WHEN a > 0 THEN "pos" ELSE "neg" END AS sign FROM T) SELECT * FROM cte;
SELECT FIRST_VALUE(c) OVER (ORDER BY c ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
ALTER TABLE T ADD COLUMN extra_5697 BIGINT COLLATE NOCASE;
RELEASE sp4770;
PRAGMA short_column_names = OFF;
CREATE TRIGGER IF NOT EXISTS trg_T_534 AFTER UPDATE OF A ON T BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT * FROM T WHERE C = (SELECT GROUP_CONCAT(C) FROM T);
ALTER TABLE T RENAME TO T_r7047;
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T WHERE EXISTS (SELECT 1 FROM T));
CREATE INDEX IF NOT EXISTS idx_T_4760 ON T(lower(A));
INSERT INTO T DEFAULT VALUES;
DROP TABLE IF EXISTS T;
INSERT INTO T VALUES (NULL, NULL, 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
DELETE FROM t1 WHERE a IS NULL;
VACUUM main;
CREATE INDEX IF NOT EXISTS idx_T_3264 ON T((B + 1)) WHERE B > 0;
```
## 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
```
## 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
```
## 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
ATTACH DATABASE ':memory:' AS aux77;
ATTACH DATABASE ':memory:' AS aux50;
PRAGMA module_list;
.exit -(jsonb_each(json_each(x'4452f1f3ff4b'), '$.arr') + 1)
PRAGMA table_info(users);
PRAGMA short_column_names = ON;
PRAGMA user_version = '''''';
.print https://yewtu.be/watch?v=dQw4w9WgXcQ
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;
SELECT * FROM T AS a FULL JOIN T AS b ON a.rowid = b.rowid;
DELETE FROM T WHERE NOT A > (SELECT AVG(A) FROM T);
UPDATE T SET A = json_object('k', A) WHERE A BETWEEN 0 AND 100;
ALTER TABLE T RENAME COLUMN A TO A_r6693;
DELETE FROM T WHERE 0 RETURNING *;
SELECT COUNT(*) FROM T;
VACUUM main;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<0) SELECT * FROM cnt;
WITH RECURSIVE self(x) AS (SELECT 1 UNION ALL SELECT x FROM self) SELECT * FROM self LIMIT 5;
INSERT INTO T DEFAULT VALUES;
REINDEX T;
SELECT GROUP_CONCAT(B, '|') FROM T;
DELETE FROM T WHERE 0 RETURNING *;
SELECT * FROM T;
SELECT * FROM T WHERE B IN (SELECT B FROM T WHERE B LIKE "%%");
ALTER TABLE T RENAME TO T_r8238;
SELECT COUNT(*) FROM T;
PRAGMA trusted_schema = NO;
ALTER TABLE T DROP COLUMN B;
SELECT * FROM T AS a LEFT JOIN T AS b ON a.rowid = b.rowid;
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;
DETACH DATABASE aux50;
DETACH DATABASE aux77;
SELECT * FROM T CROSS JOIN T;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T VALUES (NULL, NULL);
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_9728 AS SELECT b FROM T;
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;
CREATE VIEW IF NOT EXISTS v_T_1441 AS SELECT b FROM T;
ANALYZE T;
```
## Actual output
```sql
sqlite_dbdata
generate_series
completion
fsdir
tables_used
sqlite_stmt
json_tree
fts4aux
fts3
fts4
sqlite_dbptr
fts3tokenize
bytecode
rtree_i32
sqlite_dbpage
rtree
dbstat
json_each
```
## Expectation
```sql
fsdir
generate_series
bytecode
dbstat
tables_used
sqlite_stmt
sqlite_dbpage
rtree_i32
fts4aux
fts3
zipfile
fts4
completion
rtree
fts3tokenize
```
## Flag
```
```
@@ -0,0 +1,756 @@
## 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 = '2';
PRAGMA vdbe_trace = NO;
.vfsinfo
PRAGMA secure_delete;
-- DATE
PRAGMA reverse_unordered_selects = ON;
.schema @@@@@@@@@@@@@@@@
.fullschema
PRAGMA auto_vacuum = INCREMENTAL;
PRAGMA recursive_triggers;
BEGIN IMMEDIATE TRANSACTION;
ATTACH DATABASE ':memory:' AS aux42;
SAVEPOINT sp664;
.read commands.sql
CREATE TABLE "t1"(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (round(unlikely(NULL), x'2f972a75f5d004ce366600'), 'Wernher', CAST(round(NULL, (-(-(if('', radians(timediff(1.7976931348623157e+308, 1.7976931348623157e+308)), 2))) * 1)) AS FLOAT), 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;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
.quit
ATTACH DATABASE ':memory:' AS aux33;
ATTACH DATABASE ':memory:' AS aux74;
.nullvalue 232327d3-536b-41de-a764-a6301986aeab
CREATE TABLE [T] (
A VARCHAR(upper('你好')) PRIMARY KEY,
B VARCHAR(json_array()) NOT NULL,
C INTEGER,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', -degrees(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 NOT (C BETWEEN -1000 AND 1000) ORDER BY C ASC;
SELECT * FROM T;
PRAGMA vdbe_debug = 0;
ALTER TABLE T DROP COLUMN B;
CREATE TRIGGER IF NOT EXISTS trg_T_6262 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
CREATE TRIGGER IF NOT EXISTS trg_T_1635 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT AVG(C) FROM T;
ALTER TABLE T RENAME COLUMN B TO B_r9915;
DETACH DATABASE aux74;
DETACH DATABASE aux33;
SELECT * FROM t1 WHERE +a > ALL (SELECT a FROM t1);
DELETE FROM t1 WHERE 0;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, 0, -6, '');
CREATE TRIGGER IF NOT EXISTS trg_t1_7285 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DROP TRIGGER IF EXISTS t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
RELEASE sp664;
ALTER TABLE t1 ADD COLUMN extra_6969 DOUBLE NOT NULL DEFAULT 0;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1;
REINDEX;
SELECT STRING_AGG(d) FROM t1;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5722 AS SELECT a FROM t1;
ALTER TABLE t1 RENAME COLUMN c TO c_r6930;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1 AS a FULL JOIN t1 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux42;
ALTER TABLE t1 RENAME COLUMN d TO d_r1370;
SELECT * FROM t1 AS a JOIN t1 AS b ON a.rowid = b.rowid;
INSERT OR REPLACE INTO t1 VALUES (NULL, 0, -9, -5);
SELECT COUNT(*) FROM t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
REINDEX t1;
SELECT COUNT(*) FROM t1;
SELECT COUNT(*) FILTER (WHERE c IS NOT NULL), SUM(rowid) FILTER (WHERE c > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c) FILTER (WHERE c > 0 AND c < 100), COUNT(*) FILTER (WHERE typeof(c) = "text") FROM t1;
UPDATE t1 SET d = CURRENT_TIMESTAMP WHERE d BETWEEN 0 AND 100;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
COMMIT;
INSERT INTO t1 SELECT * FROM t1;
DELETE FROM t1 WHERE 1 RETURNING *;
BEGIN IMMEDIATE TRANSACTION;
ATTACH DATABASE ':memory:' AS aux42;
SAVEPOINT sp664;
.read commands.sql
CREATE TABLE "t1"(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (round(unlikely(NULL), x'2f972a75f5d004ce366600'), 'Wernher', CAST(10 AS FLOAT), 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;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
.quit
ATTACH DATABASE ':memory:' AS aux33;
ATTACH DATABASE ':memory:' AS aux74;
.nullvalue 232327d3-536b-41de-a764-a6301986aeab
CREATE TABLE [T] (
A VARCHAR(upper('你好')) PRIMARY KEY,
B VARCHAR(json_array()) NOT NULL,
C INTEGER,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', -degrees(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 NOT (C BETWEEN -1000 AND 1000) ORDER BY C ASC;
SELECT * FROM T;
PRAGMA vdbe_debug = 0;
ALTER TABLE T DROP COLUMN B;
CREATE TRIGGER IF NOT EXISTS trg_T_6262 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
CREATE TRIGGER IF NOT EXISTS trg_T_1635 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT AVG(C) FROM T;
ALTER TABLE T RENAME COLUMN B TO B_r9915;
DETACH DATABASE aux74;
DETACH DATABASE aux33;
SELECT * FROM t1 WHERE +a > ALL (SELECT a FROM t1);
DELETE FROM t1 WHERE 0;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, 0, -6, '');
CREATE TRIGGER IF NOT EXISTS trg_t1_7285 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DROP TRIGGER IF EXISTS t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
RELEASE sp664;
ALTER TABLE t1 ADD COLUMN extra_6969 DOUBLE NOT NULL DEFAULT 0;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1;
REINDEX;
SELECT STRING_AGG(d) FROM t1;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5722 AS SELECT a FROM t1;
ALTER TABLE t1 RENAME COLUMN c TO c_r6930;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1 AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux42;
ALTER TABLE t1 RENAME COLUMN d TO d_r1370;
SELECT * FROM t1 AS a JOIN t1 AS b ON a.rowid = b.rowid;
INSERT OR REPLACE INTO t1 VALUES (NULL, 0, -9, -5);
SELECT COUNT(*) FROM t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
REINDEX t1;
SELECT COUNT(*) FROM t1;
SELECT COUNT(*) FILTER (WHERE c IS NOT NULL), SUM(rowid) FILTER (WHERE c > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c) FILTER (WHERE c > 0 AND c < 100), COUNT(*) FILTER (WHERE typeof(c) = "text") FROM t1;
UPDATE t1 SET d = CURRENT_TIMESTAMP WHERE d BETWEEN 0 AND 100;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
COMMIT;
INSERT INTO t1 SELECT * FROM t1;
DELETE FROM t1 WHERE 1 RETURNING *;
BEGIN IMMEDIATE TRANSACTION;
ATTACH DATABASE ':memory:' AS aux42;
SAVEPOINT sp664;
.read commands.sql
CREATE TABLE "t1"(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (round(unlikely(NULL), x'2f972a75f5d004ce366600'), 'Wernher', CAST(10 AS FLOAT), 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;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
.quit
ATTACH DATABASE ':memory:' AS aux33;
ATTACH DATABASE ':memory:' AS aux74;
.nullvalue 232327d3-536b-41de-a764-a6301986aeab
CREATE TABLE [T] (
A VARCHAR(upper('你好')) PRIMARY KEY,
B VARCHAR(json_array()) NOT NULL,
C INTEGER,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', -degrees(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 NOT (C BETWEEN -1000 AND 1000) ORDER BY C ASC;
SELECT * FROM T;
PRAGMA vdbe_debug = 0;
ALTER TABLE T DROP COLUMN B;
CREATE TRIGGER IF NOT EXISTS trg_T_6262 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
CREATE TRIGGER IF NOT EXISTS trg_T_1635 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT AVG(C) FROM T;
ALTER TABLE T RENAME COLUMN B TO B_r9915;
DETACH DATABASE aux74;
DETACH DATABASE aux33;
SELECT * FROM t1 WHERE +a > ALL (SELECT a FROM t1);
DELETE FROM t1 WHERE 0;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, 0, -6, '');
CREATE TRIGGER IF NOT EXISTS trg_t1_7285 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DROP TRIGGER IF EXISTS t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
RELEASE sp664;
ALTER TABLE t1 ADD COLUMN extra_6969 DOUBLE NOT NULL DEFAULT 0;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1;
REINDEX;
SELECT STRING_AGG(d) FROM t1;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5722 AS SELECT a FROM t1;
ALTER TABLE t1 RENAME COLUMN c TO c_r6930;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1 AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux42;
ALTER TABLE t1 RENAME COLUMN d TO d_r1370;
SELECT * FROM t1 AS a JOIN t1 AS b ON a.rowid = b.rowid;
INSERT OR REPLACE INTO t1 VALUES (NULL, 0, -9, -5);
SELECT COUNT(*) FROM t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
REINDEX t1;
SELECT COUNT(*) FROM t1;
SELECT COUNT(*) FILTER (WHERE c IS NOT NULL), SUM(rowid) FILTER (WHERE c > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c) FILTER (WHERE c > 0 AND c < 100), COUNT(*) FILTER (WHERE typeof(c) = "text") FROM t1;
UPDATE t1 SET d = CURRENT_TIMESTAMP WHERE d BETWEEN 0 AND 100;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
COMMIT;
INSERT INTO t1 SELECT * FROM t1;
DELETE FROM t1 WHERE 1 RETURNING *;
BEGIN IMMEDIATE TRANSACTION;
ATTACH DATABASE ':memory:' AS aux42;
SAVEPOINT sp664;
.read commands.sql
CREATE TABLE "t1"(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (round(unlikely(NULL), x'2f972a75f5d004ce366600'), 'Wernher', CAST(10 AS FLOAT), 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;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
.quit
ATTACH DATABASE ':memory:' AS aux33;
ATTACH DATABASE ':memory:' AS aux74;
.nullvalue 232327d3-536b-41de-a764-a6301986aeab
CREATE TABLE [T] (
A VARCHAR(upper('你好')) PRIMARY KEY,
B VARCHAR(json_array()) NOT NULL,
C INTEGER,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', -degrees(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 NOT (C BETWEEN -1000 AND 1000) ORDER BY C ASC;
SELECT * FROM T;
PRAGMA vdbe_debug = 0;
ALTER TABLE T DROP COLUMN B;
CREATE TRIGGER IF NOT EXISTS trg_T_6262 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
CREATE TRIGGER IF NOT EXISTS trg_T_1635 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT AVG(C) FROM T;
ALTER TABLE T RENAME COLUMN B TO B_r9915;
DETACH DATABASE aux74;
DETACH DATABASE aux33;
SELECT * FROM t1 WHERE +a > ALL (SELECT a FROM t1);
DELETE FROM t1 WHERE 0;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, 0, -6, '');
CREATE TRIGGER IF NOT EXISTS trg_t1_7285 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DROP TRIGGER IF EXISTS t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
RELEASE sp664;
ALTER TABLE t1 ADD COLUMN extra_6969 DOUBLE NOT NULL DEFAULT 0;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1;
REINDEX;
SELECT STRING_AGG(d) FROM t1;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5722 AS SELECT a FROM t1;
ALTER TABLE t1 RENAME COLUMN c TO c_r6930;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1 AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux42;
ALTER TABLE t1 RENAME COLUMN d TO d_r1370;
SELECT * FROM t1 AS a JOIN t1 AS b ON a.rowid = b.rowid;
INSERT OR REPLACE INTO t1 VALUES (NULL, 0, -9, -5);
SELECT COUNT(*) FROM t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
REINDEX t1;
SELECT COUNT(*) FROM t1;
SELECT COUNT(*) FILTER (WHERE c IS NOT NULL), SUM(rowid) FILTER (WHERE c > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c) FILTER (WHERE c > 0 AND c < 100), COUNT(*) FILTER (WHERE typeof(c) = "text") FROM t1;
UPDATE t1 SET d = CURRENT_TIMESTAMP WHERE d BETWEEN 0 AND 100;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
COMMIT;
INSERT INTO t1 SELECT * FROM t1;
DELETE FROM t1 WHERE 1 RETURNING *;
BEGIN IMMEDIATE TRANSACTION;
ATTACH DATABASE ':memory:' AS aux42;
SAVEPOINT sp664;
.read commands.sql
CREATE TABLE "t1"(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (round(unlikely(NULL), x'2f972a75f5d004ce366600'), 'Wernher', CAST(10 AS FLOAT), 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;
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;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
.quit
ATTACH DATABASE ':memory:' AS aux33;
ATTACH DATABASE ':memory:' AS aux74;
.nullvalue 232327d3-536b-41de-a764-a6301986aeab
CREATE TABLE [T] (
A VARCHAR(upper('你好')) PRIMARY KEY,
B VARCHAR(json_array()) NOT NULL,
C INTEGER,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', -degrees(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 NOT (C BETWEEN -1000 AND 1000) ORDER BY C ASC;
SELECT * FROM T;
PRAGMA vdbe_debug = 0;
ALTER TABLE T DROP COLUMN B;
CREATE TRIGGER IF NOT EXISTS trg_T_6262 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
CREATE TRIGGER IF NOT EXISTS trg_T_1635 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT AVG(C) FROM T;
ALTER TABLE T RENAME COLUMN B TO B_r9915;
DETACH DATABASE aux74;
DETACH DATABASE aux33;
SELECT * FROM t1 WHERE +a > ALL (SELECT a FROM t1);
DELETE FROM t1 WHERE 0;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, 0, -6, '');
CREATE TRIGGER IF NOT EXISTS trg_t1_7285 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DROP TRIGGER IF EXISTS t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
RELEASE sp664;
ALTER TABLE t1 ADD COLUMN extra_6969 DOUBLE NOT NULL DEFAULT 0;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1;
REINDEX;
SELECT STRING_AGG(d) FROM t1;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5722 AS SELECT a FROM t1;
ALTER TABLE t1 RENAME COLUMN c TO c_r6930;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1 AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux42;
ALTER TABLE t1 RENAME COLUMN d TO d_r1370;
SELECT * FROM t1 AS a JOIN t1 AS b ON a.rowid = b.rowid;
INSERT OR REPLACE INTO t1 VALUES (NULL, 0, -9, -5);
SELECT COUNT(*) FROM t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
REINDEX t1;
SELECT COUNT(*) FROM t1;
SELECT COUNT(*) FILTER (WHERE c IS NOT NULL), SUM(rowid) FILTER (WHERE c > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c) FILTER (WHERE c > 0 AND c < 100), COUNT(*) FILTER (WHERE typeof(c) = "text") FROM t1;
UPDATE t1 SET d = CURRENT_TIMESTAMP WHERE d BETWEEN 0 AND 100;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
COMMIT;
INSERT INTO t1 SELECT * FROM t1;
DELETE FROM t1 WHERE 1 RETURNING *;
BEGIN IMMEDIATE TRANSACTION;
ATTACH DATABASE ':memory:' AS aux42;
SAVEPOINT sp664;
.read commands.sql
CREATE TABLE "t1"(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (round(unlikely(NULL), x'2f972a75f5d004ce366600'), 'Wernher', CAST(10 AS FLOAT), 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;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
.quit
ATTACH DATABASE ':memory:' AS aux33;
ATTACH DATABASE ':memory:' AS aux74;
.nullvalue 232327d3-536b-41de-a764-a6301986aeab
CREATE TABLE [T] (
A VARCHAR(upper('你好')) PRIMARY KEY,
B VARCHAR(json_array()) NOT NULL,
C INTEGER,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', -degrees(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 NOT (C BETWEEN -1000 AND 1000) ORDER BY C ASC;
SELECT * FROM T;
PRAGMA vdbe_debug = 0;
ALTER TABLE T DROP COLUMN B;
CREATE TRIGGER IF NOT EXISTS trg_T_6262 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
CREATE TRIGGER IF NOT EXISTS trg_T_1635 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT AVG(C) FROM T;
ALTER TABLE T RENAME COLUMN B TO B_r9915;
DETACH DATABASE aux74;
DETACH DATABASE aux33;
SELECT * FROM t1 WHERE +a > ALL (SELECT a FROM t1);
DELETE FROM t1 WHERE 0;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, 0, -6, '');
CREATE TRIGGER IF NOT EXISTS trg_t1_7285 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DROP TRIGGER IF EXISTS t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
RELEASE sp664;
ALTER TABLE t1 ADD COLUMN extra_6969 DOUBLE NOT NULL DEFAULT 0;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1;
REINDEX;
SELECT STRING_AGG(d) FROM t1;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5722 AS SELECT a FROM t1;
ALTER TABLE t1 RENAME COLUMN c TO c_r6930;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1 AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux42;
ALTER TABLE t1 RENAME COLUMN d TO d_r1370;
SELECT * FROM t1 AS a JOIN t1 AS b ON a.rowid = b.rowid;
INSERT OR REPLACE INTO t1 VALUES (NULL, 0, -9, -5);
SELECT COUNT(*) FROM t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
REINDEX t1;
SELECT COUNT(*) FROM t1;
SELECT COUNT(*) FILTER (WHERE c IS NOT NULL), SUM(rowid) FILTER (WHERE c > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c) FILTER (WHERE c > 0 AND c < 100), COUNT(*) FILTER (WHERE typeof(c) = "text") FROM t1;
UPDATE t1 SET d = CURRENT_TIMESTAMP WHERE d BETWEEN 0 AND 100;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
COMMIT;
INSERT INTO t1 SELECT * FROM t1;
DELETE FROM t1 WHERE 1 RETURNING *;
BEGIN IMMEDIATE TRANSACTION;
ATTACH DATABASE ':memory:' AS aux42;
SAVEPOINT sp664;
.read commands.sql
CREATE TABLE "t1"(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (round(unlikely(NULL), x'2f972a75f5d004ce366600'), 'Wernher', CAST(10 AS FLOAT), 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;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
.quit
ATTACH DATABASE ':memory:' AS aux33;
ATTACH DATABASE ':memory:' AS aux74;
.nullvalue 232327d3-536b-41de-a764-a6301986aeab
CREATE TABLE [T] (
A VARCHAR(upper('你好')) PRIMARY KEY,
B VARCHAR(json_array()) NOT NULL,
C INTEGER,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', -degrees(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 NOT (C BETWEEN -1000 AND 1000) ORDER BY C ASC;
SELECT * FROM T;
PRAGMA vdbe_debug = 0;
ALTER TABLE T DROP COLUMN B;
CREATE TRIGGER IF NOT EXISTS trg_T_6262 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
CREATE TRIGGER IF NOT EXISTS trg_T_1635 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT AVG(C) FROM T;
ALTER TABLE T RENAME COLUMN B TO B_r9915;
DETACH DATABASE aux74;
DETACH DATABASE aux33;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
SELECT * FROM t1 WHERE +a > ALL (SELECT a FROM t1);
DELETE FROM t1 WHERE 0;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, 0, -6, '');
CREATE TRIGGER IF NOT EXISTS trg_t1_7285 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DROP TRIGGER IF EXISTS t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
RELEASE sp664;
ALTER TABLE t1 ADD COLUMN extra_6969 DOUBLE NOT NULL DEFAULT 0;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1;
REINDEX;
SELECT STRING_AGG(d) FROM t1;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5722 AS SELECT a FROM t1;
ALTER TABLE t1 RENAME COLUMN c TO c_r6930;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1 AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux42;
ALTER TABLE t1 RENAME COLUMN d TO d_r1370;
SELECT * FROM t1 AS a JOIN t1 AS b ON a.rowid = b.rowid;
INSERT OR REPLACE INTO t1 VALUES (NULL, 0, -9, -5);
SELECT COUNT(*) FROM t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
REINDEX t1;
SELECT COUNT(*) FROM t1;
SELECT COUNT(*) FILTER (WHERE c IS NOT NULL), SUM(rowid) FILTER (WHERE c > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c) FILTER (WHERE c > 0 AND c < 100), COUNT(*) FILTER (WHERE typeof(c) = "text") FROM t1;
UPDATE t1 SET d = CURRENT_TIMESTAMP WHERE d BETWEEN 0 AND 100;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
COMMIT;
INSERT INTO t1 SELECT * FROM t1;
DELETE FROM t1 WHERE 1 RETURNING *;
BEGIN IMMEDIATE TRANSACTION;
ATTACH DATABASE ':memory:' AS aux42;
SAVEPOINT sp664;
.read commands.sql
CREATE TABLE "t1"(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (round(unlikely(NULL), x'2f972a75f5d004ce366600'), 'Wernher', CAST(10 AS FLOAT), 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;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
.quit
ATTACH DATABASE ':memory:' AS aux33;
ATTACH DATABASE ':memory:' AS aux74;
.nullvalue 232327d3-536b-41de-a764-a6301986aeab
CREATE TABLE [T] (
A VARCHAR(upper('你好')) PRIMARY KEY,
B VARCHAR(json_array()) NOT NULL,
C INTEGER,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', -degrees(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 NOT (C BETWEEN -1000 AND 1000) ORDER BY C ASC;
SELECT * FROM T;
PRAGMA vdbe_debug = 0;
ALTER TABLE T DROP COLUMN B;
CREATE TRIGGER IF NOT EXISTS trg_T_6262 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
CREATE TRIGGER IF NOT EXISTS trg_T_1635 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT AVG(C) FROM T;
ALTER TABLE T RENAME COLUMN B TO B_r9915;
DETACH DATABASE aux74;
DETACH DATABASE aux33;
SELECT * FROM t1 WHERE +a > ALL (SELECT a FROM t1);
DELETE FROM t1 WHERE 0;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, 0, -6, '');
CREATE TRIGGER IF NOT EXISTS trg_t1_7285 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DROP TRIGGER IF EXISTS t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
RELEASE sp664;
ALTER TABLE t1 ADD COLUMN extra_6969 DOUBLE NOT NULL DEFAULT 0;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1;
REINDEX;
SELECT STRING_AGG(d) FROM t1;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5722 AS SELECT a FROM t1;
ALTER TABLE t1 RENAME COLUMN c TO c_r6930;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1 AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux42;
ALTER TABLE t1 RENAME COLUMN d TO d_r1370;
SELECT * FROM t1 AS a JOIN t1 AS b ON a.rowid = b.rowid;
INSERT OR REPLACE INTO t1 VALUES (NULL, 0, -9, -5);
SELECT COUNT(*) FROM t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
REINDEX t1;
SELECT COUNT(*) FROM t1;
SELECT COUNT(*) FILTER (WHERE c IS NOT NULL), SUM(rowid) FILTER (WHERE c > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c) FILTER (WHERE c > 0 AND c < 100), COUNT(*) FILTER (WHERE typeof(c) = "text") FROM t1;
UPDATE t1 SET d = CURRENT_TIMESTAMP WHERE d BETWEEN 0 AND 100;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
COMMIT;
INSERT INTO t1 SELECT * FROM t1;
DELETE FROM t1 WHERE 1 RETURNING *;
BEGIN IMMEDIATE TRANSACTION;
ATTACH DATABASE ':memory:' AS aux42;
SAVEPOINT sp664;
.read commands.sql
CREATE TABLE "t1"(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (round(unlikely(NULL), x'2f972a75f5d004ce366600'), 'Wernher', CAST(10 AS FLOAT), 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;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
.quit
ATTACH DATABASE ':memory:' AS aux33;
ATTACH DATABASE ':memory:' AS aux74;
.nullvalue 232327d3-536b-41de-a764-a6301986aeab
CREATE TABLE [T] (
A VARCHAR(upper('你好')) PRIMARY KEY,
B VARCHAR(json_array()) NOT NULL,
C INTEGER,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', -degrees(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 NOT (C BETWEEN -1000 AND 1000) ORDER BY C ASC;
SELECT * FROM T;
PRAGMA vdbe_debug = 0;
ALTER TABLE T DROP COLUMN B;
CREATE TRIGGER IF NOT EXISTS trg_T_6262 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
CREATE TRIGGER IF NOT EXISTS trg_T_1635 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT AVG(C) FROM T;
ALTER TABLE T RENAME COLUMN B TO B_r9915;
DETACH DATABASE aux74;
DETACH DATABASE aux33;
SELECT * FROM t1 WHERE +a > ALL (SELECT a FROM t1);
DELETE FROM t1 WHERE 0;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, 0, -6, '');
CREATE TRIGGER IF NOT EXISTS trg_t1_7285 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DROP TRIGGER IF EXISTS t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
RELEASE sp664;
ALTER TABLE t1 ADD COLUMN extra_6969 DOUBLE NOT NULL DEFAULT 0;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1;
REINDEX;
SELECT STRING_AGG(d) FROM t1;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5722 AS SELECT a FROM t1;
ALTER TABLE t1 RENAME COLUMN c TO c_r6930;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1 AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux42;
ALTER TABLE t1 RENAME COLUMN d TO d_r1370;
SELECT * FROM t1 AS a JOIN t1 AS b ON a.rowid = b.rowid;
INSERT OR REPLACE INTO t1 VALUES (NULL, 0, -9, -5);
SELECT COUNT(*) FROM t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
REINDEX t1;
SELECT COUNT(*) FROM t1;
SELECT COUNT(*) FILTER (WHERE c IS NOT NULL), SUM(rowid) FILTER (WHERE c > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c) FILTER (WHERE c > 0 AND c < 100), COUNT(*) FILTER (WHERE typeof(c) = "text") FROM t1;
UPDATE t1 SET d = CURRENT_TIMESTAMP WHERE d BETWEEN 0 AND 100;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
COMMIT;
INSERT INTO t1 SELECT * FROM t1;
DELETE FROM t1 WHERE 1 RETURNING *;
DELETE FROM t1 WHERE a > (SELECT AVG(a) FROM t1) RETURNING *;
ALTER TABLE t1 ADD COLUMN extra_1693 DOUBLE PRECISION COLLATE RTRIM;
INSERT INTO t1 VALUES (1, 1, 1, NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
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;
WITH cte(x, y) AS (VALUES(1,2),(3,4),(5,6)) SELECT * FROM cte;
SELECT * FROM t1 WHERE EXISTS (SELECT 1 FROM t1 WHERE a < 0);
SELECT COUNT(*) FROM t1;
SELECT * FROM t1 WHERE d = (SELECT d FROM t1 ORDER BY d LIMIT 1 OFFSET (SELECT COUNT(*) FROM t1 / 2));
CREATE TEMP VIEW IF NOT EXISTS v_t1_4538 AS SELECT a FROM t1;
UPDATE t1 SET b = '';
SELECT COUNT(*) FROM t1;
WITH cte AS (SELECT b, LEAD(b) OVER (ORDER BY b) AS nxt FROM t1) SELECT * FROM cte;
SELECT * FROM t1;
DROP INDEX IF EXISTS t1;
SELECT * FROM t1 AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
SELECT GROUP_CONCAT(a, '|') FROM t1;
WITH RECURSIVE tree(id, parent, depth) AS (VALUES(1, NULL, 0) UNION ALL SELECT id+1, id, depth+1 FROM tree WHERE depth<29) SELECT * FROM tree;
SELECT * FROM t1 WHERE d IN (SELECT d FROM t1 LIMIT 0);
INSERT INTO t1 SELECT * FROM t1;
SELECT * FROM t1;
INSERT OR FAIL INTO t1 VALUES ('', 'x', NULL, '');
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<38) SELECT SUM(x) FROM cnt;
INSERT INTO t1 DEFAULT VALUES;
INSERT OR ROLLBACK INTO t1 VALUES (-5, NULL, 'x', NULL);
CREATE INDEX IF NOT EXISTS idx_t1_2534 ON t1(lower(d)) WHERE d > 0;
CREATE TRIGGER IF NOT EXISTS trg_T_332 AFTER UPDATE OF a ON T BEGIN SELECT RAISE(IGNORE); END;
SELECT MIN(a) FROM T;
SELECT * FROM t1 WHERE c IN (SELECT c FROM t1 WHERE ROW_NUMBER() OVER (ORDER BY c) = 1);
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 T DROP COLUMN B;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
INSERT INTO T SELECT * FROM T;
SELECT GROUP_CONCAT(A) FROM T;
DROP INDEX IF EXISTS T;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
ALTER TABLE t1 RENAME TO t1_r1152;
```
## Actual output
```sql
vfs.zName = "unix"
vfs.iVersion = 3
vfs.szOsFile = 120
vfs.mxPathname = 512
0
/* No STAT tables available */
0
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!
von|20|2
Braun|30|3
Braun|30
von|20
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,114 @@
## 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 aux83;
BEGIN EXCLUSIVE;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (asin(-json_quote(datetime(cosh(octet_length('Hello'))))) ->> 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;
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;
.imposter t1bc t2
WITH _m AS MATERIALIZED (SELECT * FROM T2) SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
PRAGMA recursive_triggers = OFF;
PRAGMA ignore_check_constraints != FALSE;
PRAGMA wal_autocheckpoint;
PRAGMA pragma_list;
.sha3sum
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))/-if(-2814635466794726270, 2360804486672605089)
AS INTEGER
) AS c
FROM T;
CREATE TABLE T1 (
A VARCHAR(10) PRIMARY KEY,
B VARCHAR(15) UNIQUE,
C INTEGER
);
CREATE TABLE _m (
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 SUM(b) OVER (ORDER BY b ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
ALTER TABLE T RENAME TO T_r3912;
PRAGMA vdbe_trace = 0;
CREATE INDEX IF NOT EXISTS idx_T_6324 ON T(a COLLATE NOCASE) WHERE a > 0;
INSERT INTO T SELECT * 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;
ALTER TABLE T1 RENAME TO T1_r9774;
CREATE TRIGGER IF NOT EXISTS trg_T1_9214 AFTER UPDATE ON T1 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
PRAGMA page_size;
SELECT * FROM T1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
SELECT GROUP_CONCAT(b, '|') FROM T;
SELECT COUNT(*) FROM T2;
SELECT * FROM T2 AS a JOIN T1 AS b ON a.rowid = b.rowid;
ROLLBACK;
WITH RECURSIVE multi(a, b) AS (VALUES(1, 1.0) UNION ALL SELECT a+1, b*0.5 /**/ FROM multi WHERE a<48) SELECT * FROM multi;
ALTER TABLE T RENAME COLUMN a TO a_r1923;
SELECT * FROM _m;
ALTER TABLE _m DROP COLUMN X;
ALTER TABLE _m DROP COLUMN X;
WITH RECURSIVE r AS (SELECT * FROM T1 LIMIT 1 UNION ALL SELECT t.* FROM T1 t JOIN r ON t.B = r.B LIMIT 10) SELECT * FROM r;
INSERT INTO _m VALUES (NULL, NULL);
DETACH DATABASE aux83;
REINDEX T;
```
## Actual output
```sql
q|2
r|2
p|1
t|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
von|20|2
Braun|30
von|20
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,145 @@
## 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
.eqp auto
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;
PRAGMA short_column_names = NO;
PRAGMA cell_size_check;
.parameter
ATTACH DATABASE ':memory:' AS aux30;
.log ON
SAVEPOINT sp6089;
ATTACH DATABASE '' || (':memory:') AS aux56;
CREATE TABLE main.t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (strftime('%s', format('%d', 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 ignore_check_constraints = 0;
DETACH DATABASE aux56;
INSERT INTO t1 SELECT * FROM t1;
PRAGMA recursive_triggers = OFF;
CREATE TRIGGER IF NOT EXISTS trg_t1_1212 AFTER UPDATE OF c ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
RELEASE sp6089;
CREATE TRIGGER IF NOT EXISTS trg_t1_4991 BEFORE UPDATE OF a ON t1 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
INSERT INTO t1 VALUES (1, 'x', 'x', 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
ALTER TABLE t1 ADD COLUMN extra_6256 CLOB DEFAULT '';
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<1) SELECT * FROM cnt;
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 t1 NATURAL JOIN t1;
ALTER TABLE t1 RENAME COLUMN d TO d_r9145;
INSERT AND FAIL INTO t1 VALUES ('x', 'x', '', -7);
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
UPDATE t1 SET d = d + 1 RETURNING *;
WITH RECURSIVE fib(a,b) AS (VALUES(1,1) UNION ALL SELECT b, a+b FROM fib WHERE b<1000) SELECT a FROM fib;
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;
INSERT INTO T1 VALUES ('x', 'x') ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
ALTER TABLE T1 DROP COLUMN A;
CREATE TEMP VIEW IF NOT EXISTS v_t1_7233 AS SELECT c FROM t1;
DETACH DATABASE aux30;
UPDATE T1 SET A = A + 1 WHERE rowid = 1;
INSERT INTO T1 SELECT * FROM T1;
CREATE TRIGGER IF NOT EXISTS trg_t1_9997 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DELETE FROM T1 WHERE 0;
INSERT INTO t1 DEFAULT VALUES;
ALTER TABLE T2 RENAME TO T2_r5714;
DELETE FROM T2 WHERE 1;
SELECT * FROM T2 WHERE Y > ALL (SELECT Y FROM T2);
SELECT * FROM T2;
ALTER TABLE T1 ADD COLUMN extra_1823 FLOAT UNIQUE;
WITH RECURSIVE fib(a,b,n) AS (VALUES(1,1,1) UNION ALL SELECT b, a+b, n+1 FROM fib WHERE n<95) SELECT a, n FROM fib;
SELECT COUNT(*) FROM T1;
ALTER TABLE T DROP COLUMN b;
INSERT INTO T1 DEFAULT VALUES;
SELECT COUNT(A) FILTER (WHERE A IS NOT NULL) OVER (PARTITION BY A ORDER BY A ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T2;
INSERT INTO t1 VALUES ('x', 'x', 1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
ALTER TABLE t1 DROP COLUMN b;
INSERT OR FAIL INTO T2 VALUES ('x', -9);
REINDEX;
REINDEX;
```
## Actual output
```sql
c|Inf|100.0|1
a|100.0|-200.5|1
b|-200.5||2
0
.parameter CMD ... Manage SQL parameter bindings
clear Erase all bindings
init Initialize the TEMP table that holds bindings
list List the current parameter bindings
set PARAMETER VALUE Given SQL parameter PARAMETER a value of VALUE
PARAMETER should start with one of: $ : @ ?
unset PARAMETER Remove PARAMETER from the binding table
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|-210866673600
von|20|2
Braun|30
Wernher|10
von|20
```
## Expectation
```sql
c|Inf|100.0|1
a|100.0|-200.5|1
b|-200.5||2
0
.parameter CMD ... Manage SQL parameter bindings
clear Erase all bindings
init Initialize the TEMP table that holds bindings
list List the current parameter bindings
set PARAMETER VALUE Given SQL parameter PARAMETER a value of VALUE
PARAMETER should start with one of: $ : @ ?
unset PARAMETER Remove PARAMETER from the binding table
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
Braun|30|3
Wernher|10|-210866673600
von|20|2
Braun|30
Wernher|10
von|20
```
## Flag
```
```
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,90 @@
## 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 aux30;
.log ON
SAVEPOINT sp6089;
ATTACH DATABASE '' || (':memory:') AS aux56;
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
PRAGMA ignore_check_constraints = 0;
DETACH DATABASE aux56;
INSERT INTO t1 SELECT * FROM t1;
PRAGMA recursive_triggers = OFF;
CREATE TRIGGER IF NOT EXISTS trg_t1_1212 AFTER UPDATE OF c ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
RELEASE sp6089;
CREATE TRIGGER IF NOT EXISTS trg_t1_4991 BEFORE UPDATE OF a ON t1 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
INSERT INTO t1 VALUES (1, 'x', 'x', 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
ALTER TABLE t1 ADD COLUMN extra_6256 CLOB DEFAULT '';
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<1) SELECT * FROM cnt;
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 t1 NATURAL JOIN t1;
ALTER TABLE t1 RENAME COLUMN d TO d_r9145;
INSERT OR FAIL INTO t1 VALUES ('x', 'x', '', -7);
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
UPDATE t1 SET d = d + 1 RETURNING *;
WITH RECURSIVE fib(a,b) AS (VALUES(1,1) UNION ALL SELECT b, a+b FROM fib WHERE b<1000) SELECT a FROM fib;
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;
INSERT INTO T1 VALUES ('x', 'x') ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
ALTER TABLE T1 DROP COLUMN A;
CREATE TEMP VIEW IF NOT EXISTS v_t1_7233 AS SELECT c FROM t1;
DETACH DATABASE aux30;
```
## 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,913 @@
## 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 off
ATTACH DATABASE ':memory:' AS aux45;
-- json_array_insert({v}, '$.arr[0]', {v})
PRAGMA writable_schema = TRUE;
PRAGMA reverse_unordered_selects = OFF;
PRAGMA cell_size_check;
creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z");
DROP TABLE t0;
ATTACH DATABASE ':memory:' AS aux73;
.print
ATTACH DATABASE ':memory:' AS aux97;
.timer on
CREATE TEMPORARY TABLE t0(x, y, z);
SELECT -NULL;
SELECT * FrOm sqlite_temp_master WHERE NOT NOT (NOT sql GLOB '000[]***') ;
DROP TABLE t0;
BEGIN IMMEDIATE;
.exit -log10(radians(json_group_object('k', -(-(json_array(timediff(NULL, length(-timediff(NULL, '-Inf')timediff(NULL, NULL)))timediff(NULL, NULL), NULL, NULL))))))
PRAGMA read_uncommitted;
PRAGMA ignore_check_constraints <> YES;
PRAGMA legacy_alter_table;
.parameter
CREATE TABLE main.t1(a, b, c, d);
CREATE UNIQUE INDEX i1 ON t1(b, c);
CREATE UNIQUE INDEX i2 ON t1(d COLLATE nocase);
CREATE TABLE t2(x DECIMAL('-',(nan + (unicode('你好') + max(x'af5df3e5294acaf5a4f1de6448da', '2', randomblob(-likelihood(NULL, ceiling(NULL))))))) PRIMARY KEY, y);
CREATE TABLE main.t3(c1 PRIMARY KEY NOT NULL, c2 NOT NULL);
CREATE INDEX i3 ON t3(c2);
CREATE TABLE t4(a, b NOT NULL, c NOT NULL, d NOT NULL);
CREATE UNIQUE /* PRAGMA fullsync = 0; */ INDEX t4i1 ON t4(b, c);
CREATE UNIQUE INDEX t4i2 ON t4(d COLLATE nocase);
SELECT DISTINCT c FROM t1 WHERE NOT b = ?;
SELECT DISTINCT c FROM t1 WHERE b IN (x'ab',ifnull(json_patch(json_tree(strftime('%Y-%m-%d', 'abc')), -nan), CAST(nan AS DOUBLE)));
SELECT DISTINCT a, b, c COLLATE nocase FROM t1
PRAGMA integrity_check("users");
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_5148 ON t1(lower(c)) WHERE +c > substr(randomblob(10), 1, 5);
SELECT * FROM t1;
COMMIT;
SELECT COUNT(b) FROM t1;
INSERT INTO t2 DEFAULT VALUES;
WITH cte AS (SELECT * FROM t4) SELECT * FROM cte WHERE c > 0 UNION ALL SELECT * FROM cte WHERE c <= 0;
CREATE TEMP VIEW IF NOT EXISTS v_t1_244 AS SELECT c FROM t1;
INSERT INTO t1 SELECT * FROM t1;
ALTER TABLE t2 RENAME TO t2_r6544;
INSERT INTO t4 SELECT * FROM t4;
CREATE TRIGGER IF NOT EXISTS trg_t4_4171 BEFORE DELETE ON t4 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
VACUUM;
CREATE TABLE T (
a FLOA PRECISION,
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;
DETACH DATABASE aux97;
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 * FROM T;
ALTER TABLE /* PRAGMA defer_foreign_keys = NO; */ t2 ADD COLUMN extra_3261 FLOAT;
UPDATE t0 SET z = z + 1 WHERE 1;
WITH cte AS (SELECT CASE WHEN c IS /* PRAGMA defer_foreign_keys = TRUE; */ NULL THEN 0 ELSE c END AS val FROM t1) SELECT * FROM cte;
PRAGMA page_size = 4096;
CREATE INDEX IF NOT EXISTS idx_t0_8372 ON t0(lower(y)) WHERE y IS NOT NULL;
PRAGMA recursive_triggers = 1;
ALTER TABLE t2 RENAME COLUMN x TO x_r3369;
INSERT OR ABORT INTO t0 VALUES ('x', NULL, '');
INSERT INTO t0 VALUES (NULL, NULL, NULL);
DROP TABLE IF EXISTS t3;
SELECT COUNT(*) FILTER (WHERE y IS NOT NULL), SUM(rowid) FILTER (WHERE y > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(y) FILTER (WHERE y > 0 AND y < 100), COUNT(*) FILTER (WHERE typeof(y) = "text") FROM t2;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
CREATE TRIGGER IF NOT EXISTS trg_t4_6716 AFTER DELETE ON t4 FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END;
CREATE TRIGGER IF NOT EXISTS trg_t2_5474 BEFORE INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
PRAGMA checkpoint_fullsync;
INSERT INTO t1 SELECT * FROM t1;
INSERT OR ABORT INTO t4 VALUES ('', 0, 0, -3);
ALTER TABLE t3 RENAME COLUMN c1 TO c1_r9839;
WITH cte AS (SELECT c1 FROM t3 UNION ALL SELECT c1 FROM t3) SELECT * FROM cte;
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 t0;
PRAGMA max_page_count = 5000000;
CREATE TRIGGER IF NOT EXISTS trg_t4_645 AFTER UPDATE ON t4 BEGIN SELECT RAISE(ABORT, 'abort'); END;
VACUUM;
CREATE TRIGGER IF NOT EXISTS trg_t4_7725 BEFORE UPDATE ON t4 BEGIN SELECT RAISE(FAIL, 'no'); END;
DETACH DATABASE aux73;
CREATE INDEX IF NOT EXISTS idx_t2_3331 ON t2(y COLLATE NOCASE) WHERE y IS NOT NULL;
CREATE VIEW IF NOT EXISTS v_T_6672 AS SELECT b FROM T;
REINDEX;
ANALYZE T;
ALTER TABLE t0 ADD COLUMN extra_6804 NATIVE CHARACTER(70)NVARCHAR(100) DEFAULT (abs(random()) % 1000);
ALTER TABLE t0 DROP COLUMN y;
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;
SELECT GROUP_CONCAT(d) FROM t4;
ANALYZE t2;
ALTER TABLE t1 ADD COLUMN extra_1405 INT8 DEFAULT '';
SELECT * FROM t2 AS a RIGHT jOiN t0 AS b ON a.rowid = b.rowid;
WITH RECURSIVE multi(a, b, c) AS (VALUES(1, 2, 3) UNION ALL SELECT a+1, b+1, c+1 FROM multi WHERE a<45) SELECT * FROM multi;
DELETE FROM t3 WHERE 1 RETURNING *;
DELETE FROM t3 WHERE c1 > (SELECT AVG(c1) FROM t3);
ANALYZE;
INSERT INTO T SELECT * FROM T;
ALTER TABLE t4 RENAME TO t4_r5482;
SELECT * FROM t3 WHERE c2 <= ANY (SELECT c2 FROM t3);
VACUUM;
SELECT STRING_AGG(b) FROM t4;
SELECT * FROM t3 CROSS JOIN t2;
DELETE FROM t4 WHERE rowid = 69 RETURNING *;
SELECT * FROM t4 WHERE d IN (SELECT DISTINCT d FROM t4);
INSERT INTO T DEFAULT VALUES;
ALTER TABLE T RENAME COLUMN B TO B_r9596;
CREATE VIEW IF NOT EXISTS v_t1_2631 AS SELECT b FROM t1;
CREATE INDEX IF NOT EXISTS idx_t3_7394 ON t3(c2);
SELECT * FROM (SELECT y FROM t0 WHERE y IS NOT NULL) AS sub;
CREATE TEMP VIEW IF NOT EXISTS v_t4_1728 AS SELECT d FROM t4;
DELETE FROM t1 WHERE a IS NULL;
WITH RECURSIVE fib(a,b) AS (VALUES(1,1) UNION ALL SELECT b, a+b FROM fib WHERE b<1000) SELECT a FROM fib;
SELECT COUNT(*) FILTER (WHERE z IS NOT NULL), SUM(rowid) FILTER (WHERE z > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(z) FILTER (WHERE z > 0 AND z < 100), COUNT(*) FILTER (WHERE typeof(z) = "text") FROM t0;
CREATE TRIGGER IF NOT EXISTS trg_T_1938 BEFORE UPDATE ON T FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END;
INSERT INTO t4 SELECT * FROM t4;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t0_8908 ON t0((y + 1)) WHERE y > 0;
WITH RECURSIVE cnt(x) AS (VALUES(0) UNION ALL SELECT x-1 FROM cnt WHERE x>-3) SELECT * FROM cnt;
ANALYZE;
REINDEX;
INSERT INTO t4 SELECT * FROM t4;
SELECT * FROM t3;
SELECT * FROM t2 WHERE EXISTS (SELECT 1 FROM t2 WHERE x = NULL);
WITH a AS (SELECT * FROM t1 WHERE d IS NOT NULL), b AS (SELECT * FROM a WHERE d > 0), c AS (SELECT * FROM b LIMIT 10) SELECT * FROM c;
INSERT INTO t1 SELECT * FROM t1;
INSERT INTO t1 VALUES (1, NULL, 1, NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
ALTER TABLE t2 RENAME COLUMN y TO y_r7971;
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;
ALTER TABLE t3 DROP COLUMN c2;
SELECT * FROM t2 AS a RIGHT JOIN t1 AS b ON a.rowid = b.rowid;
UPDATE t0 SET y = 'x' WHERE 1 RETURNING *;
SELECT COUNT(x) FILTER (WHERE x IS NOT NULL) OVER (PARTITION BY x ORDER BY x ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM t2;
SELECT * FROM t1 NATURAL JOIN t2;
CREATE TRIGGER IF NOT EXISTS trg_T_8719 BEFORE INSERT ON T FOR EACH ROW BEGIN INSERT INTO T(b) VALUES (NULL); END;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<69) SELECT x FROM cnt WHERE x > 34;
WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte;
CREATE TEMP VIEW IF NOT EXISTS v_T_7090 AS SELECT b FROM T;
SELECT * FROM t0 WHERE EXISTS (SELECT 1 FROM t0 WHERE EXISTS (SELECT 1 FROM t0));
ANALYZE;
INSERT INTO T DEFAULT VALUES;
DELETE FROM t0 WHERE rowid = 6;
DETACH DATABASE aux45;
REINDEX;
SELECT SUM(z) FROM t0;
SELECT y FROM t0 UNION ALL SELECT y FROM (SELECT * FROM t0) AS sub;
ATTACH DATABASE ':memory:' AS aux45;
PRAGMA writable_schema = TRUE;
PRAGMA reverse_unordered_selects = OFF;
PRAGMA cell_size_check;
creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z");
DROP TABLE t0;
ATTACH DATABASE ':memory:' AS aux73;
.print
ATTACH DATABASE ':memory:' AS aux97;
.timer on
CREATE TEMPORARY TABLE t0(x, y, z);
SELECT -NULL;
SELECT * FrOm sqlite_temp_master WHERE sql GLOB '000[]***';
DROP TABLE t0;
BEGIN IMMEDIATE;
.exit -log10(radians(json_group_object('k', -(-(json_array(timediff(NULL, length(-timediff(NULL, '-Inf')timediff(NULL, NULL)))timediff(NULL, NULL), NULL, NULL))))))
PRAGMA read_uncommitted;
PRAGMA ignore_check_constraints <> YES;
PRAGMA legacy_alter_table;
.parameter
CREATE TABLE main.t1(a, b, c, d);
CREATE UNIQUE INDEX i1 ON t1(b, c);
CREATE UNIQUE INDEX i2 ON t1(d COLLATE nocase);
CREATE TABLE t2(x DECIMAL('-',(nan + (unicode('你好') + max(x'af5df3e5294acaf5a4f1de6448da', '2', randomblob(-likelihood(NULL, ceiling(NULL))))))) PRIMARY KEY, y);
CREATE TABLE main.t3(c1 PRIMARY KEY NOT NULL, c2 NOT NULL);
CREATE INDEX i3 ON t3(c2);
CREATE TABLE t4(a, b NOT NULL, c NOT NULL, d NOT NULL);
CREATE UNIQUE /* PRAGMA fullsync = 0; */ INDEX t4i1 ON t4(b, c);
CREATE UNIQUE INDEX t4i2 ON t4(d COLLATE nocase);
SELECT DISTINCT c FROM t1 WHERE NOT b = ?;
SELECT DISTINCT c FROM t1 WHERE b IN (x'ab',ifnull(json_patch(json_tree(strftime('%Y-%m-%d', 'abc')), 1), 2));
SELECT DISTINCT a, b, c COLLATE nocase FROM t1
PRAGMA integrity_check("users");
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_5148 ON t1(lower(c)) WHERE c > 0;
SELECT * FROM t1;
COMMIT;
SELECT COUNT(b) FROM t1;
INSERT INTO t2 DEFAULT VALUES;
WITH cte AS (SELECT * FROM t4) SELECT * FROM cte WHERE c > 0 UNION ALL SELECT * FROM cte WHERE c <= 0;
CREATE TEMP VIEW IF NOT EXISTS v_t1_244 AS SELECT c FROM t1;
INSERT INTO t1 SELECT * FROM t1;
ALTER TABLE t2 RENAME TO t2_r6544;
INSERT INTO t4 SELECT * FROM t4;
CREATE TRIGGER IF NOT EXISTS trg_t4_4171 BEFORE DELETE ON t4 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
VACUUM;
CREATE TABLE T (
a TINYINT PRECISION,
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;
DETACH DATABASE aux97;
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 T;
SELECT * FROM T;
ALTER TABLE /* PRAGMA defer_foreign_keys = NO; */ t2 ADD COLUMN extra_3261 FLOAT;
UPDATE t0 SET z = z + 1 WHERE 1;
WITH cte AS (SELECT CASE WHEN c IS /* PRAGMA defer_foreign_keys = TRUE; */ NULL THEN 0 ELSE c END AS val FROM t1) SELECT * FROM cte;
PRAGMA page_size = 4096;
CREATE INDEX IF NOT EXISTS idx_t0_8372 ON t0(lower(y)) WHERE y IS NOT NULL;
PRAGMA recursive_triggers = 1;
ALTER TABLE t2 RENAME COLUMN x TO x_r3369;
INSERT OR ABORT INTO t0 VALUES ('x', NULL, '');
INSERT INTO t0 VALUES (NULL, NULL, NULL);
DROP TABLE IF EXISTS t3;
SELECT COUNT(*) FILTER (WHERE y IS NOT NULL), SUM(rowid) FILTER (WHERE y > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(y) FILTER (WHERE y > 0 AND y < 100), COUNT(*) FILTER (WHERE typeof(y) = "text") FROM t2;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
CREATE TRIGGER IF NOT EXISTS trg_t4_6716 AFTER DELETE ON t4 FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END;
CREATE TRIGGER IF NOT EXISTS trg_t2_5474 BEFORE INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
PRAGMA checkpoint_fullsync;
INSERT INTO t1 SELECT * FROM t1;
INSERT OR ABORT INTO t4 VALUES ('', 0, 0, -3);
ALTER TABLE t3 RENAME COLUMN c1 TO c1_r9839;
WITH cte AS (SELECT c1 FROM t3 UNION ALL SELECT c1 FROM t3) SELECT * FROM cte;
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 t0;
PRAGMA max_page_count = 5000000;
CREATE TRIGGER IF NOT EXISTS trg_t4_645 AFTER UPDATE ON t4 BEGIN SELECT RAISE(ABORT, 'abort'); END;
VACUUM;
CREATE TRIGGER IF NOT EXISTS trg_t4_7725 BEFORE UPDATE ON t4 BEGIN SELECT RAISE(FAIL, 'no'); END;
DETACH DATABASE aux73;
CREATE INDEX IF NOT EXISTS idx_t2_3331 ON t2(y COLLATE NOCASE) WHERE y IS NOT NULL;
CREATE VIEW IF NOT EXISTS v_T_6672 AS SELECT b FROM T;
REINDEX;
ANALYZE T;
ALTER TABLE t0 ADD COLUMN extra_6804 NATIVE CHARACTER(70)NVARCHAR(100) DEFAULT (abs(random()) % 1000);
ALTER TABLE t0 DROP COLUMN y;
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;
SELECT GROUP_CONCAT(d) FROM t4;
ANALYZE t2;
ALTER TABLE t1 ADD COLUMN extra_1405 INT8 DEFAULT '';
SELECT * FROM t2 AS a RIGHT JOIN t0 AS b ON a.rowid = b.rowid;
WITH RECURSIVE multi(a, b, c) AS (VALUES(1, 2, 3) UNION ALL SELECT a+1, b+1, c+1 FROM multi WHERE a<45) SELECT * FROM multi;
DELETE FROM t3 WHERE 1 RETURNING *;
DELETE FROM t3 WHERE c1 > (SELECT AVG(c1) FROM t3);
ANALYZE;
INSERT INTO T SELECT * FROM T;
ALTER TABLE t4 RENAME TO t4_r5482;
SELECT * FROM t3 WHERE c2 <= ANY (SELECT c2 FROM t3);
VACUUM;
SELECT STRING_AGG(b) FROM t4;
SELECT * FROM t3 CROSS JOIN t2;
DELETE FROM t4 WHERE rowid = 69 RETURNING *;
SELECT * FROM t4 WHERE d IN (SELECT DISTINCT d FROM t4);
INSERT INTO T DEFAULT VALUES;
ALTER TABLE T RENAME COLUMN B TO B_r9596;
CREATE VIEW IF NOT EXISTS v_t1_2631 AS SELECT b FROM t1;
CREATE INDEX IF NOT EXISTS idx_t3_7394 ON t3(c2);
SELECT * FROM (SELECT y FROM t0 WHERE y IS NOT NULL) AS sub;
CREATE TEMP VIEW IF NOT EXISTS v_t4_1728 AS SELECT d FROM t4;
DELETE FROM t1 WHERE a IS NULL;
WITH RECURSIVE fib(a,b) AS (VALUES(1,1) UNION ALL SELECT b, a+b FROM fib WHERE b<1000) SELECT a FROM fib;
SELECT COUNT(*) FILTER (WHERE z IS NOT NULL), SUM(rowid) FILTER (WHERE z > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(z) FILTER (WHERE z > 0 AND z < 100), COUNT(*) FILTER (WHERE typeof(z) = "text") FROM t0;
CREATE TRIGGER IF NOT EXISTS trg_T_1938 BEFORE UPDATE ON T FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END;
INSERT INTO t4 SELECT * FROM t4;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t0_8908 ON t0((y + 1)) WHERE y > 0;
WITH RECURSIVE cnt(x) AS (VALUES(0) UNION ALL SELECT x-1 FROM cnt WHERE x>-3) SELECT * FROM cnt;
ANALYZE;
REINDEX;
INSERT INTO t4 SELECT * FROM t4;
SELECT * FROM t3;
SELECT * FROM t2 WHERE EXISTS (SELECT 1 FROM t2 WHERE x = NULL);
WITH a AS (SELECT * FROM t1 WHERE d IS NOT NULL), b AS (SELECT * FROM a WHERE d > 0), c AS (SELECT * FROM b LIMIT 10) SELECT * FROM c;
INSERT INTO t1 SELECT * FROM t1;
INSERT INTO t1 VALUES (1, NULL, 1, NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
ALTER TABLE t2 RENAME COLUMN y TO y_r7971;
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;
ALTER TABLE t3 DROP COLUMN c2;
SELECT * FROM t2 AS a RIGHT JOIN t1 AS b ON a.rowid = b.rowid;
UPDATE t0 SET y = 'x' WHERE 1 RETURNING *;
SELECT COUNT(x) FILTER (WHERE x IS NOT NULL) OVER (PARTITION BY x ORDER BY x ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM t2;
SELECT * FROM t1 NATURAL JOIN t2;
CREATE TRIGGER IF NOT EXISTS trg_T_8719 BEFORE INSERT ON T FOR EACH ROW BEGIN INSERT INTO T(b) VALUES (NULL); END;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<69) SELECT x FROM cnt WHERE x > 34;
WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte;
CREATE TEMP VIEW IF NOT EXISTS v_T_7090 AS SELECT b FROM T;
SELECT * FROM t0 WHERE EXISTS (SELECT 1 FROM t0 WHERE EXISTS (SELECT 1 FROM t0));
ANALYZE;
INSERT INTO T DEFAULT VALUES;
DELETE FROM t0 WHERE rowid = 6;
DETACH DATABASE aux45;
REINDEX;
SELECT SUM(z) FROM t0;
SELECT y FROM t0 UNION ALL SELECT y FROM (SELECT * FROM t0) AS sub;
ATTACH DATABASE ':memory:' AS aux45;
PRAGMA writable_schema = TRUE;
PRAGMA reverse_unordered_selects = OFF;
PRAGMA cell_size_check;
creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z");
DROP TABLE t0;
ATTACH DATABASE ':memory:' AS aux73;
.print
ATTACH DATABASE ':memory:' AS aux97;
.timer on
CREATE TEMPORARY TABLE t0(x, y, z);
SELECT -NULL;
SELECT * FrOm sqlite_temp_master WHERE sql GLOB '000[]***';
DROP TABLE t0;
BEGIN IMMEDIATE;
.exit -log10(radians(json_group_object('k', -(-(json_array(timediff(NULL, length(-timediff(NULL, '-Inf')timediff(NULL, NULL)))timediff(NULL, NULL), NULL, NULL))))))
PRAGMA read_uncommitted;
PRAGMA ignore_check_constraints <> YES;
PRAGMA legacy_alter_table;
.parameter
CREATE TABLE main.t1(a, b, c, d);
CREATE UNIQUE INDEX i1 ON t1(b, c);
CREATE UNIQUE INDEX i2 ON t1(d COLLATE nocase);
CREATE TABLE t2(x DECIMAL('-',(nan + (unicode('你好') + max(x'af5df3e5294acaf5a4f1de6448da', '2', randomblob(-likelihood(NULL, ceiling(NULL))))))) PRIMARY KEY, y);
CREATE TABLE main.t3(c1 PRIMARY KEY NOT NULL, c2 NOT NULL);
CREATE INDEX i3 ON t3(c2);
CREATE TABLE t4(a, b NOT NULL, c NOT NULL, d NOT NULL);
CREATE UNIQUE /* PRAGMA fullsync = 0; */ INDEX t4i1 ON t4(b, c);
CREATE UNIQUE INDEX t4i2 ON t4(d COLLATE nocase);
SELECT DISTINCT c FROM t1 WHERE NOT b = ?;
SELECT DISTINCT c FROM t1 WHERE b IN (x'ab',ifnull(json_patch(json_tree(strftime('%Y-%m-%d', 'abc')), 1), 2));
SELECT DISTINCT a, b, c COLLATE nocase FROM t1
PRAGMA integrity_check("users");
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_5148 ON t1(lower(c)) WHERE c > 0;
SELECT * FROM t1;
COMMIT;
SELECT COUNT(b) FROM t1;
INSERT INTO t2 DEFAULT VALUES;
WITH cte AS (SELECT * FROM t4) SELECT * FROM cte WHERE c > 0 UNION ALL SELECT * FROM cte WHERE c <= 0;
CREATE TEMP VIEW IF NOT EXISTS v_t1_244 AS SELECT c FROM t1;
INSERT INTO t1 SELECT * FROM t1;
ALTER TABLE t2 RENAME TO t2_r6544;
INSERT INTO t4 SELECT * FROM t4;
CREATE TRIGGER IF NOT EXISTS trg_t4_4171 BEFORE DELETE ON t4 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
VACUUM;
CREATE TABLE T (
a TINYINT PRECISION,
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;
DETACH DATABASE aux97;
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 T;
SELECT * FROM T;
ALTER TABLE /* PRAGMA defer_foreign_keys = NO; */ t2 ADD COLUMN extra_3261 FLOAT;
UPDATE t0 SET z = z + 1 WHERE 1;
WITH cte AS (SELECT CASE WHEN c IS /* PRAGMA defer_foreign_keys = TRUE; */ NULL THEN 0 ELSE c END AS val FROM t1) SELECT * FROM cte;
creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z");
DROP TABLE t0;
PRAGMA page_size = 4096;
CREATE INDEX IF NOT EXISTS idx_t0_8372 ON t0(lower(y)) WHERE y IS NOT NULL;
PRAGMA recursive_triggers = 1;
ALTER TABLE t2 RENAME COLUMN x TO x_r3369;
INSERT OR ABORT INTO t0 VALUES ('x', NULL, '');
INSERT INTO t0 VALUES (NULL, NULL, NULL);
DROP TABLE IF EXISTS t3;
SELECT COUNT(*) FILTER (WHERE y IS NOT NULL), SUM(rowid) FILTER (WHERE y > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(y) FILTER (WHERE y > 0 AND y < 100), COUNT(*) FILTER (WHERE typeof(y) = "text") FROM t2;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
CREATE TRIGGER IF NOT EXISTS trg_t4_6716 AFTER DELETE ON t4 FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END;
CREATE TRIGGER IF NOT EXISTS trg_t2_5474 BEFORE INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
PRAGMA checkpoint_fullsync;
INSERT INTO t1 SELECT * FROM t1;
INSERT OR ABORT INTO t4 VALUES ('', 0, 0, -3);
ALTER TABLE t3 RENAME COLUMN c1 TO c1_r9839;
WITH cte AS (SELECT c1 FROM t3 UNION ALL SELECT c1 FROM t3) SELECT * FROM cte;
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 t0;
PRAGMA max_page_count = 5000000;
CREATE TRIGGER IF NOT EXISTS trg_t4_645 AFTER UPDATE ON t4 BEGIN SELECT RAISE(ABORT, 'abort'); END;
VACUUM;
CREATE TRIGGER IF NOT EXISTS trg_t4_7725 BEFORE UPDATE ON t4 BEGIN SELECT RAISE(FAIL, 'no'); END;
DETACH DATABASE aux73;
CREATE INDEX IF NOT EXISTS idx_t2_3331 ON t2(y COLLATE NOCASE) WHERE y IS NOT NULL;
CREATE VIEW IF NOT EXISTS v_T_6672 AS SELECT b FROM T;
REINDEX;
ANALYZE T;
ALTER TABLE t0 ADD COLUMN extra_6804 NATIVE CHARACTER(70)NVARCHAR(100) DEFAULT (abs(random()) % 1000);
ALTER TABLE t0 DROP COLUMN y;
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;
SELECT GROUP_CONCAT(d) FROM t4;
ANALYZE t2;
ALTER TABLE t1 ADD COLUMN extra_1405 INT8 DEFAULT '';
SELECT * FROM t2 AS a RIGHT JOIN t0 AS b ON a.rowid = b.rowid;
WITH RECURSIVE multi(a, b, c) AS (VALUES(1, 2, 3) UNION ALL SELECT a+1, b+1, c+1 FROM multi WHERE a<45) SELECT * FROM multi;
DELETE FROM t3 WHERE 1 RETURNING *;
DELETE FROM t3 WHERE c1 > (SELECT AVG(c1) FROM t3);
ANALYZE;
INSERT INTO T SELECT * FROM T;
ALTER TABLE t4 RENAME TO t4_r5482;
SELECT * FROM t3 WHERE c2 <= ANY (SELECT c2 FROM t3);
VACUUM;
SELECT STRING_AGG(b) FROM t4;
SELECT * FROM t3 CROSS JOIN t2;
DELETE FROM t4 WHERE rowid = 69 RETURNING *;
SELECT * FROM t4 WHERE d IN (SELECT DISTINCT d FROM t4);
INSERT INTO T DEFAULT VALUES;
ALTER TABLE T RENAME COLUMN B TO B_r9596;
CREATE VIEW IF NOT EXISTS v_t1_2631 AS SELECT b FROM t1;
CREATE INDEX IF NOT EXISTS idx_t3_7394 ON t3(c2);
SELECT * FROM (SELECT y FROM t0 WHERE y IS NOT NULL) AS sub;
CREATE TEMP VIEW IF NOT EXISTS v_t4_1728 AS SELECT d FROM t4;
DELETE FROM t1 WHERE a IS NULL;
WITH RECURSIVE fib(a,b) AS (VALUES(1,1) UNION ALL SELECT b, a+b FROM fib WHERE b<1000) SELECT a FROM fib;
SELECT COUNT(*) FILTER (WHERE z IS NOT NULL), SUM(rowid) FILTER (WHERE z > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(z) FILTER (WHERE z > 0 AND z < 100), COUNT(*) FILTER (WHERE typeof(z) = "text") FROM t0;
CREATE TRIGGER IF NOT EXISTS trg_T_1938 BEFORE UPDATE ON T FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END;
INSERT INTO t4 SELECT * FROM t4;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t0_8908 ON t0((y + 1)) WHERE y > 0;
WITH RECURSIVE cnt(x) AS (VALUES(0) UNION ALL SELECT x-1 FROM cnt WHERE x>-3) SELECT * FROM cnt;
ANALYZE;
REINDEX;
INSERT INTO t4 SELECT * FROM t4;
SELECT * FROM t3;
SELECT * FROM t2 WHERE EXISTS (SELECT 1 FROM t2 WHERE x = NULL);
WITH a AS (SELECT * FROM t1 WHERE d IS NOT NULL), b AS (SELECT * FROM a WHERE d > 0), c AS (SELECT * FROM b LIMIT 10) SELECT * FROM c;
INSERT INTO t1 SELECT * FROM t1;
INSERT INTO t1 VALUES (1, NULL, 1, NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
ALTER TABLE t2 RENAME COLUMN y TO y_r7971;
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;
ALTER TABLE t3 DROP COLUMN c2;
SELECT * FROM t2 AS a RIGHT JOIN t1 AS b ON a.rowid = b.rowid;
UPDATE t0 SET y = 'x' WHERE 1 RETURNING *;
SELECT COUNT(x) FILTER (WHERE x IS NOT NULL) OVER (PARTITION BY x ORDER BY x ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM t2;
SELECT * FROM t1 NATURAL JOIN t2;
CREATE TRIGGER IF NOT EXISTS trg_T_8719 BEFORE INSERT ON T FOR EACH ROW BEGIN INSERT INTO T(b) VALUES (NULL); END;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<69) SELECT x FROM cnt WHERE x > 34;
WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte;
CREATE TEMP VIEW IF NOT EXISTS v_T_7090 AS SELECT b FROM T;
SELECT * FROM t0 WHERE EXISTS (SELECT 1 FROM t0 WHERE EXISTS (SELECT 1 FROM t0));
ANALYZE;
INSERT INTO T DEFAULT VALUES;
DELETE FROM t0 WHERE rowid = 6;
DETACH DATABASE aux45;
REINDEX;
SELECT SUM(z) FROM t0;
SELECT y FROM t0 UNION ALL SELECT y FROM (SELECT * FROM t0) AS sub;
ATTACH DATABASE ':memory:' AS aux45;
PRAGMA writable_schema = TRUE;
PRAGMA reverse_unordered_selects = OFF;
PRAGMA cell_size_check;
creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z");
DROP TABLE t0;
ATTACH DATABASE ':memory:' AS aux73;
.print
ATTACH DATABASE ':memory:' AS aux97;
.timer on
CREATE TEMPORARY TABLE t0(x, y, z);
SELECT -NULL;
SELECT * FrOm sqlite_temp_master WHERE sql GLOB '000[]***';
DROP TABLE t0;
BEGIN IMMEDIATE;
.exit -log10(radians(json_group_object('k', -(-(json_array(timediff(NULL, length(-timediff(NULL, '-Inf')timediff(NULL, NULL)))timediff(NULL, NULL), NULL, NULL))))))
PRAGMA read_uncommitted;
PRAGMA ignore_check_constraints <> YES;
PRAGMA legacy_alter_table;
.parameter
CREATE TABLE main.t1(a, b, c, d);
CREATE UNIQUE INDEX i1 ON t1(b, c);
CREATE UNIQUE INDEX i2 ON t1(d COLLATE nocase);
CREATE TABLE t2(x DECIMAL('-',(nan + (unicode('你好') + max(x'af5df3e5294acaf5a4f1de6448da', '2', randomblob(-likelihood(NULL, ceiling(NULL))))))) PRIMARY KEY, y);
CREATE TABLE main.t3(c1 PRIMARY KEY NOT NULL, c2 NOT NULL);
CREATE INDEX i3 ON t3(c2);
CREATE TABLE t4(a, b NOT NULL, c NOT NULL, d NOT NULL);
CREATE UNIQUE /* PRAGMA fullsync = 0; */ INDEX t4i1 ON t4(b, c);
CREATE UNIQUE INDEX t4i2 ON t4(d COLLATE nocase);
SELECT DISTINCT c FROM t1 WHERE NOT b = ?;
SELECT DISTINCT c FROM t1 WHERE b IN (x'ab',ifnull(json_patch(json_tree(strftime('%Y-%m-%d', 'abc')), 1), 2));
SELECT DISTINCT a, b, c COLLATE nocase FROM t1
PRAGMA integrity_check("users");
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_5148 ON t1(lower(c)) WHERE c > 0;
SELECT * FROM t1;
COMMIT;
SELECT COUNT(b) FROM t1;
INSERT INTO t2 DEFAULT VALUES;
WITH cte AS (SELECT * FROM t4) SELECT * FROM cte WHERE c > 0 UNION ALL SELECT * FROM cte WHERE c <= 0;
CREATE TEMP VIEW IF NOT EXISTS v_t1_244 AS SELECT c FROM t1;
INSERT INTO t1 SELECT * FROM t1;
ALTER TABLE t2 RENAME TO t2_r6544;
INSERT INTO t4 SELECT * FROM t4;
CREATE TRIGGER IF NOT EXISTS trg_t4_4171 BEFORE DELETE ON t4 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
VACUUM;
CREATE TABLE T (
a TINYINT PRECISION,
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;
DETACH DATABASE aux97;
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 T;
SELECT * FROM T;
ALTER TABLE /* PRAGMA defer_foreign_keys = NO; */ t2 ADD COLUMN extra_3261 FLOAT;
UPDATE t0 SET z = z + 1 WHERE 1;
WITH cte AS (SELECT CASE WHEN c IS /* PRAGMA defer_foreign_keys = TRUE; */ NULL THEN 0 ELSE c END AS val FROM t1) SELECT * FROM cte;
PRAGMA page_size = 4096;
CREATE INDEX IF NOT EXISTS idx_t0_8372 ON t0(lower(y)) WHERE y IS NOT NULL;
PRAGMA recursive_triggers = 1;
ALTER TABLE t2 RENAME COLUMN x TO x_r3369;
INSERT OR ABORT INTO t0 VALUES ('x', NULL, '');
INSERT INTO t0 VALUES (NULL, NULL, NULL);
DROP TABLE IF EXISTS t3;
SELECT COUNT(*) FILTER (WHERE y IS NOT NULL), SUM(rowid) FILTER (WHERE y > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(y) FILTER (WHERE y > 0 AND y < 100), COUNT(*) FILTER (WHERE typeof(y) = "text") FROM t2;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
CREATE TRIGGER IF NOT EXISTS trg_t4_6716 AFTER DELETE ON t4 FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END;
CREATE TRIGGER IF NOT EXISTS trg_t2_5474 BEFORE INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
PRAGMA checkpoint_fullsync;
INSERT INTO t1 SELECT * FROM t1;
INSERT OR ABORT INTO t4 VALUES ('', 0, 0, -3);
ALTER TABLE t3 RENAME COLUMN c1 TO c1_r9839;
WITH cte AS (SELECT c1 FROM t3 UNION ALL SELECT c1 FROM t3) SELECT * FROM cte;
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 t0;
PRAGMA max_page_count = 5000000;
CREATE TRIGGER IF NOT EXISTS trg_t4_645 AFTER UPDATE ON t4 BEGIN SELECT RAISE(ABORT, 'abort'); END;
VACUUM;
CREATE TRIGGER IF NOT EXISTS trg_t4_7725 BEFORE UPDATE ON t4 BEGIN SELECT RAISE(FAIL, 'no'); END;
DETACH DATABASE aux73;
CREATE INDEX IF NOT EXISTS idx_t2_3331 ON t2(y COLLATE NOCASE) WHERE y IS NOT NULL;
CREATE VIEW IF NOT EXISTS v_T_6672 AS SELECT b FROM T;
REINDEX;
ANALYZE T;
ALTER TABLE t0 ADD COLUMN extra_6804 NATIVE CHARACTER(70)NVARCHAR(100) DEFAULT (abs(random()) % 1000);
ALTER TABLE t0 DROP COLUMN y;
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;
SELECT GROUP_CONCAT(d) FROM t4;
ANALYZE t2;
ALTER TABLE t1 ADD COLUMN extra_1405 INT8 DEFAULT '';
SELECT * FROM t2 AS a RIGHT JOIN t0 AS b ON a.rowid = b.rowid;
WITH RECURSIVE multi(a, b, c) AS (VALUES(1, 2, 3) UNION ALL SELECT a+1, b+1, c+1 FROM multi WHERE a<45) SELECT * FROM multi;
DELETE FROM t3 WHERE 1 RETURNING *;
DELETE FROM t3 WHERE c1 > (SELECT AVG(c1) FROM t3);
ANALYZE;
INSERT INTO T SELECT * FROM T;
ALTER TABLE t4 RENAME TO t4_r5482;
SELECT * FROM t3 WHERE c2 <= ANY (SELECT c2 FROM t3);
VACUUM;
SELECT STRING_AGG(b) FROM t4;
SELECT * FROM t3 CROSS JOIN t2;
DELETE FROM t4 WHERE rowid = 69 RETURNING *;
SELECT * FROM t4 WHERE d IN (SELECT DISTINCT d FROM t4);
INSERT INTO T DEFAULT VALUES;
ALTER TABLE T RENAME COLUMN B TO B_r9596;
CREATE VIEW IF NOT EXISTS v_t1_2631 AS SELECT b FROM t1;
CREATE INDEX IF NOT EXISTS idx_t3_7394 ON t3(c2);
SELECT * FROM (SELECT y FROM t0 WHERE y IS NOT NULL) AS sub;
CREATE TEMP VIEW IF NOT EXISTS v_t4_1728 AS SELECT d FROM t4;
DELETE FROM t1 WHERE a IS NULL;
WITH RECURSIVE fib(a,b) AS (VALUES(1,1) UNION ALL SELECT b, a+b FROM fib WHERE b<1000) SELECT a FROM fib;
SELECT COUNT(*) FILTER (WHERE z IS NOT NULL), SUM(rowid) FILTER (WHERE z > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(z) FILTER (WHERE z > 0 AND z < 100), COUNT(*) FILTER (WHERE typeof(z) = "text") FROM t0;
CREATE TRIGGER IF NOT EXISTS trg_T_1938 BEFORE UPDATE ON T FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END;
INSERT INTO t4 SELECT * FROM t4;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t0_8908 ON t0((y + 1)) WHERE y > 0;
WITH RECURSIVE cnt(x) AS (VALUES(0) UNION ALL SELECT x-1 FROM cnt WHERE x>-3) SELECT * FROM cnt;
ANALYZE;
REINDEX;
INSERT INTO t4 SELECT * FROM t4;
SELECT * FROM t3;
SELECT * FROM t2 WHERE EXISTS (SELECT 1 FROM t2 WHERE x = NULL);
WITH a AS (SELECT * FROM t1 WHERE d IS NOT NULL), b AS (SELECT * FROM a WHERE d > 0), c AS (SELECT * FROM b LIMIT 10) SELECT * FROM c;
INSERT INTO t1 SELECT * FROM t1;
INSERT INTO t1 VALUES (1, NULL, 1, NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
ALTER TABLE t2 RENAME COLUMN y TO y_r7971;
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;
ALTER TABLE t3 DROP COLUMN c2;
SELECT * FROM t2 AS a RIGHT JOIN t1 AS b ON a.rowid = b.rowid;
UPDATE t0 SET y = 'x' WHERE 1 RETURNING *;
SELECT COUNT(x) FILTER (WHERE x IS NOT NULL) OVER (PARTITION BY x ORDER BY x ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM t2;
SELECT * FROM t1 NATURAL JOIN t2;
CREATE TRIGGER IF NOT EXISTS trg_T_8719 BEFORE INSERT ON T FOR EACH ROW BEGIN INSERT INTO T(b) VALUES (NULL); END;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<69) SELECT x FROM cnt WHERE x > 34;
WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte;
CREATE TEMP VIEW IF NOT EXISTS v_T_7090 AS SELECT b FROM T;
SELECT * FROM t0 WHERE EXISTS (SELECT 1 FROM t0 WHERE EXISTS (SELECT 1 FROM t0));
ANALYZE;
INSERT INTO T DEFAULT VALUES;
DELETE FROM t0 WHERE rowid = 6;
DETACH DATABASE aux45;
REINDEX;
SELECT SUM(z) FROM t0;
SELECT y FROM t0 UNION ALL SELECT y FROM (SELECT * FROM t0) AS sub;
ATTACH DATABASE ':memory:' AS aux45;
PRAGMA writable_schema = TRUE;
PRAGMA reverse_unordered_selects = OFF;
PRAGMA cell_size_check;
creATE VIRTUAL TABLE t0 USING fts3("x", "y", "z");
DROP TABLE t0;
ATTACH DATABASE ':memory:' AS aux73;
.print
ATTACH DATABASE ':memory:' AS aux97;
.timer on
CREATE TEMPORARY TABLE t0(x, y, z);
SELECT -NULL;
SELECT * FrOm sqlite_temp_master WHERE sql GLOB '000[]***';
DROP TABLE t0;
BEGIN IMMEDIATE;
.exit -log10(radians(json_group_object('k', -(-(json_array(timediff(NULL, length(-timediff(NULL, '-Inf')timediff(NULL, NULL)))timediff(NULL, NULL), NULL, NULL))))))
PRAGMA read_uncommitted;
PRAGMA ignore_check_constraints <> YES;
PRAGMA legacy_alter_table;
.parameter
CREATE TABLE main.t1(a, b, c, d);
CREATE UNIQUE INDEX i1 ON t1(b, c);
CREATE UNIQUE INDEX i2 ON t1(d COLLATE nocase);
CREATE TABLE t2(x DECIMAL('-',(nan + (unicode('你好') + max(x'af5df3e5294acaf5a4f1de6448da', '2', randomblob(-likelihood(NULL, ceiling(NULL))))))) PRIMARY KEY, y);
CREATE TABLE main.t3(c1 PRIMARY KEY NOT NULL, c2 NOT NULL);
CREATE INDEX i3 ON t3(c2);
CREATE TABLE t4(a, b NOT NULL, c NOT NULL, d NOT NULL);
CREATE UNIQUE /* PRAGMA fullsync = 0; */ INDEX t4i1 ON t4(b, c);
CREATE UNIQUE INDEX t4i2 ON t4(d COLLATE nocase);
SELECT DISTINCT c FROM t1 WHERE NOT b = ?;
SELECT DISTINCT c FROM t1 WHERE b IN (x'ab',ifnull(json_patch(json_tree(strftime('%Y-%m-%d', 'abc')), 1), 2));
SELECT DISTINCT a, b, c COLLATE nocase FROM t1
PRAGMA integrity_check("users");
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_5148 ON t1(lower(c)) WHERE c > 0;
SELECT * FROM t1;
COMMIT;
SELECT COUNT(b) FROM t1;
INSERT INTO t2 DEFAULT VALUES;
WITH cte AS (SELECT * FROM t4) SELECT * FROM cte WHERE c > 0 UNION ALL SELECT * FROM cte WHERE c <= 0;
CREATE TEMP VIEW IF NOT EXISTS v_t1_244 AS SELECT c FROM t1;
INSERT INTO t1 SELECT * FROM t1;
ALTER TABLE t2 RENAME TO t2_r6544;
INSERT INTO t4 SELECT * FROM t4;
CREATE TRIGGER IF NOT EXISTS trg_t4_4171 BEFORE DELETE ON t4 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
VACUUM;
CREATE TABLE T (
a TINYINT PRECISION,
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;
DETACH DATABASE aux97;
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 T;
SELECT * FROM T;
ALTER TABLE /* PRAGMA defer_foreign_keys = NO; */ t2 ADD COLUMN extra_3261 FLOAT;
UPDATE t0 SET z = z + 1 WHERE 1;
WITH cte AS (SELECT CASE WHEN c IS /* PRAGMA defer_foreign_keys = TRUE; */ NULL THEN 0 ELSE c END AS val FROM t1) SELECT * FROM cte;
PRAGMA page_size = 4096;
CREATE INDEX IF NOT EXISTS idx_t0_8372 ON t0(lower(y)) WHERE y IS NOT NULL;
PRAGMA recursive_triggers = 1;
ALTER TABLE t2 RENAME COLUMN x TO x_r3369;
INSERT OR ABORT INTO t0 VALUES ('x', NULL, '');
INSERT INTO t0 VALUES (NULL, NULL, NULL);
DROP TABLE IF EXISTS t3;
SELECT COUNT(*) FILTER (WHERE y IS NOT NULL), SUM(rowid) FILTER (WHERE y > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(y) FILTER (WHERE y > 0 AND y < 100), COUNT(*) FILTER (WHERE typeof(y) = "text") FROM t2;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
CREATE TRIGGER IF NOT EXISTS trg_t4_6716 AFTER DELETE ON t4 FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END;
CREATE TRIGGER IF NOT EXISTS trg_t2_5474 BEFORE INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
PRAGMA checkpoint_fullsync;
INSERT INTO t1 SELECT * FROM t1;
INSERT OR ABORT INTO t4 VALUES ('', 0, 0, -3);
ALTER TABLE t3 RENAME COLUMN c1 TO c1_r9839;
WITH cte AS (SELECT c1 FROM t3 UNION ALL SELECT c1 FROM t3) SELECT * FROM cte;
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 t0;
PRAGMA max_page_count = 5000000;
CREATE TRIGGER IF NOT EXISTS trg_t4_645 AFTER UPDATE ON t4 BEGIN SELECT RAISE(ABORT, 'abort'); END;
VACUUM;
CREATE TRIGGER IF NOT EXISTS trg_t4_7725 BEFORE UPDATE ON t4 BEGIN SELECT RAISE(FAIL, 'no'); END;
DETACH DATABASE aux73;
CREATE INDEX IF NOT EXISTS idx_t2_3331 ON t2(y COLLATE NOCASE) WHERE y IS NOT NULL;
CREATE VIEW IF NOT EXISTS v_T_6672 AS SELECT b FROM T;
REINDEX;
ANALYZE T;
ALTER TABLE t0 ADD COLUMN extra_6804 NATIVE CHARACTER(70)NVARCHAR(100) DEFAULT (abs(random()) % 1000);
ALTER TABLE t0 DROP COLUMN y;
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;
SELECT GROUP_CONCAT(d) FROM t4;
ANALYZE t2;
ALTER TABLE t1 ADD COLUMN extra_1405 INT8 DEFAULT '';
SELECT * FROM t2 AS a RIGHT JOIN t0 AS b ON a.rowid = b.rowid;
WITH RECURSIVE multi(a, b, c) AS (VALUES(1, 2, 3) UNION ALL SELECT a+1, b+1, c+1 FROM multi WHERE a<45) SELECT * FROM multi;
DELETE FROM t3 WHERE 1 RETURNING *;
DELETE FROM t3 WHERE c1 > (SELECT AVG(c1) FROM t3);
ANALYZE;
INSERT INTO T SELECT * FROM T;
ALTER TABLE t4 RENAME TO t4_r5482;
SELECT * FROM t3 WHERE c2 <= ANY (SELECT c2 FROM t3);
VACUUM;
SELECT STRING_AGG(b) FROM t4;
SELECT * FROM t3 CROSS JOIN t2;
DELETE FROM t4 WHERE rowid = 69 RETURNING *;
SELECT * FROM t4 WHERE d IN (SELECT DISTINCT d FROM t4);
INSERT INTO T DEFAULT VALUES;
ALTER TABLE T RENAME COLUMN B TO B_r9596;
CREATE VIEW IF NOT EXISTS v_t1_2631 AS SELECT b FROM t1;
CREATE INDEX IF NOT EXISTS idx_t3_7394 ON t3(c2);
SELECT * FROM (SELECT y FROM t0 WHERE y IS NOT NULL) AS sub;
CREATE TEMP VIEW IF NOT EXISTS v_t4_1728 AS SELECT d FROM t4;
DELETE FROM t1 WHERE a IS NULL;
WITH RECURSIVE fib(a,b) AS (VALUES(1,1) UNION ALL SELECT b, a+b FROM fib WHERE b<1000) SELECT a FROM fib;
SELECT COUNT(*) FILTER (WHERE z IS NOT NULL), SUM(rowid) FILTER (WHERE z > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(z) FILTER (WHERE z > 0 AND z < 100), COUNT(*) FILTER (WHERE typeof(z) = "text") FROM t0;
CREATE TRIGGER IF NOT EXISTS trg_T_1938 BEFORE UPDATE ON T FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END;
INSERT INTO t4 SELECT * FROM t4;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t0_8908 ON t0((y + 1)) WHERE y > 0;
WITH RECURSIVE cnt(x) AS (VALUES(0) UNION ALL SELECT x-1 FROM cnt WHERE x>-3) SELECT * FROM cnt;
ANALYZE;
REINDEX;
INSERT INTO t4 SELECT * FROM t4;
SELECT * FROM t3;
SELECT * FROM t2 WHERE EXISTS (SELECT 1 FROM t2 WHERE x = NULL);
WITH a AS (SELECT * FROM t1 WHERE d IS NOT NULL), b AS (SELECT * FROM a WHERE d > 0), c AS (SELECT * FROM b LIMIT 10) SELECT * FROM c;
INSERT INTO t1 SELECT * FROM t1;
INSERT INTO t1 VALUES (1, NULL, 1, NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
ALTER TABLE t2 RENAME COLUMN y TO y_r7971;
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;
ALTER TABLE t3 DROP COLUMN c2;
SELECT * FROM t2 AS a RIGHT JOIN t1 AS b ON a.rowid = b.rowid;
UPDATE t0 SET y = 'x' WHERE 1 RETURNING *;
SELECT COUNT(x) FILTER (WHERE x IS NOT NULL) OVER (PARTITION BY x ORDER BY x ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM t2;
SELECT * FROM t1 NATURAL JOIN t2;
CREATE TRIGGER IF NOT EXISTS trg_T_8719 BEFORE INSERT ON T FOR EACH ROW BEGIN INSERT INTO T(b) VALUES (NULL); END;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<69) SELECT x FROM cnt WHERE x > 34;
WITH cte(a, b) AS (VALUES(1, "a"),(2, "b"),(3, "c")) SELECT * FROM cte;
CREATE TEMP VIEW IF NOT EXISTS v_T_7090 AS SELECT b FROM T;
SELECT * FROM t0 WHERE EXISTS (SELECT 1 FROM t0 WHERE EXISTS (SELECT 1 FROM t0));
ANALYZE;
INSERT INTO T DEFAULT VALUES;
DELETE FROM t0 WHERE rowid = 6;
DETACH DATABASE aux45;
REINDEX;
SELECT SUM(z) FROM t0;
SELECT y FROM t0 UNION ALL SELECT y FROM (SELECT * FROM t0) AS sub;
ALTER TABLE t3 DROP COLUMN c1;
SELECT GROUP_CONCAT(b, '|') FROM t1;
ANALYZE;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t3_8014 ON t3((c1 + 1)) WHERE c1 > 0;
CREATE TRIGGER IF NOT EXISTS trg_t1_6320 BEFORE DELETE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
SELECT 0x0ACB29BM205381;
SELECT sqlite_compileoption_used('我的天你是怎么了');
SELECT 1 >> -999999999999999999999999999;
SELECT sqlite_compileoption_get($1);
SELECT sqlite_version();
CREATE TRIGGER IF NOT EXISTS trg_t1_6981 AFTER INSERT ON t1 FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END;
ALTER TABLE t2 RENAME COLUMN x TO x_r930;
SELECT TOTAL(y) FROM t2;
PRAGMA vdbe_trace = 0;
CREATE TRIGGER IF NOT EXISTS trg_T_2237 BEFORE UPDATE OF b ON T BEGIN SELECT RAISE(FAIL, 'no'); END;
ALTER TABLE t3 RENAME TO t3_r9317;
CREATE VIEW IF NOT EXISTS v_t2_6925 AS SELECT x FROM t2;
SELECT MAX(z) FROM t0;
ALTER TABLE t2 DROP COLUMN y;
REINDEX;
UPDATE t2 SET x = CURRENT_TIMESTAMP WHERE rowid = 1;
SELECT TOTAL(b) FROM t1;
SELECT * FROM t1 AS a FULL JOIN t4 AS b ON a.rowid = b.rowid;
CREATE TRIGGER IF NOT EXISTS trg_t3_3578 AFTER INSERT ON t3 BEGIN INSERT INTO t3(c2) VALUES (NULL); END;
SELECT * FROM t2 WHERE EXISTS (SELECT 1 FROM t2 WHERE 1 = 1);
CREATE TRIGGER IF NOT EXISTS trg_t4_2280 AFTER DELETE ON t4 BEGIN SELECT RAISE(ABORT, 'abort'); END;
ANALYZE t4;
SELECT COUNT(*) FILTER (WHERE z IS NOT NULL), SUM(rowid) FILTER (WHERE z > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(z) FILTER (WHERE z > 0 AND z < 100), COUNT(*) FILTER (WHERE typeof(z) = "text") FROM t0;
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 t2;
SELECT NTILE(0) OVER (ORDER BY x ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t2;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
```
## Actual output
```sql
0
Run Time: real 0.000 user 0.000056 sys 0.000000
Run Time: real 0.000 user 0.000008 sys 0.000000
table t0 t0 2 CREATE TABLE t0(x, y, z)
Run Time: real 0.000 user 0.000021 sys 0.000000
Run Time: real 0.000 user 0.000048 sys 0.000000
Run Time: real 0.000 user 0.000006 sys 0.000000
```
## Expectation
```sql
0
Run Time: real 0.000040 user 0.000047 sys 0.000000
Run Time: real 0.000006 user 0.000006 sys 0.000000
table t0 t0 2 CREATE TABLE t0(x, y, z)
Run Time: real 0.000013 user 0.000015 sys 0.000000
Run Time: real 0.000045 user 0.000046 sys 0.000000
Run Time: real 0.000005 user 0.000005 sys 0.000000
```
## Flag
```
-tabs
```
@@ -0,0 +1,402 @@
## 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
.databases
SAVEPOINT sp5671;
.once log.txt
ATTACH DATABASE '' || (':memory:') AS aux78;
.limit
CREATE TABLE T1 (
a INTEGER,
b REAL
);
CREATE TABLE T2 (
a INTEGER,
b REAL
);
INSERT INTO T1 VALUES (ifnull(timediff(concat_ws(',', CAST(upper(-(-(-json_array_length(6.283185307179586)))) AS INT2), 2, 3), 1), 2),1.0);
INSERT INTO T2 VALUES (1,-1.0),(2,9e999);
INSERT OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
PRAGMA writable_schema = YES;
SAVEPOINT sp6649;
ATTACH DATABASE ':memory:' AS aux69;
.quit
.trace
CREATE TABLE main.T (
a DOUBLE,
b TEXT,
c REAL
);
INSERT INTO T VALUES (CAST(json_array_length(if(CAST(-(-(length(randomblob(CAST(mod(1.7976931348623157e+308, 1465368752231950166) AS INTEGER))))) AS TINYINT), 1, 0, 1, 0, 1), '$') AS NUMERIC),'a',3.14), (1,'b',-7.75), (2,'c',-9e999);
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT b,a,c,
RANK() OVER (PARTITION BY a ORDER BY c DESC) AS d FROM T;
ATTACH DATABASE ':memory:' AS aux86;
PRAGMA full_column_names = YES;
DROP TABLE IF EXISTS _m;
CREATE TABLE t1 (c0, c1 REAL PRIMARY KEY);
INSERT INTO t1(c0, c1) VALUES ('{', -(-(1))), (0, 0);
UPDATE t1 SET c0 = NULL;
UPDATE OR REPLACE t1 SET c1 = 1;
SELECT DISTINCT * FROM t1 WHERE NOT NOT (NOT NOT (t1.c0 IS NULL)) ;
PRAGMA integrity_check;
SELECT COUNT(*) FROM t1;
SELECT * FROM t1;
DETACH DATABASE aux86;
REINDEX;
ALTER TABLE T ADD COLUMN extra_5481 BLOB NOT NULL DEFAULT 0;
SELECT COUNT(*) FROM T;
CREATE TABLE T1 (
A VARCHAR(15) PRIMARY KEY,
B VARCHAR(30) NOT NULL UNIQUE
);
CREATE TABLE T2 (
A VARCHAR(10) PRIMARY KEY,
X VARCHAR(15) NOT NULL,
C BIGINT,
FOREIGN KEY (X) REFERENCES T1(A)
);
INSERT INTO T1 VALUES ('p', 'x');
INSERT INTO T1 VALUES ('q', 'y');
INSERT INTO T2 VALUES ('a', 'p', 9223372036854775807);
INSERT INTO T2 VALUES ('b', 'q', -9223372036854775808);
SELECT X, SUM(C) AS D, COUNT(*) AS E FROM T2 GROUP BY X;
SELECT LAG(c0, 2, 'default') OVER (PARTITION BY c0 ORDER BY c0 ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
SELECT * FROM t1;
CREATE VIEW IF NOT EXISTS v_t1_6883 AS SELECT c1 FROM t1;
ALTER TABLE t1 ADD COLUMN extra_3184 INT2 COLLATE NOCASE;
SELECT * FROM t1;
REINDEX;
SELECT c, COUNT(*) FROM T GROUP BY c HAVING COUNT(*) = (SELECT COUNT(*) 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;
PRAGMA temp_store = 'MEMORY';
VACUUM main;
SELECT * FROM T1 WHERE EXISTS (SELECT 1 FROM T1 WHERE 1 = 0);
SELECT * FROM T1 WHERE A <> ANY (SELECT A FROM T1);
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5592 AS SELECT c0 FROM t1;
REINDEX T2;
UPDATE T SET b = json_object('k', b);
DETACH DATABASE aux69;
DROP INDEX IF EXISTS T1;
SELECT STRING_AGG(C) FROM T2;
ROLLBACK TO sp6649;
RELEASE sp6649;
INSERT OR ABORT INTO T2 VALUES ('x', -9, -9);
SELECT COUNT(*) FILTER (WHERE c1 IS NOT NULL), SUM(rowid) FILTER (WHERE c1 > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c1) FILTER (WHERE c1 > 0 AND c1 < 100), COUNT(*) FILTER (WHERE typeof(c1) = "text") FROM t1;
ALTER TABLE T RENAME COLUMN b TO b_r9085;
INSERT INTO t1 DEFAULT VALUES;
SELECT GROUP_CONCAT(A, '|') FROM T2;
INSERT OR ROLLBACK INTO T1 VALUES (6, '');
WITH RECURSIVE tree(id, path) AS (VALUES(1, "/1") UNION ALL SELECT id+1, path || "/" || (id+1) FROM tree WHERE id<14) SELECT * FROM tree;
CREATE VIEW IF NOT EXISTS v_T1_7673 AS SELECT 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;
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 OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
SELECT COUNT(c) FROM T;
UPDATE T SET a = a + 1 WHERE 1;
ALTER TABLE T ADD COLUMN extra_6983 DATETIME DEFAULT CURRENT_TIMESTAMP;
INSERT INTO T2 VALUES (NULL, NULL);
.limit
CREATE TABLE T1 (
a INTEGER,
b REAL
);
CREATE TABLE T2 (
a INTEGER,
b REAL
);
INSERT INTO T1 VALUES (ifnull(timediff(concat_ws(',', CAST(upper(1) AS INT2), 2, 3), 1), 2),1.0);
INSERT INTO T2 VALUES (1,-1.0),(2,9e999);
INSERT OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
PRAGMA writable_schema = YES;
SAVEPOINT sp6649;
ATTACH DATABASE ':memory:' AS aux69;
.quit
.trace
CREATE TABLE T (
a DOUBLE,
b TEXT,
c REAL
);
INSERT INTO T VALUES (CAST(json_array_length(if(CAST(-(-(length(randomblob(CAST(mod(1.7976931348623157e+308, 1465368752231950166) AS INTEGER))))) AS TINYINT), 1, 0, 1, 0, 1), '$') AS NUMERIC),'a',3.14), (1,'b',-7.75), (2,'c',-9e999);
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT b,a,c,
RANK() OVER (PARTITION BY a ORDER BY c DESC) AS d FROM T;
ATTACH DATABASE ':memory:' AS aux86;
PRAGMA full_column_names = YES;
DROP TABLE IF EXISTS _m;
CREATE TABLE t1 (c0, c1 REAL PRIMARY KEY);
INSERT INTO t1(c0, c1) VALUES ('{', -(-(1))), (0, 0);
UPDATE t1 SET c0 = NULL;
UPDATE OR REPLACE t1 SET c1 = 1;
SELECT DISTINCT * FROM t1 WHERE NOT NOT (t1.c0 IS NULL);
PRAGMA integrity_check;
SELECT COUNT(*) FROM t1;
SELECT * FROM t1;
DETACH DATABASE aux86;
REINDEX;
ALTER TABLE T ADD COLUMN extra_5481 BLOB NOT NULL DEFAULT 0;
SELECT COUNT(*) FROM T;
CREATE TABLE T1 (
A VARCHAR(15) PRIMARY KEY,
B VARCHAR(30) NOT NULL UNIQUE
);
CREATE TABLE T2 (
A VARCHAR(10) PRIMARY KEY,
X VARCHAR(15) NOT NULL,
C BIGINT,
FOREIGN KEY (X) REFERENCES T1(A)
);
INSERT INTO T1 VALUES ('p', 'x');
INSERT INTO T1 VALUES ('q', 'y');
INSERT INTO T2 VALUES ('a', 'p', 9223372036854775807);
INSERT INTO T2 VALUES ('b', 'q', -9223372036854775808);
SELECT X, SUM(C) AS D, COUNT(*) AS E FROM T2 GROUP BY X;
SELECT LAG(c0, 2, 'default') OVER (PARTITION BY c0 ORDER BY c0 ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
SELECT * FROM t1;
CREATE VIEW IF NOT EXISTS v_t1_6883 AS SELECT c1 FROM t1;
ALTER TABLE t1 ADD COLUMN extra_3184 INT2 COLLATE NOCASE;
SELECT * FROM t1;
REINDEX;
SELECT c, COUNT(*) FROM T GROUP BY c HAVING COUNT(*) = (SELECT COUNT(*) 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;
PRAGMA temp_store = 'MEMORY';
VACUUM main;
SELECT * FROM T1 WHERE EXISTS (SELECT 1 FROM T1 WHERE 1 = 0);
SELECT * FROM T1 WHERE A <> ANY (SELECT A /**/ FROM T1);
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5592 AS SELECT c0 FROM t1;
REINDEX T2;
UPDATE T SET b = json_object('k', b);
DETACH DATABASE aux69;
DROP INDEX IF EXISTS T1;
SELECT STRING_AGG(C) FROM T2;
ROLLBACK TO sp6649;
RELEASE sp6649;
INSERT OR ABORT INTO T2 VALUES ('x', -9, -9);
SELECT COUNT(*) FILTER (WHERE c1 IS NOT NULL), SUM(rowid) FILTER (WHERE c1 > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c1) FILTER (WHERE c1 > 0 AND c1 < 100), COUNT(*) FILTER (WHERE typeof(c1) = "text") FROM t1;
ALTER TABLE T RENAME COLUMN b TO b_r9085;
INSERT INTO t1 DEFAULT VALUES;
SELECT GROUP_CONCAT(A, '|') FROM T2;
INSERT OR ROLLBACK INTO T1 VALUES (6, '');
WITH RECURSIVE tree(id, path) AS (VALUES(1, "/1") UNION ALL SELECT id+1, path || "/" || (id+1) FROM tree WHERE id<14) SELECT * FROM tree;
CREATE VIEW IF NOT EXISTS v_T1_7673 AS SELECT 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;
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 OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
SELECT COUNT(c) FROM T;
UPDATE T SET a = a + 1 WHERE 1;
ALTER TABLE T ADD COLUMN extra_6983 DATETIME DEFAULT CURRENT_TIMESTAMP;
INSERT INTO T2 VALUES (NULL, NULL);
.limit
CREATE TABLE T1 (
a INTEGER,
b REAL
);
CREATE TABLE T2 (
a INTEGER,
b REAL
);
INSERT INTO T1 VALUES (ifnull(timediff(concat_ws(',', CAST(upper(1) AS INT2), 2, 3), 1), 2),1.0);
INSERT INTO T2 VALUES (1,-1.0),(2,9e999);
INSERT OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
PRAGMA writable_schema = YES;
SAVEPOINT sp6649;
ATTACH DATABASE ':memory:' AS aux69;
.quit
.trace
CREATE TABLE T (
a DOUBLE,
b TEXT,
c REAL
);
INSERT INTO T VALUES (CAST(json_array_length(if(CAST(-(-(length(randomblob(CAST(mod(1.7976931348623157e+308, 1465368752231950166) AS INTEGER))))) AS TINYINT), 1, 0, 1, 0, 1), '$') AS NUMERIC),'a',3.14), (1,'b',-7.75), (2,'c',-9e999);
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT b,a,c,
RANK() OVER (PARTITION BY a ORDER BY c DESC) AS d FROM T;
ATTACH DATABASE ':memory:' AS aux86;
PRAGMA full_column_names = YES;
DROP TABLE IF EXISTS _m;
CREATE TABLE t1 (c0, c1 REAL PRIMARY KEY);
INSERT INTO t1(c0, c1) VALUES ('{', -(-(1))), (0, 0);
UPDATE t1 SET c0 = NULL;
UPDATE OR REPLACE t1 SET c1 = 1;
SELECT DISTINCT * FROM t1 WHERE NOT NOT (t1.c0 IS NULL);
PRAGMA integrity_check;
SELECT COUNT(*) FROM t1;
SELECT * FROM t1;
DETACH DATABASE aux86;
REINDEX;
ALTER TABLE T ADD COLUMN extra_5481 BLOB NOT NULL DEFAULT 0;
SELECT COUNT(*) FROM T;
CREATE TABLE T1 (
A VARCHAR(15) PRIMARY KEY,
B VARCHAR(30) NOT NULL UNIQUE
);
CREATE TABLE T2 (
A VARCHAR(10) PRIMARY KEY,
X VARCHAR(15) NOT NULL,
C BIGINT,
FOREIGN KEY (X) REFERENCES T1(A)
);
INSERT INTO T1 VALUES ('p', 'x');
INSERT INTO T1 VALUES ('q', 'y');
INSERT INTO T2 VALUES ('a', 'p', 9223372036854775807);
INSERT INTO T2 VALUES ('b', 'q', -9223372036854775808);
SELECT X, SUM(C) AS D, COUNT(*) AS E FROM T2 GROUP BY X;
SELECT LAG(c0, 2, 'default') OVER (PARTITION BY c0 ORDER BY c0 ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
SELECT * FROM t1;
CREATE VIEW IF NOT EXISTS v_t1_6883 AS SELECT c1 FROM t1;
ALTER TABLE t1 ADD COLUMN extra_3184 INT2 COLLATE NOCASE;
SELECT * FROM t1;
REINDEX;
SELECT c, COUNT(*) FROM T GROUP BY c HAVING COUNT(*) = (SELECT COUNT(*) 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;
PRAGMA temp_store = 'MEMORY';
VACUUM main;
SELECT * FROM T1 WHERE EXISTS (SELECT 1 FROM T1 WHERE 1 = 0);
SELECT * FROM T1 WHERE A <> ANY (SELECT A FROM T1);
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5592 AS SELECT c0 FROM t1;
REINDEX T2;
UPDATE T SET b = json_object('k', b);
DETACH DATABASE aux69;
DROP INDEX IF EXISTS T1;
SELECT STRING_AGG(C) FROM T2;
ROLLBACK TO sp6649;
RELEASE sp6649;
INSERT OR ABORT INTO T2 VALUES ('x', -9, -9);
SELECT COUNT(*) FILTER (WHERE c1 IS NOT NULL), SUM(rowid) FILTER (WHERE c1 > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c1) FILTER (WHERE c1 > 0 AND c1 < 100), COUNT(*) FILTER (WHERE typeof(c1) = "text") FROM t1;
ALTER TABLE T RENAME COLUMN b TO b_r9085;
INSERT INTO t1 DEFAULT VALUES;
SELECT GROUP_CONCAT(A, '|') FROM T2;
INSERT OR ROLLBACK INTO T1 VALUES (6, '');
WITH RECURSIVE tree(id, path) AS (VALUES(1, "/1") UNION ALL SELECT id+1, path || "/" || (id+1) FROM tree WHERE id<14) SELECT * FROM tree;
CREATE VIEW IF NOT EXISTS v_T1_7673 AS SELECT 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;
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 OR REPLACE INTO T1
SELECT * FROM T2;
SELECT * FROM T1;
SELECT COUNT(c) FROM T;
UPDATE T SET a = a + 1 WHERE 1;
ALTER TABLE T ADD COLUMN extra_6983 DATETIME DEFAULT CURRENT_TIMESTAMP;
INSERT INTO T2 VALUES (NULL, NULL);
VACUUM;
CREATE VIEW IF NOT EXISTS v_T2_6393 AS SELECT a FROM T2;
ALTER TABLE T1 RENAME COLUMN b TO b_r8651;
SELECT LEAD(a) OVER (ORDER BY a) FROM T1;
ALTER TABLE T DROP COLUMN a;
SELECT * FROM T1 AS a INNER JOIN T1 AS b ON a.rowid = b.rowid;
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 c1 IN (SELECT c1 FROM t1 t2 WHERE t2.c1 = t1.c1);
SELECT * FROM T2 AS a INNER JOIN T AS b ON a.rowid = b.rowid;
DETACH DATABASE aux78;
SELECT COUNT(*) FILTER (WHERE c1 IS NOT NULL), SUM(rowid) FILTER (WHERE c1 > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c1) FILTER (WHERE c1 > 0 AND c1 < 100), COUNT(*) FILTER (WHERE typeof(c1) = "text") FROM t1;
UPDATE T2 SET A = 'x';
PRAGMA cache_spill = NO;
INSERT INTO T2 SELECT * FROM T2;
VACUUM main;
CREATE VIRTUAL TABLE T
USING 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 WHERE EXISTS (SELECT 1 FROM T1 WHERE C > 0);
ROLLBACK TRANSACTION TO SAVEPOINT sp5671;
RELEASE SAVEPOINT sp5671;
ALTER TABLE T DROP COLUMN a;
SELECT A, (SELECT MIN(A) FROM T2) AS min_val FROM T2;
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 * FROM T1 WHERE A IN (SELECT A FROM T1 WHERE A IN (SELECT A FROM T1));
ALTER TABLE t1 ADD COLUMN extra_514 DATE DEFAULT (abs(random()) % 1000);
SELECT SUM(A) FROM T1;
ALTER TABLE t1 RENAME TO t1_r1859;
SELECT COUNT(*) FROM t1;
SELECT MAX(c0) FROM t1;
SELECT NTILE(1) OVER (PARTITION BY X ORDER BY X ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T2;
CREATE TEMP VIEW IF NOT EXISTS v_T_8701 AS SELECT b FROM T;
```
## Actual output
```sql
main: "" r/w
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
1|-1.0
2|Inf
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,714 @@
## 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 = INCREMENTAL;
PRAGMA recursive_triggers;
BEGIN IMMEDIATE TRANSACTION;
ATTACH DATABASE ':memory:' AS aux42;
SAVEPOINT sp664;
.read commands.sql
CREATE TABLE "t1"(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (round(unlikely(NULL), x'2f972a75f5d004ce366600'), 'Wernher', CAST(round(NULL, (2 * 1)) AS FLOAT), 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;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
.quit
ATTACH DATABASE ':memory:' AS aux33;
ATTACH DATABASE ':memory:' AS aux74;
.nullvalue 232327d3-536b-41de-a764-a6301986aeab
CREATE TABLE [T] (
A VARCHAR(upper('你好')) PRIMARY KEY,
B VARCHAR(json_array()) NOT NULL,
C INTEGER,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', -degrees(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 NOT (C BETWEEN -1000 AND 1000) ORDER BY C ASC;
SELECT * FROM T;
PRAGMA vdbe_debug = 0;
ALTER TABLE T DROP COLUMN B;
CREATE TRIGGER IF NOT EXISTS trg_T_6262 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
CREATE TRIGGER IF NOT EXISTS trg_T_1635 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT AVG(C) FROM T;
ALTER TABLE T RENAME COLUMN B TO B_r9915;
DETACH DATABASE aux74;
DETACH DATABASE aux33;
SELECT * FROM t1 WHERE +a > ALL (SELECT a FROM t1);
DELETE FROM t1 WHERE 0;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, 0, -6, '');
CREATE TRIGGER IF NOT EXISTS trg_t1_7285 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DROP TRIGGER IF EXISTS t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
RELEASE sp664;
ALTER TABLE t1 ADD COLUMN extra_6969 DOUBLE NOT NULL DEFAULT 0;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1;
REINDEX;
SELECT STRING_AGG(d) FROM t1;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5722 AS SELECT a FROM t1;
ALTER TABLE t1 RENAME COLUMN c TO c_r6930;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1 AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux42;
ALTER TABLE t1 RENAME COLUMN d TO d_r1370;
SELECT * FROM t1 AS a JOIN t1 AS b ON a.rowid = b.rowid;
INSERT OR REPLACE INTO t1 VALUES (NULL, 0, -9, -5);
SELECT COUNT(*) FROM t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
REINDEX t1;
SELECT COUNT(*) FROM t1;
SELECT COUNT(*) FILTER (WHERE c IS NOT NULL), SUM(rowid) FILTER (WHERE c > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c) FILTER (WHERE c > 0 AND c < 100), COUNT(*) FILTER (WHERE typeof(c) = "text") FROM t1;
UPDATE t1 SET d = CURRENT_TIMESTAMP WHERE d BETWEEN 0 AND 100;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
COMMIT;
INSERT INTO t1 SELECT * FROM t1;
DELETE FROM t1 WHERE 1 RETURNING *;
BEGIN IMMEDIATE TRANSACTION;
ATTACH DATABASE ':memory:' AS aux42;
SAVEPOINT sp664;
.read commands.sql
CREATE TABLE "t1"(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (round(unlikely(NULL), x'2f972a75f5d004ce366600'), 'Wernher', CAST(10 AS FLOAT), 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;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
.quit
ATTACH DATABASE ':memory:' AS aux33;
ATTACH DATABASE ':memory:' AS aux74;
.nullvalue 232327d3-536b-41de-a764-a6301986aeab
CREATE TABLE [T] (
A VARCHAR(upper('你好')) PRIMARY KEY,
B VARCHAR(json_array()) NOT NULL,
C INTEGER,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', -degrees(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 NOT (C BETWEEN -1000 AND 1000) ORDER BY C ASC;
SELECT * FROM T;
PRAGMA vdbe_debug = 0;
ALTER TABLE T DROP COLUMN B;
CREATE TRIGGER IF NOT EXISTS trg_T_6262 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
CREATE TRIGGER IF NOT EXISTS trg_T_1635 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT AVG(C) FROM T;
ALTER TABLE T RENAME COLUMN B TO B_r9915;
DETACH DATABASE aux74;
DETACH DATABASE aux33;
SELECT * FROM t1 WHERE +a > ALL (SELECT a FROM t1);
DELETE FROM t1 WHERE 0;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, 0, -6, '');
CREATE TRIGGER IF NOT EXISTS trg_t1_7285 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DROP TRIGGER IF EXISTS t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
RELEASE sp664;
ALTER TABLE t1 ADD COLUMN extra_6969 DOUBLE NOT NULL DEFAULT 0;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1;
REINDEX;
SELECT STRING_AGG(d) FROM t1;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5722 AS SELECT a FROM t1;
ALTER TABLE t1 RENAME COLUMN c TO c_r6930;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1 AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux42;
ALTER TABLE t1 RENAME COLUMN d TO d_r1370;
SELECT * FROM t1 AS a JOIN t1 AS b ON a.rowid = b.rowid;
INSERT OR REPLACE INTO t1 VALUES (NULL, 0, -9, -5);
SELECT COUNT(*) FROM t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
REINDEX t1;
SELECT COUNT(*) FROM t1;
SELECT COUNT(*) FILTER (WHERE c IS NOT NULL), SUM(rowid) FILTER (WHERE c > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c) FILTER (WHERE c > 0 AND c < 100), COUNT(*) FILTER (WHERE typeof(c) = "text") FROM t1;
UPDATE t1 SET d = CURRENT_TIMESTAMP WHERE d BETWEEN 0 AND 100;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
COMMIT;
INSERT INTO t1 SELECT * FROM t1;
DELETE FROM t1 WHERE 1 RETURNING *;
BEGIN IMMEDIATE TRANSACTION;
ATTACH DATABASE ':memory:' AS aux42;
SAVEPOINT sp664;
.read commands.sql
CREATE TABLE "t1"(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (round(unlikely(NULL), x'2f972a75f5d004ce366600'), 'Wernher', CAST(10 AS FLOAT), 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;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
.quit
ATTACH DATABASE ':memory:' AS aux33;
ATTACH DATABASE ':memory:' AS aux74;
.nullvalue 232327d3-536b-41de-a764-a6301986aeab
CREATE TABLE [T] (
A VARCHAR(upper('你好')) PRIMARY KEY,
B VARCHAR(json_array()) NOT NULL,
C INTEGER,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', -degrees(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 NOT (C BETWEEN -1000 AND 1000) ORDER BY C ASC;
SELECT * FROM T;
PRAGMA vdbe_debug = 0;
ALTER TABLE T DROP COLUMN B;
CREATE TRIGGER IF NOT EXISTS trg_T_6262 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
CREATE TRIGGER IF NOT EXISTS trg_T_1635 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT AVG(C) FROM T;
ALTER TABLE T RENAME COLUMN B TO B_r9915;
DETACH DATABASE aux74;
DETACH DATABASE aux33;
SELECT * FROM t1 WHERE +a > ALL (SELECT a FROM t1);
DELETE FROM t1 WHERE 0;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, 0, -6, '');
CREATE TRIGGER IF NOT EXISTS trg_t1_7285 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DROP TRIGGER IF EXISTS t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
RELEASE sp664;
ALTER TABLE t1 ADD COLUMN extra_6969 DOUBLE NOT NULL DEFAULT 0;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1;
REINDEX;
SELECT STRING_AGG(d) FROM t1;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5722 AS SELECT a FROM t1;
ALTER TABLE t1 RENAME COLUMN c TO c_r6930;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1 AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux42;
ALTER TABLE t1 RENAME COLUMN d TO d_r1370;
SELECT * FROM t1 AS a JOIN t1 AS b ON a.rowid = b.rowid;
INSERT OR REPLACE INTO t1 VALUES (NULL, 0, -9, -5);
SELECT COUNT(*) FROM t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
REINDEX t1;
SELECT COUNT(*) FROM t1;
SELECT COUNT(*) FILTER (WHERE c IS NOT NULL), SUM(rowid) FILTER (WHERE c > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c) FILTER (WHERE c > 0 AND c < 100), COUNT(*) FILTER (WHERE typeof(c) = "text") FROM t1;
UPDATE t1 SET d = CURRENT_TIMESTAMP WHERE d BETWEEN 0 AND 100;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
COMMIT;
INSERT INTO t1 SELECT * FROM t1;
DELETE FROM t1 WHERE 1 RETURNING *;
BEGIN IMMEDIATE TRANSACTION;
ATTACH DATABASE ':memory:' AS aux42;
SAVEPOINT sp664;
.read commands.sql
CREATE TABLE "t1"(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (round(unlikely(NULL), x'2f972a75f5d004ce366600'), 'Wernher', CAST(10 AS FLOAT), 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;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
.quit
ATTACH DATABASE ':memory:' AS aux33;
ATTACH DATABASE ':memory:' AS aux74;
.nullvalue 232327d3-536b-41de-a764-a6301986aeab
CREATE TABLE [T] (
A VARCHAR(upper('你好')) PRIMARY KEY,
B VARCHAR(json_array()) NOT NULL,
C INTEGER,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', -degrees(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 NOT (C BETWEEN -1000 AND 1000) ORDER BY C ASC;
SELECT * FROM T;
PRAGMA vdbe_debug = 0;
ALTER TABLE T DROP COLUMN B;
CREATE TRIGGER IF NOT EXISTS trg_T_6262 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
CREATE TRIGGER IF NOT EXISTS trg_T_1635 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT AVG(C) FROM T;
ALTER TABLE T RENAME COLUMN B TO B_r9915;
DETACH DATABASE aux74;
DETACH DATABASE aux33;
SELECT * FROM t1 WHERE +a > ALL (SELECT a FROM t1);
DELETE FROM t1 WHERE 0;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, 0, -6, '');
CREATE TRIGGER IF NOT EXISTS trg_t1_7285 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DROP TRIGGER IF EXISTS t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
RELEASE sp664;
ALTER TABLE t1 ADD COLUMN extra_6969 DOUBLE NOT NULL DEFAULT 0;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1;
REINDEX;
SELECT STRING_AGG(d) FROM t1;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5722 AS SELECT a FROM t1;
ALTER TABLE t1 RENAME COLUMN c TO c_r6930;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1 AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux42;
ALTER TABLE t1 RENAME COLUMN d TO d_r1370;
SELECT * FROM t1 AS a JOIN t1 AS b ON a.rowid = b.rowid;
INSERT OR REPLACE INTO t1 VALUES (NULL, 0, -9, -5);
SELECT COUNT(*) FROM t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
REINDEX t1;
SELECT COUNT(*) FROM t1;
SELECT COUNT(*) FILTER (WHERE c IS NOT NULL), SUM(rowid) FILTER (WHERE c > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c) FILTER (WHERE c > 0 AND c < 100), COUNT(*) FILTER (WHERE typeof(c) = "text") FROM t1;
UPDATE t1 SET d = CURRENT_TIMESTAMP WHERE d BETWEEN 0 AND 100;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
COMMIT;
INSERT INTO t1 SELECT * FROM t1;
DELETE FROM t1 WHERE 1 RETURNING *;
BEGIN IMMEDIATE TRANSACTION;
ATTACH DATABASE ':memory:' AS aux42;
SAVEPOINT sp664;
.read commands.sql
CREATE TABLE "t1"(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (round(unlikely(NULL), x'2f972a75f5d004ce366600'), 'Wernher', CAST(10 AS FLOAT), 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;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
.quit
ATTACH DATABASE ':memory:' AS aux33;
ATTACH DATABASE ':memory:' AS aux74;
.nullvalue 232327d3-536b-41de-a764-a6301986aeab
CREATE TABLE [T] (
A VARCHAR(upper('你好')) PRIMARY KEY,
B VARCHAR(json_array()) NOT NULL,
C INTEGER,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', -degrees(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 NOT (C BETWEEN -1000 AND 1000) ORDER BY C ASC;
SELECT * FROM T;
PRAGMA vdbe_debug = 0;
ALTER TABLE T DROP COLUMN B;
CREATE TRIGGER IF NOT EXISTS trg_T_6262 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
CREATE TRIGGER IF NOT EXISTS trg_T_1635 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT AVG(C) FROM T;
ALTER TABLE T RENAME COLUMN B TO B_r9915;
DETACH DATABASE aux74;
DETACH DATABASE aux33;
SELECT * FROM t1 WHERE +a > ALL (SELECT a FROM t1);
DELETE FROM t1 WHERE 0;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, 0, -6, '');
CREATE TRIGGER IF NOT EXISTS trg_t1_7285 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DROP TRIGGER IF EXISTS t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
RELEASE sp664;
ALTER TABLE t1 ADD COLUMN extra_6969 DOUBLE NOT NULL DEFAULT 0;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1;
REINDEX;
SELECT STRING_AGG(d) FROM t1;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5722 AS SELECT a FROM t1;
ALTER TABLE t1 RENAME COLUMN c TO c_r6930;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1 AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux42;
ALTER TABLE t1 RENAME COLUMN d TO d_r1370;
SELECT * FROM t1 AS a JOIN t1 AS b ON a.rowid = b.rowid;
INSERT OR REPLACE INTO t1 VALUES (NULL, 0, -9, -5);
SELECT COUNT(*) FROM t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
REINDEX t1;
SELECT COUNT(*) FROM t1;
SELECT COUNT(*) FILTER (WHERE c IS NOT NULL), SUM(rowid) FILTER (WHERE c > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c) FILTER (WHERE c > 0 AND c < 100), COUNT(*) FILTER (WHERE typeof(c) = "text") FROM t1;
UPDATE t1 SET d = CURRENT_TIMESTAMP WHERE d BETWEEN 0 AND 100;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
COMMIT;
INSERT INTO t1 SELECT * FROM t1;
DELETE FROM t1 WHERE 1 RETURNING *;
BEGIN IMMEDIATE TRANSACTION;
ATTACH DATABASE ':memory:' AS aux42;
SAVEPOINT sp664;
.read commands.sql
CREATE TABLE "t1"(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (round(unlikely(NULL), x'2f972a75f5d004ce366600'), 'Wernher', CAST(10 AS FLOAT), 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;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
.quit
ATTACH DATABASE ':memory:' AS aux33;
ATTACH DATABASE ':memory:' AS aux74;
.nullvalue 232327d3-536b-41de-a764-a6301986aeab
CREATE TABLE [T] (
A VARCHAR(upper('你好')) PRIMARY KEY,
B VARCHAR(json_array()) NOT NULL,
C INTEGER,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', -degrees(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 NOT (C BETWEEN -1000 AND 1000) ORDER BY C ASC;
SELECT * FROM T;
PRAGMA vdbe_debug = 0;
ALTER TABLE T DROP COLUMN B;
CREATE TRIGGER IF NOT EXISTS trg_T_6262 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
CREATE TRIGGER IF NOT EXISTS trg_T_1635 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT AVG(C) FROM T;
ALTER TABLE T RENAME COLUMN B TO B_r9915;
DETACH DATABASE aux74;
DETACH DATABASE aux33;
SELECT * FROM t1 WHERE +a > ALL (SELECT a FROM t1);
DELETE FROM t1 WHERE 0;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, 0, -6, '');
CREATE TRIGGER IF NOT EXISTS trg_t1_7285 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DROP TRIGGER IF EXISTS t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
RELEASE sp664;
ALTER TABLE t1 ADD COLUMN extra_6969 DOUBLE NOT NULL DEFAULT 0;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1;
REINDEX;
SELECT STRING_AGG(d) FROM t1;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5722 AS SELECT a FROM t1;
ALTER TABLE t1 RENAME COLUMN c TO c_r6930;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1 AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux42;
ALTER TABLE t1 RENAME COLUMN d TO d_r1370;
SELECT * FROM t1 AS a JOIN t1 AS b ON a.rowid = b.rowid;
INSERT OR REPLACE INTO t1 VALUES (NULL, 0, -9, -5);
SELECT COUNT(*) FROM t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
REINDEX t1;
SELECT COUNT(*) FROM t1;
SELECT COUNT(*) FILTER (WHERE c IS NOT NULL), SUM(rowid) FILTER (WHERE c > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c) FILTER (WHERE c > 0 AND c < 100), COUNT(*) FILTER (WHERE typeof(c) = "text") FROM t1;
UPDATE t1 SET d = CURRENT_TIMESTAMP WHERE d BETWEEN 0 AND 100;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
COMMIT;
INSERT INTO t1 SELECT * FROM t1;
DELETE FROM t1 WHERE 1 RETURNING *;
BEGIN IMMEDIATE TRANSACTION;
ATTACH DATABASE ':memory:' AS aux42;
SAVEPOINT sp664;
.read commands.sql
CREATE TABLE "t1"(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (round(unlikely(NULL), x'2f972a75f5d004ce366600'), 'Wernher', CAST(10 AS FLOAT), 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;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
.quit
ATTACH DATABASE ':memory:' AS aux33;
ATTACH DATABASE ':memory:' AS aux74;
.nullvalue 232327d3-536b-41de-a764-a6301986aeab
CREATE TABLE [T] (
A VARCHAR(upper('你好')) PRIMARY KEY,
B VARCHAR(json_array()) NOT NULL,
C INTEGER,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', -degrees(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 NOT (C BETWEEN -1000 AND 1000) ORDER BY C ASC;
SELECT * FROM T;
PRAGMA vdbe_debug = 0;
ALTER TABLE T DROP COLUMN B;
CREATE TRIGGER IF NOT EXISTS trg_T_6262 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
CREATE TRIGGER IF NOT EXISTS trg_T_1635 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT AVG(C) FROM T;
ALTER TABLE T RENAME COLUMN B TO B_r9915;
DETACH DATABASE aux74;
DETACH DATABASE aux33;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
SELECT * FROM t1 WHERE +a > ALL (SELECT a FROM t1);
DELETE FROM t1 WHERE 0;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, 0, -6, '');
CREATE TRIGGER IF NOT EXISTS trg_t1_7285 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DROP TRIGGER IF EXISTS t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
RELEASE sp664;
ALTER TABLE t1 ADD COLUMN extra_6969 DOUBLE NOT NULL DEFAULT 0;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1;
REINDEX;
SELECT STRING_AGG(d) FROM t1;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5722 AS SELECT a FROM t1;
ALTER TABLE t1 RENAME COLUMN c TO c_r6930;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1 AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux42;
ALTER TABLE t1 RENAME COLUMN d TO d_r1370;
SELECT * FROM t1 AS a JOIN t1 AS b ON a.rowid = b.rowid;
INSERT OR REPLACE INTO t1 VALUES (NULL, 0, -9, -5);
SELECT COUNT(*) FROM t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
REINDEX t1;
SELECT COUNT(*) FROM t1;
SELECT COUNT(*) FILTER (WHERE c IS NOT NULL), SUM(rowid) FILTER (WHERE c > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c) FILTER (WHERE c > 0 AND c < 100), COUNT(*) FILTER (WHERE typeof(c) = "text") FROM t1;
UPDATE t1 SET d = CURRENT_TIMESTAMP WHERE d BETWEEN 0 AND 100;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
COMMIT;
INSERT INTO t1 SELECT * FROM t1;
DELETE FROM t1 WHERE 1 RETURNING *;
BEGIN IMMEDIATE TRANSACTION;
ATTACH DATABASE ':memory:' AS aux42;
SAVEPOINT sp664;
.read commands.sql
CREATE TABLE "t1"(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (round(unlikely(NULL), x'2f972a75f5d004ce366600'), 'Wernher', CAST(10 AS FLOAT), 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;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
.quit
ATTACH DATABASE ':memory:' AS aux33;
ATTACH DATABASE ':memory:' AS aux74;
.nullvalue 232327d3-536b-41de-a764-a6301986aeab
CREATE TABLE [T] (
A VARCHAR(upper('你好')) PRIMARY KEY,
B VARCHAR(json_array()) NOT NULL,
C INTEGER,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', -degrees(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 NOT (C BETWEEN -1000 AND 1000) ORDER BY C ASC;
SELECT * FROM T;
PRAGMA vdbe_debug = 0;
ALTER TABLE T DROP COLUMN B;
CREATE TRIGGER IF NOT EXISTS trg_T_6262 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
CREATE TRIGGER IF NOT EXISTS trg_T_1635 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT AVG(C) FROM T;
ALTER TABLE T RENAME COLUMN B TO B_r9915;
DETACH DATABASE aux74;
DETACH DATABASE aux33;
SELECT * FROM t1 WHERE +a > ALL (SELECT a FROM t1);
DELETE FROM t1 WHERE 0;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, 0, -6, '');
CREATE TRIGGER IF NOT EXISTS trg_t1_7285 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DROP TRIGGER IF EXISTS t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
RELEASE sp664;
ALTER TABLE t1 ADD COLUMN extra_6969 DOUBLE NOT NULL DEFAULT 0;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1;
REINDEX;
SELECT STRING_AGG(d) FROM t1;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5722 AS SELECT a FROM t1;
ALTER TABLE t1 RENAME COLUMN c TO c_r6930;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1 AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux42;
ALTER TABLE t1 RENAME COLUMN d TO d_r1370;
SELECT * FROM t1 AS a JOIN t1 AS b ON a.rowid = b.rowid;
INSERT OR REPLACE INTO t1 VALUES (NULL, 0, -9, -5);
SELECT COUNT(*) FROM t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
REINDEX t1;
SELECT COUNT(*) FROM t1;
SELECT COUNT(*) FILTER (WHERE c IS NOT NULL), SUM(rowid) FILTER (WHERE c > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c) FILTER (WHERE c > 0 AND c < 100), COUNT(*) FILTER (WHERE typeof(c) = "text") FROM t1;
UPDATE t1 SET d = CURRENT_TIMESTAMP WHERE d BETWEEN 0 AND 100;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
COMMIT;
INSERT INTO t1 SELECT * FROM t1;
DELETE FROM t1 WHERE 1 RETURNING *;
BEGIN IMMEDIATE TRANSACTION;
ATTACH DATABASE ':memory:' AS aux42;
SAVEPOINT sp664;
.read commands.sql
CREATE TABLE "t1"(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (round(unlikely(NULL), x'2f972a75f5d004ce366600'), 'Wernher', CAST(10 AS FLOAT), 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;
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
DROP TABLE t0;
.quit
ATTACH DATABASE ':memory:' AS aux33;
ATTACH DATABASE ':memory:' AS aux74;
.nullvalue 232327d3-536b-41de-a764-a6301986aeab
CREATE TABLE [T] (
A VARCHAR(upper('你好')) PRIMARY KEY,
B VARCHAR(json_array()) NOT NULL,
C INTEGER,
UNIQUE (B, C)
);
INSERT INTO T VALUES ('a', 'p', -degrees(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 NOT (C BETWEEN -1000 AND 1000) ORDER BY C ASC;
SELECT * FROM T;
PRAGMA vdbe_debug = 0;
ALTER TABLE T DROP COLUMN B;
CREATE TRIGGER IF NOT EXISTS trg_T_6262 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
CREATE TRIGGER IF NOT EXISTS trg_T_1635 AFTER UPDATE OF A ON T FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
SELECT AVG(C) FROM T;
ALTER TABLE T RENAME COLUMN B TO B_r9915;
DETACH DATABASE aux74;
DETACH DATABASE aux33;
SELECT * FROM t1 WHERE +a > ALL (SELECT a FROM t1);
DELETE FROM t1 WHERE 0;
INSERT OR ROLLBACK INTO t1 VALUES (NULL, 0, -6, '');
CREATE TRIGGER IF NOT EXISTS trg_t1_7285 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
DROP TRIGGER IF EXISTS t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
RELEASE sp664;
ALTER TABLE t1 ADD COLUMN extra_6969 DOUBLE NOT NULL DEFAULT 0;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1;
REINDEX;
SELECT STRING_AGG(d) FROM t1;
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_5722 AS SELECT a FROM t1;
ALTER TABLE t1 RENAME COLUMN c TO c_r6930;
INSERT INTO t1 DEFAULT VALUES;
SELECT * FROM t1 AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
DETACH DATABASE aux42;
ALTER TABLE t1 RENAME COLUMN d TO d_r1370;
SELECT * FROM t1 AS a JOIN t1 AS b ON a.rowid = b.rowid;
INSERT OR REPLACE INTO t1 VALUES (NULL, 0, -9, -5);
SELECT COUNT(*) FROM t1;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
REINDEX t1;
SELECT COUNT(*) FROM t1;
SELECT COUNT(*) FILTER (WHERE c IS NOT NULL), SUM(rowid) FILTER (WHERE c > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c) FILTER (WHERE c > 0 AND c < 100), COUNT(*) FILTER (WHERE typeof(c) = "text") FROM t1;
UPDATE t1 SET d = CURRENT_TIMESTAMP WHERE d BETWEEN 0 AND 100;
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
COMMIT;
INSERT INTO t1 SELECT * FROM t1;
DELETE FROM t1 WHERE 1 RETURNING *;
DELETE FROM t1 WHERE a > (SELECT AVG(a) FROM t1) RETURNING *;
ALTER TABLE t1 ADD COLUMN extra_1693 DOUBLE PRECISION COLLATE RTRIM;
INSERT INTO t1 VALUES (1, 1, 1, NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
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;
WITH cte(x, y) AS (VALUES(1,2),(3,4),(5,6)) SELECT * FROM cte;
SELECT * FROM t1 WHERE EXISTS (SELECT 1 FROM t1 WHERE a < 0);
SELECT COUNT(*) FROM t1;
SELECT * FROM t1 WHERE d = (SELECT d FROM t1 ORDER BY d LIMIT 1 OFFSET (SELECT COUNT(*) FROM t1 / 2));
CREATE TEMP VIEW IF NOT EXISTS v_t1_4538 AS SELECT a FROM t1;
UPDATE t1 SET b = '';
SELECT COUNT(*) FROM t1;
WITH cte AS (SELECT b, LEAD(b) OVER (ORDER BY b) AS nxt FROM t1) SELECT * FROM cte;
SELECT * FROM t1;
DROP INDEX IF EXISTS t1;
SELECT * FROM t1 AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
SELECT GROUP_CONCAT(a, '|') FROM t1;
WITH RECURSIVE tree(id, parent, depth) AS (VALUES(1, NULL, 0) UNION ALL SELECT id+1, id, depth+1 FROM tree WHERE depth<29) SELECT * FROM tree;
```
## Actual output
```sql
0
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||1
von|20|2
Braun|30
Wernher|
von|20
```
## Expectation
```sql
0
1
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,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
BEGIN IMMEDIATE TRANSACTION;
.tables non_existent_table
CREATE TABLE T (
a INTEGER,
b TEXT,
c INTEGER
);
INSERT INTO T VALUES ((0 + 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 cache_spill = 0;
CREATE TABLE main.artists (id integer NOT NULL PRIMARY KEY AUTOINCREMENT, name varchar(255));
CREATE TABLE albums ( id integer NOT NULL PRIMARY KEY AUTOINCREMENT, name varchar(255), artist_id integer REFERENCES artists);
INSERT INTO artists (name) VALUES ('Ar');
INSERT INTO albums (name, artist_id) VALUES ('Al', 1);
SELECT artists.* FROM artists INNER JOIN artists AS b ON (b.id = artists.id) WHERE (artists.id IN ( SELECT albums.artist_id FROM albums WHERE ((name = 'Al') AND (albums.artist_id IS NOT NULL) AND (albums.id IN ( SELECT id FROM ( SELECT albums.id, row_number() OVER (PARTITION BY /**/ albums.artist_id ORDER BY name) AS x FROM albums WHERE (name = 'Al') ) AS t1 WHERE (x = 1) )) AND (albums.id IN (1, 2))) ));
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
ANALYZE;
REINDEX albums;
REINDEX artists;
SELECT AVG(id) FROM artists;
ALTER TABLE t1 DROP COLUMN c;
DELETE FROM t1 WHERE 0 RETURNING *;
SELECT AVG(b) FROM t1;
CREATE TRIGGER IF NOT EXISTS trg_T_5677 BEFORE UPDATE ON T FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END;
WITH cte AS (SELECT a, COUNT(*) AS cnt FROM t1 GROUP BY a) SELECT * FROM cte WHERE cnt > 1;
INSERT INTO t1 SELECT * FROM t1;
UPDATE albums SET artist_id = artist_id + 1 WHERE artist_id IS NOT NULL RETURNING *;
END;
```
## Actual output
```sql
1|a||1
2|b|1|2
3|c|2|3
1|Ar
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|a||1
2|b|1|2
3|c|2|3
1|Ar
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,73 @@
## 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
.progress 1
BEGIN DEFERRED;
.print https://yewtu.be/watch?v=dQw4w9WgXcQ
.exit (9999 - 0)
.dbconfig
PRAGMA count_changes = YES;
PRAGMA fullsync = FALSE;
.separator >_<
PRAGMA fullfsync;
PRAGMA wal_autocheckpoint;
PRAGMA cache_spill;
.timer on
CREATE TABLE T (
a INTEGER,
b REAL,
c REAL
);
INSERT INTO T VALUES (sqrt('#'),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;
CREATE INDEX IF NOT EXISTS idx_T_9600 ON T(lower(b)) WHERE b > 0;
ALTER TABLE T DROP COLUMN c;
PRAGMA analysis_limit;
SELECT * FROM T AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
ALTER TABLE T ADD COLUMN extra_747 INT COLLATE NOCASE;
CREATE VIEW IF NOT EXISTS v_T_1966 AS SELECT a FROM T;
ALTER TABLE T ADD COLUMN extra_7698 ANY NOT NULL DEFAULT 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;
INSERT INTO T VALUES (NULL, NULL, NULL);
SELECT * FROM (SELECT * FROM T) AS sub;
SELECT * FROM (SELECT b, COUNT(*) FROM T GROUP BY b) AS sub;
ALTER TABLE T RENAME COLUMN b TO b_r6106;
SELECT * FROM T WHERE c = (SELECT MAX(c) FROM T WHERE c = (SELECT MAX(c) FROM T));
REINDEX T;
ALTER TABLE T ADD COLUMN extra_9321 BLOB DEFAULT (random());
ROLLBACK;
INSERT OR FAIL INTO T VALUES ('x', 0, -1);
SELECT * FROM T;
DELETE FROM T WHERE c IS NULL;
SELECT COUNT(*) FILTER (WHERE c IS NOT NULL), SUM(rowid) FILTER (WHERE c > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(c) FILTER (WHERE c > 0 AND c < 100), COUNT(*) FILTER (WHERE typeof(c) = "text") FROM T;
DROP INDEX IF EXISTS T;
PRAGMA read_uncommitted = 0;
CREATE TEMP VIEW IF NOT EXISTS v_T_3569 AS SELECT a FROM T;
```
## Actual output
```sql
Progress 1
Progress 2
https://yewtu.be/watch?v=dQw4w9WgXcQ
```
## Expectation
```sql
Progress 1
Progress 2
Progress 3
https://yewtu.be/watch?v=dQw4w9WgXcQ
```
## 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 secure_delete = ON;
PRAGMA foreign_keys = FALSE;
-- sign(1)
PRAGMA cell_size_check = 3370811959573763011;
PRAGMA page_size;
.recover
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);
CREATE TEMP VIEW IF NOT EXISTS v_map_integer_924 AS SELECT id FROM map_integer;
SELECT NTILE(4) OVER (ORDER BY name GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM map_integer;
CREATE VIEW IF NOT EXISTS v_map_integer_8760 AS SELECT name FROM map_integer;
CREATE TABLE T (
a TEXT,
b TEXT
);
INSERT INTO T VALUES ('a','b'), ('c','d');
SELECT * FROM T WHERE a = REPLACE('a;',';','') AND b = 'b';
WITH cte(x) AS (SELECT id FROM map_integer) SELECT x FROM cte;
REINDEX;
ALTER TABLE map_text RENAME COLUMN name TO name_r1633;
WITH cte AS (SELECT name, ROW_NUMBER() OVER (ORDER BY name) AS rn FROM data) SELECT * FROM cte WHERE rn <= 5;
ALTER TABLE data RENAME TO data_r811;
```
## Actual output
```sql
1
4096
PRAGMA foreign_keys=OFF;
BEGIN;
PRAGMA writable_schema = on;
PRAGMA writable_schema = off;
COMMIT;
1|abc|a
1
a|b
1
abc|1
xyz|2
```
## Expectation
```sql
1
4096
.dbconfig defensive off
BEGIN;
PRAGMA writable_schema = on;
PRAGMA foreign_keys = off;
PRAGMA encoding = 'UTF-8';
PRAGMA page_size = '4096';
PRAGMA auto_vacuum = '0';
PRAGMA user_version = '0';
PRAGMA application_id = '0';
PRAGMA writable_schema = off;
COMMIT;
4|xyz|e
1
a|b
1
abc|1
xyz|2
```
## 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
SAVEPOINT sp1480;
CREATE TABLE t1(a REAL PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (min(instr('hello', ''), NULL), 'Wernher', -asin(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
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;
SELECT * FROM T;
SELECT * FROM t1;
SELECT COUNT(*) FROM T;
REINDEX T;
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;
INSERT INTO t1 VALUES (1, NULL, 1, NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
ALTER TABLE t1 RENAME TO t1_r9560;
SELECT COUNT(*) FROM t1;
SELECT SUM(b) FROM t1;
INSERT INTO t1 SELECT * FROM t1;
ANALYZE;
ROLLBACK TO sp1480;
RELEASE sp1480;
DELETE FROM T 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|-1.5707963267949|1
von|20|2
Braun|30
Wernher|-1.5707963267949
von|20
```
## Expectation
```sql
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
Braun|30|3
Wernher|-1.5707963267949|1
von|20|2
Braun|30
Wernher|-1.5707963267949
von|20
```
## Flag
```
```
@@ -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
CREATE TABLE T (
a TEXT,
b TEXT,
c REAL
);
INSERT INTO T VALUES ('a','b',concat_ws('|', 'a', NULL, 'b')), ('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;
WITH cte(a, b, c) AS (SELECT b, b, b FROM T) SELECT a, b, c FROM cte;
SELECT COUNT(*) FROM T;
SELECT RANK() OVER (ORDER BY c RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T;
CREATE VIEW IF NOT EXISTS v_T_9129 AS SELECT b FROM T;
INSERT INTO T SELECT * FROM T;
```
## Actual output
```sql
| COUNT(*) |
|----------|
| 0 |
```
## Expectation
```sql
```
## Flag
```
-markdown
```
@@ -0,0 +1,126 @@
## 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;
PRAGMA cache_spill = ON;
ATTACH DATABASE ':memory:' AS aux25;
PRAGMA journal_mode;
PRAGMA trusted_schema = YES;
PRAGMA encoding = 'UTF-16be';
PRAGMA defer_foreign_keys = NO;
PRAGMA trusted_schema = TRUE;
.fullschema
CREATE TABLE A(Name text);
CREATE TABLE Items(ItemName text , Name text);
INSERT INTO Items /* -maxsize 5 */ VALUES('Item1','Parent');
INSERT INTO Items VALUES('Item2','Parent');
CREATE TABLE B(Name text);
SELECT Items.ItemName FROM Items LEFT OUTER JOIN A ON (A.Name = Items.ItemName and Items.ItemName = 'dummy') LEFT JOIN B ON (B.Name = Items.ItemName) WHERE NOT NOT (Items.Name = 'Parent') ORDER BY Items.ItemName;
PRAGMA compile_options;
DELETE FROM A WHERE Name > (SELECT AVG(Name) FROM A);
REINDEX;
SELECT AVG(Name) FILTER (WHERE Name != CAST(-(-(-if(10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000))) AS TEXT)) OVER (ORDER BY Name ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM B;
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;
SELECT * FROM B;
SELECT * FROM B AS a LEFT OUTER JOIN A AS b ON a.rowid = b.rowid;
WITH cte AS (SELECT * FROM A) SELECT * FROM cte;
DETACH DATABASE aux25;
SELECT LEAD(Name, 2, 'default') OVER (PARTITION BY Name ORDER BY Name RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM A;
SELECT COUNT(*) FROM A;
SELECT COUNT(*) FROM Items;
SELECT COUNT(Name) FILTER (WHERE NULL) OVER (ORDER BY Name GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM B;
CREATE UNIQUE INDEX IF NOT EXISTS idx_A_5218 ON A(Name) WHERE Name IS NOT NULL;
COMMIT TRANSACTION;
CREATE VIEW IF NOT EXISTS v_B_962 AS SELECT Name FROM B;
```
## Actual output
```sql
memory
/* No STAT tables available */
Item1
Item2
ATOMIC_INTRINSICS=1
COMPILER=gcc-14.2.0
DEFAULT_AUTOVACUUM
DEFAULT_CACHE_SIZE=-2000
DEFAULT_FILE_FORMAT=4
DEFAULT_JOURNAL_SIZE_LIMIT=-1
DEFAULT_MMAP_SIZE=0
DEFAULT_PAGE_SIZE=4096
DEFAULT_PCACHE_INITSZ=20
DEFAULT_RECURSIVE_TRIGGERS
DEFAULT_SECTOR_SIZE=4096
DEFAULT_SYNCHRONOUS=2
DEFAULT_WAL_AUTOCHECKPOINT=1000
DEFAULT_WAL_SYNCHRONOUS=2
DEFAULT_WORKER_THREADS=0
ENABLE_BYTECODE_VTAB
ENABLE_DBPAGE_VTAB
ENABLE_DBSTAT_VTAB
ENABLE_EXPLAIN_COMMENTS
ENABLE_FTS3
ENABLE_FTS4
ENABLE_MATH_FUNCTIONS
ENABLE_OFFSET_SQL_FUNC
ENABLE_RTREE
ENABLE_STMTVTAB
ENABLE_UNKNOWN_SQL_FUNCTION
HAVE_ISNAN
MALLOC_SOFT_LIMIT=1024
MAX_ATTACHED=10
MAX_COLUMN=2000
MAX_COMPOUND_SELECT=500
MAX_DEFAULT_PAGE_SIZE=8192
MAX_EXPR_DEPTH=1000
MAX_FUNCTION_ARG=127
MAX_LENGTH=1000000000
MAX_LIKE_PATTERN_LENGTH=50000
MAX_MMAP_SIZE=0x7fff0000
MAX_PAGE_COUNT=1073741823
MAX_PAGE_SIZE=65536
MAX_SQL_LENGTH=1000000000
MAX_TRIGGER_DEPTH=1000
MAX_VARIABLE_NUMBER=32766
MAX_VDBE_OP=250000000
MAX_WORKER_THREADS=8
MUTEX_PTHREADS
SYSTEM_MALLOC
TEMP_STORE=1
THREADSAFE=1
b|3|350
0
2
```
## Expectation
```sql
```
## Flag
```
```
@@ -0,0 +1,437 @@
## 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;
.open
BEGIN DEFERRED;
.dump
SAVEPOINT sp688;
-- json_array({v})
.nullvalue x'8bfa8aa1306e3bcaaf92966e8ce19b'NULL2327d3-log2(soundex(5))36b-41de-a764-a6301986aeab
PRAGMA defer_foreign_keys;
CREATE TABLE "T" (
a DOUB,
b TEXT,
c REAL
);
INSERT INTO T VALUES (pow(atan(1), 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;
ATTACH DATABASE ':memory:' AS aux77;
ATTACH DATABASE ':memory:' AS aux50;
PRAGMA module_list;
.exit -(jsonb_each(json_each(x'4452f1f3ff4b'), '$.arr') + CAST(1 AS FLOAT))
PRAGMA table_info(users);
PRAGMA short_column_names IS NOT ON;
PRAGMA user_version = '''''';
.print https://yewtu.be/watch?v=dQw4w9WgXcQ
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;
SELECT * FROM T AS a INNER JOIN T AS b ON a.rowid = b.rowid;
DELETE FROM T WHERE NOT A > (SELECT AVG(A) FROM T);
UPDATE T SET A = json_object('k', A) WHERE A BETWEEN 0 AND 100;
ALTER TABLE T RENAME COLUMN A TO A_r6693;
DELETE FROM T WHERE 0 RETURNING *;
SELECT COUNT(*) FROM T;
VACUUM main;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<0) SELECT * FROM cnt;
WITH RECURSIVE self(x) AS (SELECT 1 UNION ALL SELECT x FROM self) SELECT * FROM self LIMIT 5;
INSERT INTO T DEFAULT VALUES;
REINDEX T;
SELECT GROUP_CONCAT(B, '|') FROM T;
DELETE FROM T WHERE 0 RETURNING *;
SELECT * FROM T;
SELECT * FROM T WHERE B IN (SELECT B FROM T WHERE B LIKE "%%");
ALTER TABLE T RENAME TO T_r8238;
SELECT COUNT(*) FROM T;
PRAGMA trusted_schema = NO;
ALTER TABLE T DROP COLUMN B;
SELECT * FROM T AS a LEFT JOIN T AS b ON a.rowid = b.rowid;
CREATE TABLE T (
a NATIVE CHARACTER(70)NVARCHAR(100),
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;
DETACH DATABASE aux50;
DETACH DATABASE aux77;
SELECT * FROM T CROSS JOIN T;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T VALUES (NULL, NULL);
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_9728 AS SELECT b FROM T;
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;
CREATE VIEW IF NOT EXISTS v_T_1441 AS SELECT b FROM T;
ANALYZE T;
ALTER TABLE T DROP COLUMN b;
SELECT COUNT(*) FROM T;
SELECT * FROM T WHERE /**/ b > (SELECT COUNT(*) FROM T);
INSERT INTO T DEFAULT VALUES;
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T t2 WHERE t2.a = T.a);
SELECT * FROM T WHERE a <= ANY (SELECT a FROM T);
SELECT * FROM T WHERE a <= ALL (SELECT a FROM T);
DROP TRIGGER IF EXISTS 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;
CREATE INDEX IF NOT EXISTS idx_T_6057 ON T((b + 1));
INSERT INTO T DEFAULT VALUES;
SELECT LAG(a, 1) OVER (PARTITION BY a ORDER BY a RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T;
RELEASE sp688;
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 T DEFAULT VALUES;
SELECT * FROM T WHERE b < (SELECT AVG(b) FROM T);
SELECT MIN(b) FROM T;
ALTER TABLE T RENAME TO T_r8142;
SELECT STRING_AGG(a) FROM T;
COMMIT TRANSACTION;
INSERT OR IGNORE INTO T VALUES ('', NULL);
SELECT NTILE(1) OVER (ORDER BY b ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
INSERT INTO T VALUES (NULL, NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
ANALYZE;
ALTER TABLE T DROP COLUMN b;
ALTER TABLE T RENAME COLUMN a TO a_r5366;
CREATE TRIGGER IF NOT EXISTS trg_T_3151 BEFORE DELETE ON T FOR EACH ROW BEGIN INSERT INTO T(b) VALUES (NULL); END;
SELECT LEAD(a, 1, NULL) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
ALTER TABLE T RENAME COLUMN b TO b_r2313;
SELECT * FROM T AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
.open
BEGIN DEFERRED;
.dump
SAVEPOINT sp688;
-- json_array({v})
.nullvalue x'8bfa8aa1306e3bcaaf92966e8ce19b'NULL2327d3-log2(soundex(5))36b-41de-a764-a6301986aeab
PRAGMA defer_foreign_keys;
CREATE TABLE "T" (
a DOUB,
b TEXT,
c REAL
);
INSERT INTO T VALUES (pow(atan(1), 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;
ATTACH DATABASE ':memory:' AS aux77;
ATTACH DATABASE ':memory:' AS aux50;
PRAGMA module_list;
.exit -(jsonb_each(json_each(x'4452f1f3ff4b'), '$.arr') + CAST(1 AS FLOAT))
PRAGMA table_info(users);
PRAGMA short_column_names IS NOT ON;
PRAGMA user_version = '''''';
.print https://yewtu.be/watch?v=dQw4w9WgXcQ
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;
SELECT * FROM T AS a INNER JOIN T AS b ON a.rowid = b.rowid;
DELETE FROM T WHERE NOT A > (SELECT AVG(A) FROM T);
UPDATE T SET A = json_object('k', A) WHERE A BETWEEN 0 AND 100;
ALTER TABLE T RENAME COLUMN A TO A_r6693;
DELETE FROM T WHERE 0 RETURNING *;
SELECT COUNT(*) FROM T;
VACUUM main;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<0) SELECT * FROM cnt;
WITH RECURSIVE self(x) AS (SELECT 1 UNION ALL SELECT x FROM self) SELECT * FROM self LIMIT 5;
INSERT INTO T DEFAULT VALUES;
REINDEX T;
SELECT GROUP_CONCAT(B, '|') FROM T;
DELETE FROM T WHERE 0 RETURNING *;
SELECT * FROM T;
SELECT * FROM T WHERE B IN (SELECT B FROM T WHERE B LIKE "%%");
ALTER TABLE T RENAME TO T_r8238;
SELECT COUNT(*) FROM T;
PRAGMA trusted_schema = NO;
ALTER TABLE T DROP COLUMN B;
SELECT * FROM T AS a LEFT JOIN T AS b ON a.rowid = b.rowid;
CREATE TABLE T (
a NATIVE CHARACTER(70)NVARCHAR(100),
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;
DETACH DATABASE aux50;
DETACH DATABASE aux77;
SELECT * FROM T CROSS JOIN T;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T VALUES (NULL, NULL);
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_9728 AS SELECT b FROM T;
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;
CREATE VIEW IF NOT EXISTS v_T_1441 AS SELECT b FROM T;
ANALYZE T;
ALTER TABLE T DROP COLUMN b;
SELECT COUNT(*) FROM T;
SELECT * FROM T WHERE /**/ b > (SELECT COUNT(*) FROM T);
INSERT INTO T DEFAULT VALUES;
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T t2 WHERE t2.a = T.a);
SELECT * FROM T WHERE a <= ANY (SELECT a FROM T);
SELECT * FROM T WHERE a <= ALL (SELECT a FROM T);
DROP TRIGGER IF EXISTS 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;
CREATE INDEX IF NOT EXISTS idx_T_6057 ON T((b + 1));
INSERT INTO T DEFAULT VALUES;
SELECT LAG(a, 1) OVER (PARTITION BY a ORDER BY a RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T;
RELEASE sp688;
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 T DEFAULT VALUES;
SELECT * FROM T WHERE b < (SELECT AVG(b) FROM T);
SELECT MIN(b) FROM T;
ALTER TABLE T RENAME TO T_r8142;
SELECT STRING_AGG(a) FROM T;
COMMIT TRANSACTION;
INSERT OR IGNORE INTO T VALUES ('', NULL);
SELECT NTILE(1) OVER (ORDER BY b ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
INSERT INTO T VALUES (NULL, NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
ANALYZE;
ALTER TABLE T DROP COLUMN b;
ALTER TABLE T RENAME COLUMN a TO a_r5366;
CREATE TRIGGER IF NOT EXISTS trg_T_3151 BEFORE DELETE ON T FOR EACH ROW BEGIN INSERT INTO T(b) VALUES (NULL); END;
SELECT LEAD(a, 1, NULL) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
ALTER TABLE T RENAME COLUMN b TO b_r2313;
SELECT * FROM T AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
.open
BEGIN DEFERRED;
.dump
SAVEPOINT sp688;
-- json_array({v})
.nullvalue x'8bfa8aa1306e3bcaaf92966e8ce19b'NULL2327d3-log2(soundex(5))36b-41de-a764-a6301986aeab
PRAGMA defer_foreign_keys;
CREATE TABLE "T" (
a DOUB,
b TEXT,
c REAL
);
INSERT INTO T VALUES (pow(atan(1), 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;
ATTACH DATABASE ':memory:' AS aux77;
ATTACH DATABASE ':memory:' AS aux50;
PRAGMA module_list;
.exit -(jsonb_each(json_each(x'4452f1f3ff4b'), '$.arr') + CAST(1 AS FLOAT))
PRAGMA table_info(users);
PRAGMA short_column_names IS NOT ON;
PRAGMA user_version = '''''';
.print https://yewtu.be/watch?v=dQw4w9WgXcQ
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;
SELECT * FROM T AS a INNER JOIN T AS b ON a.rowid = b.rowid;
DELETE FROM T WHERE NOT A > (SELECT AVG(A) FROM T);
UPDATE T SET A = json_object('k', A) WHERE A BETWEEN 0 AND 100;
ALTER TABLE T RENAME COLUMN A TO A_r6693;
DELETE FROM T WHERE 0 RETURNING *;
SELECT COUNT(*) FROM T;
VACUUM main;
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<0) SELECT * FROM cnt;
WITH RECURSIVE self(x) AS (SELECT 1 UNION ALL SELECT x FROM self) SELECT * FROM self LIMIT 5;
INSERT INTO T DEFAULT VALUES;
REINDEX T;
SELECT GROUP_CONCAT(B, '|') FROM T;
DELETE FROM T WHERE 0 RETURNING *;
SELECT * FROM T;
SELECT * FROM T WHERE B IN (SELECT B FROM T WHERE B LIKE "%%");
ALTER TABLE T RENAME TO T_r8238;
SELECT COUNT(*) FROM T;
PRAGMA trusted_schema = NO;
ALTER TABLE T DROP COLUMN B;
SELECT * FROM T AS a LEFT JOIN T AS b ON a.rowid = b.rowid;
CREATE TABLE T (
a NATIVE CHARACTER(70)NVARCHAR(100),
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;
DETACH DATABASE aux50;
DETACH DATABASE aux77;
SELECT * FROM T CROSS JOIN T;
INSERT INTO T DEFAULT VALUES;
INSERT INTO T VALUES (NULL, NULL);
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_9728 AS SELECT b FROM T;
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;
CREATE VIEW IF NOT EXISTS v_T_1441 AS SELECT b FROM T;
ANALYZE T;
ALTER TABLE T DROP COLUMN b;
SELECT COUNT(*) FROM T;
SELECT * FROM T WHERE /**/ b > (SELECT COUNT(*) FROM T);
INSERT INTO T DEFAULT VALUES;
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T t2 WHERE t2.a = T.a);
SELECT * FROM T WHERE a <= ANY (SELECT a FROM T);
SELECT * FROM T WHERE a <= ALL (SELECT a FROM T);
DROP TRIGGER IF EXISTS 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;
CREATE INDEX IF NOT EXISTS idx_T_6057 ON T((b + 1));
INSERT INTO T DEFAULT VALUES;
SELECT LAG(a, 1) OVER (PARTITION BY a ORDER BY a RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T;
RELEASE sp688;
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 T DEFAULT VALUES;
SELECT * FROM T WHERE b < (SELECT AVG(b) FROM T);
SELECT MIN(b) FROM T;
ALTER TABLE T RENAME TO T_r8142;
SELECT STRING_AGG(a) FROM T;
COMMIT TRANSACTION;
INSERT OR IGNORE INTO T VALUES ('', NULL);
SELECT NTILE(1) OVER (ORDER BY b ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
INSERT INTO T VALUES (NULL, NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
ANALYZE;
ALTER TABLE T DROP COLUMN b;
ALTER TABLE T RENAME COLUMN a TO a_r5366;
CREATE TRIGGER IF NOT EXISTS trg_T_3151 BEFORE DELETE ON T FOR EACH ROW BEGIN INSERT INTO T(b) VALUES (NULL); END;
SELECT LEAD(a, 1, NULL) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
ALTER TABLE T RENAME COLUMN b TO b_r2313;
SELECT * FROM T AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
SELECT LAG(a, 2, a) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
INSERT INTO T VALUES (NULL, NULL);
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_3102 ON T((b + 1));
ROLLBACK;
```
## Actual output
```sql
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
COMMIT;
0
a|0.785398163397448|3.14|1
b|1.0|-7.75|1
c|2.0|-Inf|1
sqlite_dbdata
generate_series
completion
fsdir
tables_used
sqlite_stmt
json_tree
fts4aux
fts3
fts4
sqlite_dbptr
fts3tokenize
bytecode
rtree_i32
sqlite_dbpage
rtree
dbstat
json_each
```
## Expectation
```sql
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
COMMIT;
0
a|0.785398163397448|3.14|1
b|1.0|-7.75|1
c|2.0|-Inf|1
fsdir
generate_series
bytecode
dbstat
tables_used
sqlite_stmt
sqlite_dbpage
rtree_i32
fts4aux
fts3
zipfile
fts4
completion
rtree
fts3tokenize
```
## Flag
```
```

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