574 lines
26 KiB
Markdown
574 lines
26 KiB
Markdown
## Summary
|
|
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
|
|
|
|
## Minimized query
|
|
|
|
```sql
|
|
PRAGMA auto_vacuum = 9223372036854775808;
|
|
PRAGMA schema_version;
|
|
ATTACH DATABASE (':memory:' || '') AS aux27;
|
|
PRAGMA max_page_count;
|
|
.width json_array_insert(CAST(printf('%05d', -typeof('text')) AS DOUBLE PRECISION), '$.arr[0]', 1) 2 3
|
|
PRAGMA fullsync = 1;
|
|
BEGIN EXCLUSIVE TRANSACTION;
|
|
.exit -jsonb_patch(1, 1)
|
|
PRAGMA vdbe_trace = round(1);
|
|
PRAGMA vdbe_debug = 0;
|
|
PRAGMA automatic_index = 1;
|
|
.limit COLUMN 5
|
|
CREATE TABLE main.t1(a,b INT);
|
|
INSERT INTO t1(a,b) VALUES(1,2),(3,3),(4,5);
|
|
CREATE UNIQUE INDEX i1 ON t1(b,b,a,a,a,a,a,b,a);
|
|
ANALYZE;
|
|
DROP TABLE IF EXISTS sqlite_stat4;
|
|
INSERT INTO sqlite_stat1 VALUES('t1','i1','30 30 30 2 2 2 2 2 2 2');
|
|
ANALYZE sqlite_master;
|
|
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT GROUP_CONCAT(a) FROM _m;
|
|
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_7393 AS SELECT b FROM t1;
|
|
DROP INDEX IF EXISTS t1;
|
|
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;
|
|
WITH cte AS (SELECT * FROM t1 WHERE NOT NOT (b = (SELECT MAX(b) FROM t1)) SELECT * FROM cte) ;
|
|
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;
|
|
COMMIT TRANSACTION;
|
|
INSERT INTO T VALUES (NULL, NULL, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
|
|
|
|
SELECT COUNT(*) FROM t1;
|
|
INSERT INTO t1 DEFAULT VALUES;
|
|
INSERT INTO T DEFAULT VALUES;
|
|
SELECT GROUP_CONCAT(a, '|') FROM t1;
|
|
SELECT LEAD(c) OVER (PARTITION BY c ORDER BY c ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) 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;
|
|
SELECT * FROM t1;
|
|
REINDEX T;
|
|
REINDEX;
|
|
ALTER TABLE t1 DROP COLUMN b;
|
|
REINDEX t1;
|
|
SELECT GROUP_CONCAT(b, '|') FROM t1;
|
|
ALTER TABLE t1 RENAME COLUMN b TO b_r9688;
|
|
SELECT * FROM T;
|
|
SELECT * FROM t1 NATURAL JOIN t1;
|
|
DELETE FROM t1 WHERE rowid = 30 RETURNING *;
|
|
WITH a AS (SELECT * FROM T), b AS (SELECT * FROM a), c AS (SELECT * FROM b), d AS (SELECT * FROM c) SELECT * FROM d;
|
|
DETACH DATABASE aux27;
|
|
CREATE TEMP VIEW IF NOT EXISTS v_t1_362 AS SELECT a FROM t1;
|
|
CREATE TRIGGER IF NOT EXISTS trg_t1_60 AFTER UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
|
INSERT INTO t1 VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
|
|
ALTER TABLE T ADD COLUMN extra_8526 TINYINT DEFAULT 0;
|
|
DROP TABLE IF EXISTS t1;
|
|
INSERT INTO T VALUES ('x', 'x', 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
|
|
ANALYZE;
|
|
PRAGMA auto_vacuum = 0;
|
|
PRAGMA schema_version;
|
|
ATTACH DATABASE ':memory:' AS aux27;
|
|
PRAGMA max_page_count;
|
|
.width json_array_insert(CAST(printf('%05d', -typeof('text')) AS DOUBLE PRECISION), '$.arr[0]', 1) 2 3
|
|
PRAGMA fullsync = 1;
|
|
BEGIN EXCLUSIVE TRANSACTION;
|
|
.exit -jsonb_patch(1, 1)
|
|
PRAGMA vdbe_trace = round(1);
|
|
PRAGMA vdbe_debug = 0;
|
|
PRAGMA automatic_index = 1;
|
|
.limit COLUMN 5
|
|
CREATE TABLE main.t1(a,b INT);
|
|
INSERT INTO t1(a,b) VALUES(1,2),(3,3),(4,5);
|
|
CREATE UNIQUE INDEX i1 ON t1(b,b,a,a,a,a,a,b,a);
|
|
ANALYZE;
|
|
DROP TABLE IF EXISTS sqlite_stat4;
|
|
INSERT INTO sqlite_stat1 VALUES('t1','i1','30 30 30 2 2 2 2 2 2 2');
|
|
ANALYZE sqlite_master;
|
|
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT GROUP_CONCAT(a) FROM _m;
|
|
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_7393 AS SELECT b FROM t1;
|
|
DROP INDEX IF EXISTS t1;
|
|
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;
|
|
WITH cte AS (SELECT * FROM t1 WHERE NOT NOT (b = (SELECT MAX(b) FROM t1)) SELECT * FROM cte) ;
|
|
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;
|
|
COMMIT TRANSACTION;
|
|
INSERT INTO T VALUES (NULL, NULL, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
|
|
|
|
SELECT COUNT(*) FROM t1;
|
|
INSERT INTO t1 DEFAULT VALUES;
|
|
INSERT INTO T DEFAULT VALUES;
|
|
SELECT GROUP_CONCAT(a, '|') FROM t1;
|
|
SELECT LEAD(c) OVER (PARTITION BY c ORDER BY c ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) 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;
|
|
SELECT * FROM t1;
|
|
REINDEX T;
|
|
REINDEX;
|
|
ALTER TABLE t1 DROP COLUMN b;
|
|
REINDEX t1;
|
|
SELECT GROUP_CONCAT(b, '|') FROM t1;
|
|
ALTER TABLE t1 RENAME COLUMN b TO b_r9688;
|
|
SELECT * FROM T;
|
|
SELECT * FROM t1 NATURAL JOIN t1;
|
|
DELETE FROM t1 WHERE rowid = 30 RETURNING *;
|
|
WITH a AS (SELECT * FROM T), b AS (SELECT * FROM a), c AS (SELECT * FROM b), d AS (SELECT * FROM c) SELECT * FROM d;
|
|
DETACH DATABASE aux27;
|
|
CREATE TEMP VIEW IF NOT EXISTS v_t1_362 AS SELECT a FROM t1;
|
|
CREATE TRIGGER IF NOT EXISTS trg_t1_60 AFTER UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
|
INSERT INTO t1 VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
|
|
ALTER TABLE T ADD COLUMN extra_8526 TINYINT DEFAULT 0;
|
|
DROP TABLE IF EXISTS t1;
|
|
INSERT INTO T VALUES ('x', 'x', 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
|
|
ANALYZE;
|
|
PRAGMA auto_vacuum = 0;
|
|
PRAGMA schema_version;
|
|
ATTACH DATABASE ':memory:' AS aux27;
|
|
PRAGMA max_page_count;
|
|
.width json_array_insert(CAST(printf('%05d', -typeof('text')) AS DOUBLE PRECISION), '$.arr[0]', 1) 2 3
|
|
PRAGMA fullsync = 1;
|
|
BEGIN EXCLUSIVE TRANSACTION;
|
|
.exit -jsonb_patch(1, 1)
|
|
PRAGMA vdbe_trace = round(1);
|
|
PRAGMA vdbe_debug = 0;
|
|
PRAGMA automatic_index = 1;
|
|
.limit COLUMN 5
|
|
CREATE TABLE main.t1(a,b INT);
|
|
INSERT INTO t1(a,b) VALUES(1,2),(3,3),(4,5);
|
|
CREATE UNIQUE INDEX i1 ON t1(b,b,a,a,a,a,a,b,a);
|
|
ANALYZE;
|
|
DROP TABLE IF EXISTS sqlite_stat4;
|
|
INSERT INTO sqlite_stat1 VALUES('t1','i1','30 30 30 2 2 2 2 2 2 2');
|
|
ANALYZE sqlite_master;
|
|
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT GROUP_CONCAT(a) FROM _m;
|
|
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_7393 AS SELECT b FROM t1;
|
|
DROP INDEX IF EXISTS t1;
|
|
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;
|
|
WITH cte AS (SELECT * FROM t1 WHERE NOT NOT (b = (SELECT MAX(b) FROM t1)) SELECT * FROM cte) ;
|
|
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;
|
|
COMMIT TRANSACTION;
|
|
INSERT INTO T VALUES (NULL, NULL, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
|
|
|
|
SELECT COUNT(*) FROM t1;
|
|
INSERT INTO t1 DEFAULT VALUES;
|
|
INSERT INTO T DEFAULT VALUES;
|
|
SELECT GROUP_CONCAT(a, '|') FROM t1;
|
|
SELECT LEAD(c) OVER (PARTITION BY c ORDER BY c ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) 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;
|
|
SELECT * FROM t1;
|
|
REINDEX T;
|
|
REINDEX;
|
|
ALTER TABLE t1 DROP COLUMN b;
|
|
REINDEX t1;
|
|
SELECT GROUP_CONCAT(b, '|') FROM t1;
|
|
ALTER TABLE t1 RENAME COLUMN b TO b_r9688;
|
|
SELECT * FROM T;
|
|
SELECT * FROM t1 NATURAL JOIN t1;
|
|
DELETE FROM t1 WHERE rowid = 30 RETURNING *;
|
|
WITH a AS (SELECT * FROM T), b AS (SELECT * FROM a), c AS (SELECT * FROM b), d AS (SELECT * FROM c) SELECT * FROM d;
|
|
DETACH DATABASE aux27;
|
|
CREATE TEMP VIEW IF NOT EXISTS v_t1_362 AS SELECT a FROM t1;
|
|
CREATE TRIGGER IF NOT EXISTS trg_t1_60 AFTER UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
|
INSERT INTO t1 VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
|
|
ALTER TABLE T ADD COLUMN extra_8526 TINYINT DEFAULT 0;
|
|
DROP TABLE IF EXISTS t1;
|
|
INSERT INTO T VALUES ('x', 'x', 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
|
|
ANALYZE;
|
|
PRAGMA auto_vacuum = 0;
|
|
PRAGMA schema_version;
|
|
ATTACH DATABASE ':memory:' AS aux27;
|
|
PRAGMA max_page_count;
|
|
.width json_array_insert(CAST(printf('%05d', -typeof('text')) AS DOUBLE PRECISION), '$.arr[0]', 1) 2 3
|
|
PRAGMA fullsync = 1;
|
|
BEGIN EXCLUSIVE TRANSACTION;
|
|
.exit -jsonb_patch(1, 1)
|
|
PRAGMA vdbe_trace = round(1);
|
|
PRAGMA vdbe_debug = 0;
|
|
PRAGMA automatic_index = 1;
|
|
.limit COLUMN 5
|
|
CREATE TABLE main.t1(a,b INT);
|
|
INSERT INTO t1(a,b) VALUES(1,2),(3,3),(4,5);
|
|
CREATE UNIQUE INDEX i1 ON t1(b,b,a,a,a,a,a,b,a);
|
|
ANALYZE;
|
|
DROP TABLE IF EXISTS sqlite_stat4;
|
|
INSERT INTO sqlite_stat1 VALUES('t1','i1','30 30 30 2 2 2 2 2 2 2');
|
|
ANALYZE sqlite_master;
|
|
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT GROUP_CONCAT(a) FROM _m;
|
|
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_7393 AS SELECT b FROM t1;
|
|
DROP INDEX IF EXISTS t1;
|
|
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;
|
|
WITH cte AS (SELECT * FROM t1 WHERE NOT NOT (b = (SELECT MAX(b) FROM t1)) SELECT * FROM cte) ;
|
|
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;
|
|
COMMIT TRANSACTION;
|
|
INSERT INTO T VALUES (NULL, NULL, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
|
|
|
|
SELECT COUNT(*) FROM t1;
|
|
INSERT INTO t1 DEFAULT VALUES;
|
|
INSERT INTO T DEFAULT VALUES;
|
|
SELECT GROUP_CONCAT(a, '|') FROM t1;
|
|
SELECT LEAD(c) OVER (PARTITION BY c ORDER BY c ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) 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;
|
|
SELECT * FROM t1;
|
|
REINDEX T;
|
|
REINDEX;
|
|
ALTER TABLE t1 DROP COLUMN b;
|
|
REINDEX t1;
|
|
SELECT GROUP_CONCAT(b, '|') FROM t1;
|
|
ALTER TABLE t1 RENAME COLUMN b TO b_r9688;
|
|
SELECT * FROM T;
|
|
SELECT * FROM t1 NATURAL JOIN t1;
|
|
DELETE FROM t1 WHERE rowid = 30 RETURNING *;
|
|
WITH a AS (SELECT * FROM T), b AS (SELECT * FROM a), c AS (SELECT * FROM b), d AS (SELECT * FROM c) SELECT * FROM d;
|
|
DETACH DATABASE aux27;
|
|
CREATE TEMP VIEW IF NOT EXISTS v_t1_362 AS SELECT a FROM t1;
|
|
CREATE TRIGGER IF NOT EXISTS trg_t1_60 AFTER UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
|
INSERT INTO t1 VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
|
|
ALTER TABLE T ADD COLUMN extra_8526 TINYINT DEFAULT 0;
|
|
DROP TABLE IF EXISTS t1;
|
|
INSERT INTO T VALUES ('x', 'x', 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
|
|
ANALYZE;
|
|
PRAGMA auto_vacuum = 0;
|
|
PRAGMA schema_version;
|
|
ATTACH DATABASE ':memory:' AS aux27;
|
|
PRAGMA max_page_count;
|
|
.width json_array_insert(CAST(printf('%05d', -typeof('text')) AS DOUBLE PRECISION), '$.arr[0]', 1) 2 3
|
|
PRAGMA fullsync = 1;
|
|
BEGIN EXCLUSIVE TRANSACTION;
|
|
.exit -jsonb_patch(1, 1)
|
|
PRAGMA vdbe_trace = round(1);
|
|
PRAGMA vdbe_debug = 0;
|
|
PRAGMA automatic_index = 1;
|
|
.limit COLUMN 5
|
|
CREATE TABLE main.t1(a,b INT);
|
|
INSERT INTO t1(a,b) VALUES(1,2),(3,3),(4,5);
|
|
CREATE UNIQUE INDEX i1 ON t1(b,b,a,a,a,a,a,b,a);
|
|
ANALYZE;
|
|
DROP TABLE IF EXISTS sqlite_stat4;
|
|
INSERT INTO sqlite_stat1 VALUES('t1','i1','30 30 30 2 2 2 2 2 2 2');
|
|
ANALYZE sqlite_master;
|
|
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT GROUP_CONCAT(a) FROM _m;
|
|
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_7393 AS SELECT b FROM t1;
|
|
DROP INDEX IF EXISTS t1;
|
|
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;
|
|
WITH cte AS (SELECT * FROM t1 WHERE NOT NOT (b = (SELECT MAX(b) FROM t1)) SELECT * FROM cte) ;
|
|
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;
|
|
COMMIT TRANSACTION;
|
|
INSERT INTO T VALUES (NULL, NULL, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
|
|
|
|
SELECT COUNT(*) FROM t1;
|
|
INSERT INTO t1 DEFAULT VALUES;
|
|
INSERT INTO T DEFAULT VALUES;
|
|
SELECT GROUP_CONCAT(a, '|') FROM t1;
|
|
SELECT LEAD(c) OVER (PARTITION BY c ORDER BY c ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) 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;
|
|
SELECT * FROM t1;
|
|
REINDEX T;
|
|
REINDEX;
|
|
ALTER TABLE t1 DROP COLUMN b;
|
|
REINDEX t1;
|
|
SELECT GROUP_CONCAT(b, '|') FROM t1;
|
|
ALTER TABLE t1 RENAME COLUMN b TO b_r9688;
|
|
SELECT * FROM T;
|
|
SELECT * FROM t1 NATURAL JOIN t1;
|
|
DELETE FROM t1 WHERE rowid = 30 RETURNING *;
|
|
WITH a AS (SELECT * FROM T), b AS (SELECT * FROM a), c AS (SELECT * FROM b), d AS (SELECT * FROM c) SELECT * FROM d;
|
|
DETACH DATABASE aux27;
|
|
CREATE TEMP VIEW IF NOT EXISTS v_t1_362 AS SELECT a FROM t1;
|
|
CREATE TRIGGER IF NOT EXISTS trg_t1_60 AFTER UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
|
INSERT INTO t1 VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
|
|
ALTER TABLE T ADD COLUMN extra_8526 TINYINT DEFAULT 0;
|
|
DROP TABLE IF EXISTS t1;
|
|
INSERT INTO T VALUES ('x', 'x', 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
|
|
ANALYZE;
|
|
PRAGMA auto_vacuum = 0;
|
|
PRAGMA schema_version;
|
|
ATTACH DATABASE ':memory:' AS aux27;
|
|
PRAGMA max_page_count;
|
|
.width json_array_insert(CAST(printf('%05d', -typeof('text')) AS DOUBLE PRECISION), '$.arr[0]', 1) 2 3
|
|
PRAGMA fullsync = 1;
|
|
BEGIN EXCLUSIVE TRANSACTION;
|
|
.exit -jsonb_patch(1, 1)
|
|
PRAGMA vdbe_trace = round(1);
|
|
PRAGMA vdbe_debug = 0;
|
|
PRAGMA automatic_index = 1;
|
|
.limit COLUMN 5
|
|
CREATE TABLE main.t1(a,b INT);
|
|
INSERT INTO t1(a,b) VALUES(1,2),(3,3),(4,5);
|
|
CREATE UNIQUE INDEX i1 ON t1(b,b,a,a,a,a,a,b,a);
|
|
ANALYZE;
|
|
DROP TABLE IF EXISTS sqlite_stat4;
|
|
INSERT INTO sqlite_stat1 VALUES('t1','i1','30 30 30 2 2 2 2 2 2 2');
|
|
ANALYZE sqlite_master;
|
|
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT GROUP_CONCAT(a) FROM _m;
|
|
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_7393 AS SELECT b FROM t1;
|
|
DROP INDEX IF EXISTS t1;
|
|
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;
|
|
WITH cte AS (SELECT * FROM t1 WHERE NOT NOT (b = (SELECT MAX(b) FROM t1)) SELECT * FROM cte) ;
|
|
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;
|
|
COMMIT TRANSACTION;
|
|
INSERT INTO T VALUES (NULL, NULL, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
|
|
|
|
SELECT COUNT(*) FROM t1;
|
|
INSERT INTO t1 DEFAULT VALUES;
|
|
INSERT INTO T DEFAULT VALUES;
|
|
SELECT GROUP_CONCAT(a, '|') FROM t1;
|
|
SELECT LEAD(c) OVER (PARTITION BY c ORDER BY c ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) 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;
|
|
SELECT * FROM t1;
|
|
REINDEX T;
|
|
REINDEX;
|
|
ALTER TABLE t1 DROP COLUMN b;
|
|
REINDEX t1;
|
|
SELECT GROUP_CONCAT(b, '|') FROM t1;
|
|
ALTER TABLE t1 RENAME COLUMN b TO b_r9688;
|
|
SELECT * FROM T;
|
|
SELECT * FROM t1 NATURAL JOIN t1;
|
|
DELETE FROM t1 WHERE rowid = 30 RETURNING *;
|
|
WITH a AS (SELECT * FROM T), b AS (SELECT * FROM a), c AS (SELECT * FROM b), d AS (SELECT * FROM c) SELECT * FROM d;
|
|
DETACH DATABASE aux27;
|
|
CREATE TEMP VIEW IF NOT EXISTS v_t1_362 AS SELECT a FROM t1;
|
|
CREATE TRIGGER IF NOT EXISTS trg_t1_60 AFTER UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
|
INSERT INTO t1 VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
|
|
ALTER TABLE T ADD COLUMN extra_8526 TINYINT DEFAULT 0;
|
|
DROP TABLE IF EXISTS t1;
|
|
INSERT INTO T VALUES ('x', 'x', 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
|
|
ANALYZE;
|
|
PRAGMA auto_vacuum = 0;
|
|
PRAGMA schema_version;
|
|
ATTACH DATABASE ':memory:' AS aux27;
|
|
PRAGMA max_page_count;
|
|
.width json_array_insert(CAST(printf('%05d', -typeof('text')) AS DOUBLE PRECISION), '$.arr[0]', 1) 2 3
|
|
PRAGMA fullsync = 1;
|
|
BEGIN EXCLUSIVE TRANSACTION;
|
|
.exit -jsonb_patch(1, 1)
|
|
PRAGMA vdbe_trace = round(1);
|
|
PRAGMA vdbe_debug = 0;
|
|
PRAGMA automatic_index = 1;
|
|
.limit COLUMN 5
|
|
CREATE TABLE main.t1(a,b INT);
|
|
INSERT INTO t1(a,b) VALUES(1,2),(3,3),(4,5);
|
|
CREATE UNIQUE INDEX i1 ON t1(b,b,a,a,a,a,a,b,a);
|
|
ANALYZE;
|
|
DROP TABLE IF EXISTS sqlite_stat4;
|
|
INSERT INTO sqlite_stat1 VALUES('t1','i1','30 30 30 2 2 2 2 2 2 2');
|
|
ANALYZE sqlite_master;
|
|
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT GROUP_CONCAT(a) FROM _m;
|
|
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_7393 AS SELECT b FROM t1;
|
|
DROP INDEX IF EXISTS t1;
|
|
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;
|
|
WITH cte AS (SELECT * FROM t1 WHERE NOT NOT (b = (SELECT MAX(b) FROM t1)) SELECT * FROM cte) ;
|
|
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;
|
|
COMMIT TRANSACTION;
|
|
INSERT INTO T VALUES (NULL, NULL, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
|
|
|
|
SELECT COUNT(*) FROM t1;
|
|
INSERT INTO t1 DEFAULT VALUES;
|
|
INSERT INTO T DEFAULT VALUES;
|
|
SELECT GROUP_CONCAT(a, '|') FROM t1;
|
|
SELECT LEAD(c) OVER (PARTITION BY c ORDER BY c ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) 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;
|
|
SELECT * FROM t1;
|
|
REINDEX T;
|
|
REINDEX;
|
|
ALTER TABLE t1 DROP COLUMN b;
|
|
REINDEX t1;
|
|
SELECT GROUP_CONCAT(b, '|') FROM t1;
|
|
ALTER TABLE t1 RENAME COLUMN b TO b_r9688;
|
|
SELECT * FROM T;
|
|
SELECT * FROM t1 NATURAL JOIN t1;
|
|
DELETE FROM t1 WHERE rowid = 30 RETURNING *;
|
|
WITH a AS (SELECT * FROM T), b AS (SELECT * FROM a), c AS (SELECT * FROM b), d AS (SELECT * FROM c) SELECT * FROM d;
|
|
DETACH DATABASE aux27;
|
|
CREATE TEMP VIEW IF NOT EXISTS v_t1_362 AS SELECT a FROM t1;
|
|
CREATE TRIGGER IF NOT EXISTS trg_t1_60 AFTER UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
|
INSERT INTO t1 VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
|
|
ALTER TABLE T ADD COLUMN extra_8526 TINYINT DEFAULT 0;
|
|
DROP TABLE IF EXISTS t1;
|
|
INSERT INTO T VALUES ('x', 'x', 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
|
|
ANALYZE;
|
|
PRAGMA auto_vacuum = 0;
|
|
PRAGMA schema_version;
|
|
ATTACH DATABASE ':memory:' AS aux27;
|
|
PRAGMA max_page_count;
|
|
.width json_array_insert(CAST(printf('%05d', -typeof('text')) AS DOUBLE PRECISION), '$.arr[0]', 1) 2 3
|
|
PRAGMA fullsync = 1;
|
|
BEGIN EXCLUSIVE TRANSACTION;
|
|
.exit -jsonb_patch(1, 1)
|
|
PRAGMA vdbe_trace = round(1);
|
|
PRAGMA vdbe_debug = 0;
|
|
PRAGMA automatic_index = 1;
|
|
.limit COLUMN 5
|
|
CREATE TABLE main.t1(a,b INT);
|
|
INSERT INTO t1(a,b) VALUES(1,2),(3,3),(4,5);
|
|
CREATE UNIQUE INDEX i1 ON t1(b,b,a,a,a,a,a,b,a);
|
|
ANALYZE;
|
|
DROP TABLE IF EXISTS sqlite_stat4;
|
|
INSERT INTO sqlite_stat1 VALUES('t1','i1','30 30 30 2 2 2 2 2 2 2');
|
|
ANALYZE sqlite_master;
|
|
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT GROUP_CONCAT(a) FROM _m;
|
|
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_7393 AS SELECT b FROM t1;
|
|
DROP INDEX IF EXISTS t1;
|
|
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;
|
|
WITH cte AS (SELECT * FROM t1 WHERE NOT NOT (b = (SELECT MAX(b) FROM t1)) SELECT * FROM cte) ;
|
|
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;
|
|
COMMIT TRANSACTION;
|
|
INSERT INTO T VALUES (NULL, NULL, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
|
|
|
|
SELECT COUNT(*) FROM t1;
|
|
INSERT INTO t1 DEFAULT VALUES;
|
|
INSERT INTO T DEFAULT VALUES;
|
|
SELECT GROUP_CONCAT(a, '|') FROM t1;
|
|
SELECT LEAD(c) OVER (PARTITION BY c ORDER BY c ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) 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;
|
|
SELECT * FROM t1;
|
|
REINDEX T;
|
|
REINDEX;
|
|
ALTER TABLE t1 DROP COLUMN b;
|
|
REINDEX t1;
|
|
SELECT GROUP_CONCAT(b, '|') FROM t1;
|
|
ALTER TABLE t1 RENAME COLUMN b TO b_r9688;
|
|
SELECT * FROM T;
|
|
SELECT * FROM t1 NATURAL JOIN t1;
|
|
DELETE FROM t1 WHERE rowid = 30 RETURNING *;
|
|
WITH a AS (SELECT * FROM T), b AS (SELECT * FROM a), c AS (SELECT * FROM b), d AS (SELECT * FROM c) SELECT * FROM d;
|
|
DETACH DATABASE aux27;
|
|
CREATE TEMP VIEW IF NOT EXISTS v_t1_362 AS SELECT a FROM t1;
|
|
CREATE TRIGGER IF NOT EXISTS trg_t1_60 AFTER UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
|
INSERT INTO t1 VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
|
|
ALTER TABLE T ADD COLUMN extra_8526 TINYINT DEFAULT 0;
|
|
DROP TABLE IF EXISTS t1;
|
|
INSERT INTO T VALUES ('x', 'x', 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
|
|
ANALYZE;
|
|
PRAGMA auto_vacuum = 0;
|
|
PRAGMA schema_version;
|
|
ATTACH DATABASE ':memory:' AS aux27;
|
|
PRAGMA max_page_count;
|
|
.width json_array_insert(CAST(printf('%05d', -typeof('text')) AS DOUBLE PRECISION), '$.arr[0]', 1) 2 3
|
|
PRAGMA fullsync = 1;
|
|
BEGIN EXCLUSIVE TRANSACTION;
|
|
.exit -jsonb_patch(1, 1)
|
|
PRAGMA vdbe_trace = round(1);
|
|
PRAGMA vdbe_debug = 0;
|
|
PRAGMA automatic_index = 1;
|
|
.limit COLUMN 5
|
|
CREATE TABLE main.t1(a,b INT);
|
|
INSERT INTO t1(a,b) VALUES(1,2),(3,3),(4,5);
|
|
CREATE UNIQUE INDEX i1 ON t1(b,b,a,a,a,a,a,b,a);
|
|
ANALYZE;
|
|
DROP TABLE IF EXISTS sqlite_stat4;
|
|
INSERT INTO sqlite_stat1 VALUES('t1','i1','30 30 30 2 2 2 2 2 2 2');
|
|
ANALYZE sqlite_master;
|
|
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT GROUP_CONCAT(a) FROM _m;
|
|
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_7393 AS SELECT b FROM t1;
|
|
DROP INDEX IF EXISTS t1;
|
|
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;
|
|
WITH cte AS (SELECT * FROM t1 WHERE NOT NOT (b = (SELECT MAX(b) FROM t1)) SELECT * FROM cte) ;
|
|
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;
|
|
COMMIT TRANSACTION;
|
|
INSERT INTO T VALUES (NULL, NULL, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
|
|
|
|
SELECT COUNT(*) FROM t1;
|
|
INSERT INTO t1 DEFAULT VALUES;
|
|
INSERT INTO T DEFAULT VALUES;
|
|
SELECT GROUP_CONCAT(a, '|') FROM t1;
|
|
SELECT LEAD(c) OVER (PARTITION BY c ORDER BY c ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) 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;
|
|
SELECT * FROM t1;
|
|
REINDEX T;
|
|
REINDEX;
|
|
ALTER TABLE t1 DROP COLUMN b;
|
|
REINDEX t1;
|
|
SELECT GROUP_CONCAT(b, '|') FROM t1;
|
|
ALTER TABLE t1 RENAME COLUMN b TO b_r9688;
|
|
SELECT * FROM T;
|
|
SELECT * FROM t1 NATURAL JOIN t1;
|
|
DELETE FROM t1 WHERE rowid = 30 RETURNING *;
|
|
WITH a AS (SELECT * FROM T), b AS (SELECT * FROM a), c AS (SELECT * FROM b), d AS (SELECT * FROM c) SELECT * FROM d;
|
|
DETACH DATABASE aux27;
|
|
CREATE TEMP VIEW IF NOT EXISTS v_t1_362 AS SELECT a FROM t1;
|
|
CREATE TRIGGER IF NOT EXISTS trg_t1_60 AFTER UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
|
INSERT INTO t1 VALUES (1, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
|
|
ALTER TABLE T ADD COLUMN extra_8526 TINYINT DEFAULT 0;
|
|
DROP TABLE IF EXISTS t1;
|
|
INSERT INTO T VALUES ('x', 'x', 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
|
|
ANALYZE;
|
|
|
|
INSERT OR ABORT INTO T VALUES ('x', 0, 'x');
|
|
CREATE TRIGGER IF NOT EXISTS trg_T_3588 BEFORE DELETE ON T FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
|
SELECT GROUP_CONCAT(b, '|') FROM t1;
|
|
SELECT COUNT(*) FILTER (WHERE a IS NOT NULL), SUM(rowid) FILTER (WHERE a > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(a) FILTER (WHERE a > 0 AND a < 100), COUNT(*) FILTER (WHERE typeof(a) = "text") FROM t1;
|
|
```
|
|
|
|
## Actual output
|
|
|
|
```sql
|
|
0
|
|
1073741823
|
|
```
|
|
|
|
## Expectation
|
|
|
|
```sql
|
|
0
|
|
4294967294
|
|
```
|
|
|
|
## Flag
|
|
|
|
```
|
|
|
|
```
|
|
|