---
This commit is contained in:
@@ -0,0 +1,158 @@
|
||||
## 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 2
|
||||
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 COUNT(*) FROM T;
|
||||
INSERT INTO T VALUES (NULL, NULL);
|
||||
SELECT * FROM T NATURAL JOIN T;
|
||||
CREATE VIEW IF NOT EXISTS v_T_4597 AS SELECT a FROM T;
|
||||
ALTER TABLE T RENAME TO T_r6678;
|
||||
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;
|
||||
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 COUNT(*) FROM T;
|
||||
INSERT INTO T VALUES (NULL, NULL);
|
||||
SELECT * FROM T NATURAL JOIN T;
|
||||
CREATE VIEW IF NOT EXISTS v_T_4597 AS SELECT a FROM T;
|
||||
ALTER TABLE T RENAME TO T_r6678;
|
||||
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;
|
||||
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 COUNT(*) FROM T;
|
||||
INSERT INTO T VALUES (NULL, NULL);
|
||||
SELECT * FROM T NATURAL JOIN T;
|
||||
CREATE VIEW IF NOT EXISTS v_T_4597 AS SELECT a FROM T;
|
||||
ALTER TABLE T RENAME TO T_r6678;
|
||||
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;
|
||||
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 COUNT(*) FROM T;
|
||||
INSERT INTO T VALUES (NULL, NULL);
|
||||
SELECT * FROM T NATURAL JOIN T;
|
||||
CREATE VIEW IF NOT EXISTS v_T_4597 AS SELECT a FROM T;
|
||||
ALTER TABLE T RENAME TO T_r6678;
|
||||
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;
|
||||
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 COUNT(*) FROM T;
|
||||
INSERT INTO T VALUES (NULL, NULL);
|
||||
SELECT * FROM T NATURAL JOIN T;
|
||||
CREATE VIEW IF NOT EXISTS v_T_4597 AS SELECT a FROM T;
|
||||
ALTER TABLE T RENAME TO T_r6678;
|
||||
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;
|
||||
|
||||
ALTER TABLE T RENAME COLUMN A TO A_r8221;
|
||||
PRAGMA wal_checkpoint('TRUNCATE');
|
||||
INSERT INTO T VALUES (NULL, 1, NULL) ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
|
||||
ALTER TABLE T RENAME TO T_r7965;
|
||||
DROP INDEX IF EXISTS T;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
3.39.0 2022-05-10 23:28:12 764b71267e0b31ff7eaf2a0def7526a1a02dce4d5b456dea060d97ed342ealt1
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
3.51.1 2025-11-28 17:28:25 281fc0e9afc38674b9b0991943b9e9d1e64c6cbdb133d35f6f5c87ff6af38a88 (64-bit)
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
-version
|
||||
```
|
||||
|
||||
@@ -0,0 +1,983 @@
|
||||
## 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 = FALSE;
|
||||
ATTACH DATABASE (':memory:' || '') AS aux15;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
PRAGMA foreign_keys;
|
||||
PRAGMA automatic_index;
|
||||
PRAGMA case_sensitive_like = TRUE;
|
||||
PRAGMA auto_vacuum = FULL;
|
||||
.dbconfig fk off
|
||||
PRAGMA foreign_keys=ON;
|
||||
CREATE TABLE t1(x INTEGER PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES(log(100));
|
||||
INSERT INTO t1 VALUES(101);
|
||||
CREATE TABLE main.t2(y INTEGER REFERENCES t1 (x));
|
||||
INSERT INTO t2 VALUES(100);
|
||||
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 +c > 0;
|
||||
INSERT INTO t2 VALUES(101);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT 1, x FROM _m;
|
||||
SELECT 2, y FROM t2;
|
||||
DELETE FROM t2 WHERE 0;
|
||||
ALTER TABLE t1 RENAME TO t1_r345;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t2_4434 BEFORE INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
COMMIT TRANSACTION;
|
||||
DETACH DATABASE aux15;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
ATTACH DATABASE (':memory:' || '') AS aux15;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
PRAGMA foreign_keys;
|
||||
PRAGMA automatic_index;
|
||||
PRAGMA case_sensitive_like = TRUE;
|
||||
PRAGMA auto_vacuum = FULL;
|
||||
.dbconfig fk off
|
||||
PRAGMA foreign_keys=ON;
|
||||
CREATE TABLE t1(x INTEGER PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES(log(100));
|
||||
INSERT INTO t1 VALUES(101);
|
||||
CREATE TABLE main.t2(y INTEGER REFERENCES t1 (x));
|
||||
INSERT INTO t2 VALUES(100);
|
||||
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 +c > 0;
|
||||
INSERT INTO t2 VALUES(101);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT 1, x FROM _m;
|
||||
SELECT 2, y FROM t2;
|
||||
DELETE FROM t2 WHERE 0;
|
||||
ALTER TABLE t1 RENAME TO t1_r345;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t2_4434 BEFORE INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
COMMIT TRANSACTION;
|
||||
DETACH DATABASE aux15;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
ATTACH DATABASE (':memory:' || '') AS aux15;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
PRAGMA foreign_keys;
|
||||
PRAGMA automatic_index;
|
||||
PRAGMA case_sensitive_like = TRUE;
|
||||
PRAGMA auto_vacuum = FULL;
|
||||
.dbconfig fk off
|
||||
PRAGMA foreign_keys=ON;
|
||||
CREATE TABLE t1(x INTEGER PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES(log(100));
|
||||
INSERT INTO t1 VALUES(101);
|
||||
CREATE TABLE main.t2(y INTEGER REFERENCES t1 (x));
|
||||
INSERT INTO t2 VALUES(100);
|
||||
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 +c > 0;
|
||||
INSERT INTO t2 VALUES(101);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT 1, x FROM _m;
|
||||
SELECT 2, y FROM t2;
|
||||
DELETE FROM t2 WHERE 0;
|
||||
ALTER TABLE t1 RENAME TO t1_r345;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t2_4434 BEFORE INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
COMMIT TRANSACTION;
|
||||
DETACH DATABASE aux15;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
ATTACH DATABASE (':memory:' || '') AS aux15;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
PRAGMA foreign_keys;
|
||||
PRAGMA automatic_index;
|
||||
PRAGMA case_sensitive_like = TRUE;
|
||||
PRAGMA auto_vacuum = FULL;
|
||||
.dbconfig fk off
|
||||
PRAGMA foreign_keys=ON;
|
||||
CREATE TABLE t1(x INTEGER PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES(log(100));
|
||||
INSERT INTO t1 VALUES(101);
|
||||
CREATE TABLE main.t2(y INTEGER REFERENCES t1 (x));
|
||||
INSERT INTO t2 VALUES(100);
|
||||
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 +c > 0;
|
||||
INSERT INTO t2 VALUES(101);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT 1, x FROM _m;
|
||||
SELECT 2, y FROM t2;
|
||||
DELETE FROM t2 WHERE 0;
|
||||
ALTER TABLE t1 RENAME TO t1_r345;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t2_4434 BEFORE INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
COMMIT TRANSACTION;
|
||||
DETACH DATABASE aux15;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
ATTACH DATABASE (':memory:' || '') AS aux15;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
PRAGMA foreign_keys;
|
||||
PRAGMA automatic_index;
|
||||
PRAGMA case_sensitive_like = TRUE;
|
||||
PRAGMA auto_vacuum = FULL;
|
||||
.dbconfig fk off
|
||||
PRAGMA foreign_keys=ON;
|
||||
CREATE TABLE t1(x INTEGER PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES(log(100));
|
||||
INSERT INTO t1 VALUES(101);
|
||||
CREATE TABLE main.t2(y INTEGER REFERENCES t1 (x));
|
||||
INSERT INTO t2 VALUES(100);
|
||||
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 +c > 0;
|
||||
INSERT INTO t2 VALUES(101);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT 1, x FROM _m;
|
||||
SELECT 2, y FROM t2;
|
||||
DELETE FROM t2 WHERE 0;
|
||||
ALTER TABLE t1 RENAME TO t1_r345;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t2_4434 BEFORE INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
COMMIT TRANSACTION;
|
||||
DETACH DATABASE aux15;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
ATTACH DATABASE (':memory:' || '') AS aux15;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
PRAGMA foreign_keys;
|
||||
PRAGMA automatic_index;
|
||||
PRAGMA case_sensitive_like = TRUE;
|
||||
PRAGMA auto_vacuum = FULL;
|
||||
.dbconfig fk off
|
||||
PRAGMA foreign_keys=ON;
|
||||
CREATE TABLE t1(x INTEGER PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES(log(100));
|
||||
INSERT INTO t1 VALUES(101);
|
||||
CREATE TABLE main.t2(y INTEGER REFERENCES t1 (x));
|
||||
INSERT INTO t2 VALUES(100);
|
||||
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 +c > 0;
|
||||
INSERT INTO t2 VALUES(101);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT 1, x FROM _m;
|
||||
SELECT 2, y FROM t2;
|
||||
DELETE FROM t2 WHERE 0;
|
||||
ALTER TABLE t1 RENAME TO t1_r345;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t2_4434 BEFORE INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
COMMIT TRANSACTION;
|
||||
DETACH DATABASE aux15;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
ATTACH DATABASE (':memory:' || '') AS aux15;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
PRAGMA foreign_keys;
|
||||
PRAGMA automatic_index;
|
||||
PRAGMA case_sensitive_like = TRUE;
|
||||
PRAGMA auto_vacuum = FULL;
|
||||
.dbconfig fk off
|
||||
PRAGMA foreign_keys=ON;
|
||||
CREATE TABLE t1(x INTEGER PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES(log(100));
|
||||
INSERT INTO t1 VALUES(101);
|
||||
CREATE TABLE main.t2(y INTEGER REFERENCES t1 (x));
|
||||
INSERT INTO t2 VALUES(100);
|
||||
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 +c > 0;
|
||||
INSERT INTO t2 VALUES(101);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT 1, x FROM _m;
|
||||
SELECT 2, y FROM t2;
|
||||
DELETE FROM t2 WHERE 0;
|
||||
ALTER TABLE t1 RENAME TO t1_r345;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t2_4434 BEFORE INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
COMMIT TRANSACTION;
|
||||
DETACH DATABASE aux15;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
ATTACH DATABASE (':memory:' || '') AS aux15;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
PRAGMA foreign_keys;
|
||||
PRAGMA automatic_index;
|
||||
PRAGMA case_sensitive_like = TRUE;
|
||||
PRAGMA auto_vacuum = FULL;
|
||||
.dbconfig fk off
|
||||
PRAGMA foreign_keys=ON;
|
||||
CREATE TABLE t1(x INTEGER PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES(log(100));
|
||||
INSERT INTO t1 VALUES(101);
|
||||
CREATE TABLE main.t2(y INTEGER REFERENCES t1 (x));
|
||||
INSERT INTO t2 VALUES(100);
|
||||
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 +c > 0;
|
||||
INSERT INTO t2 VALUES(101);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT 1, x FROM _m;
|
||||
SELECT 2, y FROM t2;
|
||||
DELETE FROM t2 WHERE 0;
|
||||
ALTER TABLE t1 RENAME TO t1_r345;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t2_4434 BEFORE INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
COMMIT TRANSACTION;
|
||||
DETACH DATABASE aux15;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
ATTACH DATABASE (':memory:' || '') AS aux15;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
PRAGMA foreign_keys;
|
||||
PRAGMA automatic_index;
|
||||
PRAGMA case_sensitive_like = TRUE;
|
||||
PRAGMA auto_vacuum = FULL;
|
||||
.dbconfig fk off
|
||||
PRAGMA foreign_keys=ON;
|
||||
CREATE TABLE t1(x INTEGER PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES(log(100));
|
||||
INSERT INTO t1 VALUES(101);
|
||||
CREATE TABLE main.t2(y INTEGER REFERENCES t1 (x));
|
||||
INSERT INTO t2 VALUES(100);
|
||||
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 +c > 0;
|
||||
INSERT INTO t2 VALUES(101);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT 1, x FROM _m;
|
||||
SELECT 2, y FROM t2;
|
||||
DELETE FROM t2 WHERE 0;
|
||||
ALTER TABLE t1 RENAME TO t1_r345;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t2_4434 BEFORE INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
COMMIT TRANSACTION;
|
||||
DETACH DATABASE aux15;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
ATTACH DATABASE (':memory:' || '') AS aux15;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
PRAGMA foreign_keys;
|
||||
PRAGMA automatic_index;
|
||||
PRAGMA case_sensitive_like = TRUE;
|
||||
PRAGMA auto_vacuum = FULL;
|
||||
.dbconfig fk off
|
||||
PRAGMA foreign_keys=ON;
|
||||
CREATE TABLE t1(x INTEGER PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES(log(100));
|
||||
INSERT INTO t1 VALUES(101);
|
||||
CREATE TABLE main.t2(y INTEGER REFERENCES t1 (x));
|
||||
INSERT INTO t2 VALUES(100);
|
||||
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 +c > 0;
|
||||
INSERT INTO t2 VALUES(101);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT 1, x FROM _m;
|
||||
SELECT 2, y FROM t2;
|
||||
DELETE FROM t2 WHERE 0;
|
||||
ALTER TABLE t1 RENAME TO t1_r345;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t2_4434 BEFORE INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
COMMIT TRANSACTION;
|
||||
DETACH DATABASE aux15;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
SELECT GROUP_CONCAT(b, b) OVER (ORDER BY b GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T;
|
||||
UPDATE T SET a = json_object('k', a) WHERE 1 RETURNING *;
|
||||
PRAGMA vdbe_trace = FALSE;
|
||||
ATTACH DATABASE (':memory:' || '') AS aux15;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
PRAGMA foreign_keys;
|
||||
PRAGMA automatic_index;
|
||||
PRAGMA case_sensitive_like = TRUE;
|
||||
PRAGMA auto_vacuum = FULL;
|
||||
.dbconfig fk off
|
||||
PRAGMA foreign_keys=ON;
|
||||
CREATE TABLE t1(x INTEGER PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES(log(100));
|
||||
INSERT INTO t1 VALUES(101);
|
||||
CREATE TABLE main.t2(y INTEGER REFERENCES t1 (x));
|
||||
INSERT INTO t2 VALUES(100);
|
||||
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 +c > 0;
|
||||
INSERT INTO t2 VALUES(101);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT 1, x FROM _m;
|
||||
SELECT 2, y FROM t2;
|
||||
DELETE FROM t2 WHERE 0;
|
||||
ALTER TABLE t1 RENAME TO t1_r345;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t2_4434 BEFORE INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
COMMIT TRANSACTION;
|
||||
DETACH DATABASE aux15;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
ATTACH DATABASE (':memory:' || '') AS aux15;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
PRAGMA foreign_keys;
|
||||
PRAGMA automatic_index;
|
||||
PRAGMA case_sensitive_like = TRUE;
|
||||
PRAGMA auto_vacuum = FULL;
|
||||
.dbconfig fk off
|
||||
PRAGMA foreign_keys=ON;
|
||||
CREATE TABLE t1(x INTEGER PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES(log(100));
|
||||
INSERT INTO t1 VALUES(101);
|
||||
CREATE TABLE main.t2(y INTEGER REFERENCES t1 (x));
|
||||
INSERT INTO t2 VALUES(100);
|
||||
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 +c > 0;
|
||||
INSERT INTO t2 VALUES(101);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT 1, x FROM _m;
|
||||
SELECT 2, y FROM t2;
|
||||
DELETE FROM t2 WHERE 0;
|
||||
ALTER TABLE t1 RENAME TO t1_r345;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t2_4434 BEFORE INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
COMMIT TRANSACTION;
|
||||
DETACH DATABASE aux15;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
ATTACH DATABASE (':memory:' || '') AS aux15;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
PRAGMA foreign_keys;
|
||||
PRAGMA automatic_index;
|
||||
PRAGMA case_sensitive_like = TRUE;
|
||||
PRAGMA auto_vacuum = FULL;
|
||||
.dbconfig fk off
|
||||
PRAGMA foreign_keys=ON;
|
||||
CREATE TABLE t1(x INTEGER PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES(log(100));
|
||||
INSERT INTO t1 VALUES(101);
|
||||
CREATE TABLE main.t2(y INTEGER REFERENCES t1 (x));
|
||||
INSERT INTO t2 VALUES(100);
|
||||
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 +c > 0;
|
||||
INSERT INTO t2 VALUES(101);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT 1, x FROM _m;
|
||||
SELECT 2, y FROM t2;
|
||||
DELETE FROM t2 WHERE 0;
|
||||
ALTER TABLE t1 RENAME TO t1_r345;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t2_4434 BEFORE INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
COMMIT TRANSACTION;
|
||||
DETACH DATABASE aux15;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
ATTACH DATABASE (':memory:' || '') AS aux15;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
PRAGMA foreign_keys;
|
||||
PRAGMA automatic_index;
|
||||
PRAGMA case_sensitive_like = TRUE;
|
||||
PRAGMA auto_vacuum = FULL;
|
||||
.dbconfig fk off
|
||||
PRAGMA foreign_keys=ON;
|
||||
CREATE TABLE t1(x INTEGER PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES(log(100));
|
||||
INSERT INTO t1 VALUES(101);
|
||||
CREATE TABLE main.t2(y INTEGER REFERENCES t1 (x));
|
||||
INSERT INTO t2 VALUES(100);
|
||||
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 +c > 0;
|
||||
INSERT INTO t2 VALUES(101);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT 1, x FROM _m;
|
||||
SELECT 2, y FROM t2;
|
||||
DELETE FROM t2 WHERE 0;
|
||||
ALTER TABLE t1 RENAME TO t1_r345;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t2_4434 BEFORE INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
COMMIT TRANSACTION;
|
||||
DETACH DATABASE aux15;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
ATTACH DATABASE (':memory:' || '') AS aux15;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
PRAGMA foreign_keys;
|
||||
PRAGMA automatic_index;
|
||||
PRAGMA case_sensitive_like = TRUE;
|
||||
PRAGMA auto_vacuum = FULL;
|
||||
.dbconfig fk off
|
||||
PRAGMA foreign_keys=ON;
|
||||
CREATE TABLE t1(x INTEGER PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES(log(100));
|
||||
INSERT INTO t1 VALUES(101);
|
||||
CREATE TABLE main.t2(y INTEGER REFERENCES t1 (x));
|
||||
INSERT INTO t2 VALUES(100);
|
||||
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 +c > 0;
|
||||
INSERT INTO t2 VALUES(101);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT 1, x FROM _m;
|
||||
SELECT 2, y FROM t2;
|
||||
DELETE FROM t2 WHERE 0;
|
||||
ALTER TABLE t1 RENAME TO t1_r345;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t2_4434 BEFORE INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
COMMIT TRANSACTION;
|
||||
DETACH DATABASE aux15;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
ATTACH DATABASE (':memory:' || '') AS aux15;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
PRAGMA foreign_keys;
|
||||
PRAGMA automatic_index;
|
||||
PRAGMA case_sensitive_like = TRUE;
|
||||
PRAGMA auto_vacuum = FULL;
|
||||
.dbconfig fk off
|
||||
PRAGMA foreign_keys=ON;
|
||||
CREATE TABLE t1(x INTEGER PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES(log(100));
|
||||
INSERT INTO t1 VALUES(101);
|
||||
CREATE TABLE main.t2(y INTEGER REFERENCES t1 (x));
|
||||
INSERT INTO t2 VALUES(100);
|
||||
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 +c > 0;
|
||||
INSERT INTO t2 VALUES(101);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT 1, x FROM _m;
|
||||
SELECT 2, y FROM t2;
|
||||
DELETE FROM t2 WHERE 0;
|
||||
ALTER TABLE t1 RENAME TO t1_r345;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t2_4434 BEFORE INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
COMMIT TRANSACTION;
|
||||
DETACH DATABASE aux15;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
ATTACH DATABASE (':memory:' || '') AS aux15;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
PRAGMA foreign_keys;
|
||||
PRAGMA automatic_index;
|
||||
PRAGMA case_sensitive_like = TRUE;
|
||||
PRAGMA auto_vacuum = FULL;
|
||||
.dbconfig fk off
|
||||
PRAGMA foreign_keys=ON;
|
||||
CREATE TABLE t1(x INTEGER PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES(log(100));
|
||||
INSERT INTO t1 VALUES(101);
|
||||
CREATE TABLE main.t2(y INTEGER REFERENCES t1 (x));
|
||||
INSERT INTO t2 VALUES(100);
|
||||
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 +c > 0;
|
||||
INSERT INTO t2 VALUES(101);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT 1, x FROM _m;
|
||||
SELECT 2, y FROM t2;
|
||||
DELETE FROM t2 WHERE 0;
|
||||
ALTER TABLE t1 RENAME TO t1_r345;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t2_4434 BEFORE INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
COMMIT TRANSACTION;
|
||||
DETACH DATABASE aux15;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
ATTACH DATABASE (':memory:' || '') AS aux15;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
PRAGMA foreign_keys;
|
||||
PRAGMA automatic_index;
|
||||
PRAGMA case_sensitive_like = TRUE;
|
||||
PRAGMA auto_vacuum = FULL;
|
||||
.dbconfig fk off
|
||||
PRAGMA foreign_keys=ON;
|
||||
CREATE TABLE t1(x INTEGER PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES(log(100));
|
||||
INSERT INTO t1 VALUES(101);
|
||||
CREATE TABLE main.t2(y INTEGER REFERENCES t1 (x));
|
||||
INSERT INTO t2 VALUES(100);
|
||||
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 +c > 0;
|
||||
INSERT INTO t2 VALUES(101);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT 1, x FROM _m;
|
||||
SELECT 2, y FROM t2;
|
||||
DELETE FROM t2 WHERE 0;
|
||||
ALTER TABLE t1 RENAME TO t1_r345;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t2_4434 BEFORE INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
COMMIT TRANSACTION;
|
||||
DETACH DATABASE aux15;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
ATTACH DATABASE (':memory:' || '') AS aux15;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
PRAGMA foreign_keys;
|
||||
PRAGMA automatic_index;
|
||||
PRAGMA case_sensitive_like = TRUE;
|
||||
PRAGMA auto_vacuum = FULL;
|
||||
.dbconfig fk off
|
||||
PRAGMA foreign_keys=ON;
|
||||
CREATE TABLE t1(x INTEGER PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES(log(100));
|
||||
INSERT INTO t1 VALUES(101);
|
||||
CREATE TABLE main.t2(y INTEGER REFERENCES t1 (x));
|
||||
INSERT INTO t2 VALUES(100);
|
||||
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 +c > 0;
|
||||
INSERT INTO t2 VALUES(101);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT 1, x FROM _m;
|
||||
SELECT 2, y FROM t2;
|
||||
DELETE FROM t2 WHERE 0;
|
||||
ALTER TABLE t1 RENAME TO t1_r345;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t2_4434 BEFORE INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
COMMIT TRANSACTION;
|
||||
DETACH DATABASE aux15;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
ATTACH DATABASE (':memory:' || '') AS aux15;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
PRAGMA foreign_keys;
|
||||
PRAGMA automatic_index;
|
||||
PRAGMA case_sensitive_like = TRUE;
|
||||
PRAGMA auto_vacuum = FULL;
|
||||
.dbconfig fk off
|
||||
PRAGMA foreign_keys=ON;
|
||||
CREATE TABLE t1(x INTEGER PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES(log(100));
|
||||
INSERT INTO t1 VALUES(101);
|
||||
CREATE TABLE main.t2(y INTEGER REFERENCES t1 (x));
|
||||
INSERT INTO t2 VALUES(100);
|
||||
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 +c > 0;
|
||||
INSERT INTO t2 VALUES(101);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT 1, x FROM _m;
|
||||
SELECT 2, y FROM t2;
|
||||
DELETE FROM t2 WHERE 0;
|
||||
ALTER TABLE t1 RENAME TO t1_r345;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t2_4434 BEFORE INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
COMMIT TRANSACTION;
|
||||
DETACH DATABASE aux15;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
SELECT GROUP_CONCAT(b, b) OVER (ORDER BY b GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T;
|
||||
UPDATE T SET a = json_object('k', a) WHERE 1 RETURNING *;
|
||||
PRAGMA vdbe_trace = FALSE;
|
||||
ATTACH DATABASE (':memory:' || '') AS aux15;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
PRAGMA foreign_keys;
|
||||
PRAGMA automatic_index;
|
||||
PRAGMA case_sensitive_like = TRUE;
|
||||
PRAGMA auto_vacuum = FULL;
|
||||
.dbconfig fk off
|
||||
PRAGMA foreign_keys=ON;
|
||||
CREATE TABLE t1(x INTEGER PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES(log(100));
|
||||
INSERT INTO t1 VALUES(101);
|
||||
CREATE TABLE main.t2(y INTEGER REFERENCES t1 (x));
|
||||
INSERT INTO t2 VALUES(100);
|
||||
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 +c > 0;
|
||||
INSERT INTO t2 VALUES(101);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT 1, x FROM _m;
|
||||
SELECT 2, y FROM t2;
|
||||
DELETE FROM t2 WHERE 0;
|
||||
ALTER TABLE t1 RENAME TO t1_r345;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t2_4434 BEFORE INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
COMMIT TRANSACTION;
|
||||
DETACH DATABASE aux15;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
ATTACH DATABASE (':memory:' || '') AS aux15;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
PRAGMA foreign_keys;
|
||||
PRAGMA automatic_index;
|
||||
PRAGMA case_sensitive_like = TRUE;
|
||||
PRAGMA auto_vacuum = FULL;
|
||||
.dbconfig fk off
|
||||
PRAGMA foreign_keys=ON;
|
||||
CREATE TABLE t1(x INTEGER PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES(log(100));
|
||||
INSERT INTO t1 VALUES(101);
|
||||
CREATE TABLE main.t2(y INTEGER REFERENCES t1 (x));
|
||||
INSERT INTO t2 VALUES(100);
|
||||
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 +c > 0;
|
||||
INSERT INTO t2 VALUES(101);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT 1, x FROM _m;
|
||||
SELECT 2, y FROM t2;
|
||||
DELETE FROM t2 WHERE 0;
|
||||
ALTER TABLE t1 RENAME TO t1_r345;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t2_4434 BEFORE INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
COMMIT TRANSACTION;
|
||||
DETACH DATABASE aux15;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
ATTACH DATABASE (':memory:' || '') AS aux15;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
PRAGMA foreign_keys;
|
||||
PRAGMA automatic_index;
|
||||
PRAGMA case_sensitive_like = TRUE;
|
||||
PRAGMA auto_vacuum = FULL;
|
||||
.dbconfig fk off
|
||||
PRAGMA foreign_keys=ON;
|
||||
CREATE TABLE t1(x INTEGER PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES(log(100));
|
||||
INSERT INTO t1 VALUES(101);
|
||||
CREATE TABLE main.t2(y INTEGER REFERENCES t1 (x));
|
||||
INSERT INTO t2 VALUES(100);
|
||||
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 +c > 0;
|
||||
INSERT INTO t2 VALUES(101);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT 1, x FROM _m;
|
||||
SELECT 2, y FROM t2;
|
||||
DELETE FROM t2 WHERE 0;
|
||||
ALTER TABLE t1 RENAME TO t1_r345;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t2_4434 BEFORE INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
COMMIT TRANSACTION;
|
||||
DETACH DATABASE aux15;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
ATTACH DATABASE (':memory:' || '') AS aux15;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
PRAGMA foreign_keys;
|
||||
PRAGMA automatic_index;
|
||||
PRAGMA case_sensitive_like = TRUE;
|
||||
PRAGMA auto_vacuum = FULL;
|
||||
.dbconfig fk off
|
||||
PRAGMA foreign_keys=ON;
|
||||
CREATE TABLE t1(x INTEGER PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES(log(100));
|
||||
INSERT INTO t1 VALUES(101);
|
||||
CREATE TABLE main.t2(y INTEGER REFERENCES t1 (x));
|
||||
INSERT INTO t2 VALUES(100);
|
||||
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 +c > 0;
|
||||
INSERT INTO t2 VALUES(101);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT 1, x FROM _m;
|
||||
SELECT 2, y FROM t2;
|
||||
DELETE FROM t2 WHERE 0;
|
||||
ALTER TABLE t1 RENAME TO t1_r345;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t2_4434 BEFORE INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
COMMIT TRANSACTION;
|
||||
DETACH DATABASE aux15;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
ATTACH DATABASE (':memory:' || '') AS aux15;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
PRAGMA foreign_keys;
|
||||
PRAGMA automatic_index;
|
||||
PRAGMA case_sensitive_like = TRUE;
|
||||
PRAGMA auto_vacuum = FULL;
|
||||
.dbconfig fk off
|
||||
PRAGMA foreign_keys=ON;
|
||||
CREATE TABLE t1(x INTEGER PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES(log(100));
|
||||
INSERT INTO t1 VALUES(101);
|
||||
CREATE TABLE main.t2(y INTEGER REFERENCES t1 (x));
|
||||
INSERT INTO t2 VALUES(100);
|
||||
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 +c > 0;
|
||||
INSERT INTO t2 VALUES(101);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT 1, x FROM _m;
|
||||
SELECT 2, y FROM t2;
|
||||
DELETE FROM t2 WHERE 0;
|
||||
ALTER TABLE t1 RENAME TO t1_r345;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t2_4434 BEFORE INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
COMMIT TRANSACTION;
|
||||
DETACH DATABASE aux15;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
ATTACH DATABASE (':memory:' || '') AS aux15;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
PRAGMA foreign_keys;
|
||||
PRAGMA automatic_index;
|
||||
PRAGMA case_sensitive_like = TRUE;
|
||||
PRAGMA auto_vacuum = FULL;
|
||||
.dbconfig fk off
|
||||
PRAGMA foreign_keys=ON;
|
||||
CREATE TABLE t1(x INTEGER PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES(log(100));
|
||||
INSERT INTO t1 VALUES(101);
|
||||
CREATE TABLE main.t2(y INTEGER REFERENCES t1 (x));
|
||||
INSERT INTO t2 VALUES(100);
|
||||
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 +c > 0;
|
||||
INSERT INTO t2 VALUES(101);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT 1, x FROM _m;
|
||||
SELECT 2, y FROM t2;
|
||||
DELETE FROM t2 WHERE 0;
|
||||
ALTER TABLE t1 RENAME TO t1_r345;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t2_4434 BEFORE INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
COMMIT TRANSACTION;
|
||||
DETACH DATABASE aux15;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
ATTACH DATABASE (':memory:' || '') AS aux15;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
PRAGMA foreign_keys;
|
||||
PRAGMA automatic_index;
|
||||
PRAGMA case_sensitive_like = TRUE;
|
||||
PRAGMA auto_vacuum = FULL;
|
||||
.dbconfig fk off
|
||||
PRAGMA foreign_keys=ON;
|
||||
CREATE TABLE t1(x INTEGER PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES(log(100));
|
||||
INSERT INTO t1 VALUES(101);
|
||||
CREATE TABLE main.t2(y INTEGER REFERENCES t1 (x));
|
||||
INSERT INTO t2 VALUES(100);
|
||||
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 +c > 0;
|
||||
INSERT INTO t2 VALUES(101);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT 1, x FROM _m;
|
||||
SELECT 2, y FROM t2;
|
||||
DELETE FROM t2 WHERE 0;
|
||||
ALTER TABLE t1 RENAME TO t1_r345;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t2_4434 BEFORE INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
COMMIT TRANSACTION;
|
||||
DETACH DATABASE aux15;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
ATTACH DATABASE (':memory:' || '') AS aux15;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
PRAGMA foreign_keys;
|
||||
PRAGMA automatic_index;
|
||||
PRAGMA case_sensitive_like = TRUE;
|
||||
PRAGMA auto_vacuum = FULL;
|
||||
.dbconfig fk off
|
||||
PRAGMA foreign_keys=ON;
|
||||
CREATE TABLE t1(x INTEGER PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES(log(100));
|
||||
INSERT INTO t1 VALUES(101);
|
||||
CREATE TABLE main.t2(y INTEGER REFERENCES t1 (x));
|
||||
INSERT INTO t2 VALUES(100);
|
||||
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 +c > 0;
|
||||
INSERT INTO t2 VALUES(101);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT 1, x FROM _m;
|
||||
SELECT 2, y FROM t2;
|
||||
DELETE FROM t2 WHERE 0;
|
||||
ALTER TABLE t1 RENAME TO t1_r345;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t2_4434 BEFORE INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
COMMIT TRANSACTION;
|
||||
DETACH DATABASE aux15;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
ATTACH DATABASE (':memory:' || '') AS aux15;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
PRAGMA foreign_keys;
|
||||
PRAGMA automatic_index;
|
||||
PRAGMA case_sensitive_like = TRUE;
|
||||
PRAGMA auto_vacuum = FULL;
|
||||
.dbconfig fk off
|
||||
PRAGMA foreign_keys=ON;
|
||||
CREATE TABLE t1(x INTEGER PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES(log(100));
|
||||
INSERT INTO t1 VALUES(101);
|
||||
CREATE TABLE main.t2(y INTEGER REFERENCES t1 (x));
|
||||
INSERT INTO t2 VALUES(100);
|
||||
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 +c > 0;
|
||||
INSERT INTO t2 VALUES(101);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT 1, x FROM _m;
|
||||
SELECT 2, y FROM t2;
|
||||
DELETE FROM t2 WHERE 0;
|
||||
ALTER TABLE t1 RENAME TO t1_r345;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t2_4434 BEFORE INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
COMMIT TRANSACTION;
|
||||
DETACH DATABASE aux15;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
ATTACH DATABASE (':memory:' || '') AS aux15;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
PRAGMA foreign_keys;
|
||||
PRAGMA automatic_index;
|
||||
PRAGMA case_sensitive_like = TRUE;
|
||||
PRAGMA auto_vacuum = FULL;
|
||||
.dbconfig fk off
|
||||
PRAGMA foreign_keys=ON;
|
||||
CREATE TABLE t1(x INTEGER PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES(log(100));
|
||||
INSERT INTO t1 VALUES(101);
|
||||
CREATE TABLE main.t2(y INTEGER REFERENCES t1 (x));
|
||||
INSERT INTO t2 VALUES(100);
|
||||
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 +c > 0;
|
||||
INSERT INTO t2 VALUES(101);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT 1, x FROM _m;
|
||||
SELECT 2, y FROM t2;
|
||||
DELETE FROM t2 WHERE 0;
|
||||
ALTER TABLE t1 RENAME TO t1_r345;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t2_4434 BEFORE INSERT ON t2 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
COMMIT TRANSACTION;
|
||||
DETACH DATABASE aux15;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
SELECT GROUP_CONCAT(b, b) OVER (ORDER BY b GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T;
|
||||
UPDATE T SET a = json_object('k', a) WHERE 1 RETURNING *;
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_t1_3395 ON t1(lower(x)) WHERE x IS NOT 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,35 @@
|
||||
## 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-16le';
|
||||
CREATE TABLE [t0](c0);
|
||||
INSERT INTO t0(c0) VALUES (NULL);
|
||||
CREATE INDEX i0 ON t0(json_remove(unixepoch(unistr_quote('Hello')), '$')) WHERE NOT c0 NOT NULL;
|
||||
SELECT 1 FROM /* {"a":1,"b":[1,2,3]} */ t0 WHERE (t0.c0 IS FALSE) IS FALSE;
|
||||
SELECT 1 FROM t0 WHERE (t0.c0 IS FALSE) BETWEEN FALSE AND TRUE;
|
||||
|
||||
ALTER TABLE t0 RENAME TO t0_r5716;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
1
|
||||
1
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
|
||||
```
|
||||
|
||||
## 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
|
||||
SAVEPOINT sp1623;
|
||||
.timeout
|
||||
((PRAGMA)) synchronous = '2';
|
||||
PRAGMA count_changes;
|
||||
PRAGMA vdbe_listing = CAST(0 AS NATIVE CHARACTER(70)NVARCHAR(100));
|
||||
.open
|
||||
CREATE TABLE t1(x INTEGER PRIMARY KEY, y, z);
|
||||
CREATE TABLE t2(a, b);
|
||||
CREATE VIEW agg2 AS SELECT a, sum(b) AS m FROM t2 GROUP BY a;
|
||||
SELECT t1.z, agg2.m FROM t1 JOIN agg2 ON t1.y=agg2.m WHERE t1.x IN (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);
|
||||
|
||||
SELECT PERCENT_RANK() OVER (ORDER BY a ROWS BETWEEN 2 PRECEDING OR 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t2;
|
||||
INSERT INTO t920 VALUES (1) ON CONFLICT(x) DO UPDATE SET x = excluded.x;
|
||||
ALTER TABLE t1 RENAME TO t1_r6222;
|
||||
SELECT * FROM t1 CROSS JOIN t1;
|
||||
DELETE FROM t1 WHERE x IS NULL RETURNING *;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp1623;
|
||||
RELEASE SAVEPOINT sp1623;
|
||||
SELECT AVG(y) FILTER (WHERE y != 0) OVER (ORDER BY y ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM t1;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
Usage: /home/test/sqlite3-src/build/sqlite3 [OPTIONS] FILENAME [SQL]
|
||||
FILENAME is the name of an SQLite database. A new database is created
|
||||
if the file does not previously exist.
|
||||
OPTIONS include:
|
||||
-append append the database to the end of the file
|
||||
-ascii set output mode to 'ascii'
|
||||
-bail stop after hitting an error
|
||||
-batch force batch I/O
|
||||
-box set output mode to 'box'
|
||||
-column set output mode to 'column'
|
||||
-cmd COMMAND run "COMMAND" before reading stdin
|
||||
-csv set output mode to 'csv'
|
||||
-deserialize open the database using sqlite3_deserialize()
|
||||
-echo print commands before execution
|
||||
-init FILENAME read/process named file
|
||||
-[no]header turn headers on or off
|
||||
-help show this message
|
||||
-html set output mode to HTML
|
||||
-interactive force interactive I/O
|
||||
-json set output mode to 'json'
|
||||
-line set output mode to 'line'
|
||||
-list set output mode to 'list'
|
||||
-lookaside SIZE N use N entries of SZ bytes for lookaside memory
|
||||
-markdown set output mode to 'markdown'
|
||||
-maxsize N maximum size for a --deserialize database
|
||||
-memtrace trace all memory allocations and deallocations
|
||||
-mmap N default mmap size set to N
|
||||
-newline SEP set output row separator. Default: '\n'
|
||||
-nofollow refuse to open symbolic links to database files
|
||||
-nonce STRING set the safe-mode escape nonce
|
||||
-nullvalue TEXT set text string for NULL values. Default ''
|
||||
-pagecache SIZE N use N slots of SZ bytes each for page cache memory
|
||||
-quote set output mode to 'quote'
|
||||
-readonly open the database read-only
|
||||
-safe enable safe-mode
|
||||
-separator SEP set output column separator. Default: '|'
|
||||
-stats print memory stats before each finalize
|
||||
-table set output mode to 'table'
|
||||
-tabs set output mode to 'tabs'
|
||||
-version show SQLite version
|
||||
-vfs NAME use NAME as the default VFS
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
-help
|
||||
```
|
||||
|
||||
@@ -0,0 +1,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
|
||||
PRAGMA trusted_schema = NO;
|
||||
ATTACH DATABASE ':memory:' AS aux77;
|
||||
CREATE TABLE T (
|
||||
a TEXT,
|
||||
b REAL
|
||||
);
|
||||
INSERT INTO T VALUES ('a',ln(datetime(NULL))), ('b',-CAST(tan(instr(NULL, (concat_ws(',', 1, 2, 3) + 0))) AS REAL)), ('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 case_sensitive_like == OFF;
|
||||
BEGIN TRANSACTION;
|
||||
.quit
|
||||
((PRAGMA)) vdbe_debug = -concat(log10(CAST(substring(printf('%05d', 1), 1) AS DOUBLE)), 2, 3);
|
||||
PRAGMA secure_delete = ON;
|
||||
PRAGMA wal_autocheckpoint = 1000;
|
||||
.once log.txt
|
||||
CREATE TABLE "T" (
|
||||
A VARCHAR(15) PRIMARY KEY,
|
||||
B VARCHAR(30) NOT NULL,
|
||||
C BIGINT UNIQUE
|
||||
);
|
||||
INSERT INTO main.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;
|
||||
ALTER TABLE T DROP COLUMN B;
|
||||
ALTER TABLE T RENAME TO T_r2338;
|
||||
ALTER TABLE T RENAME TO T_r2523;
|
||||
INSERT INTO T VALUES (1, 'x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
|
||||
PRAGMA trusted_schema = OFF;
|
||||
.quit
|
||||
((PRAGMA)) vdbe_debug = 0;
|
||||
PRAGMA secure_delete = ON;
|
||||
PRAGMA wal_autocheckpoint = 1000;
|
||||
.once log.txt
|
||||
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;
|
||||
ALTER TABLE T DROP COLUMN B;
|
||||
ALTER TABLE T RENAME TO T_r2338;
|
||||
ALTER TABLE T RENAME TO T_r2523;
|
||||
INSERT INTO T VALUES (1, 'x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
|
||||
PRAGMA trusted_schema = OFF;
|
||||
|
||||
UPDATE T SET C = 79 RETURNING *;
|
||||
SELECT * FROM T AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT C, COUNT(*) FROM T GROUP BY C HAVING C IN (SELECT C FROM T);
|
||||
REINDEX;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_9021 ON T(lower(A));
|
||||
WITH cte AS (SELECT 1 AS x) INSERT INTO T(C) SELECT x FROM cte WHERE 1=0;
|
||||
ALTER TABLE T RENAME COLUMN B TO B_r4119;
|
||||
VACUUM main;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T_9843 AFTER DELETE ON T BEGIN SELECT RAISE(FAIL, 'no'); ENd;
|
||||
PRAGMA vdbe_debug = 1;
|
||||
VACUUM main;
|
||||
.quit
|
||||
((PRAGMA)) vdbe_debug = -concat(log10(CAST(1 AS DOUBLE)), 2, 3);
|
||||
PRAGMA secure_delete = ON;
|
||||
PRAGMA wal_autocheckpoint = 1000;
|
||||
.once log.txt
|
||||
CREATE TABLE "T" (
|
||||
A VARCHAR(15) PRIMARY KEY,
|
||||
B VARCHAR(30) NOT NULL,
|
||||
C BIGINT UNIQUE
|
||||
);
|
||||
INSERT INTO main.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;
|
||||
ALTER TABLE T DROP COLUMN B;
|
||||
ALTER TABLE T RENAME TO T_r2338;
|
||||
ALTER TABLE T RENAME TO T_r2523;
|
||||
INSERT INTO T VALUES (1, 'x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
|
||||
PRAGMA trusted_schema = OFF;
|
||||
.quit
|
||||
((PRAGMA)) vdbe_debug = 0;
|
||||
PRAGMA secure_delete = ON;
|
||||
PRAGMA wal_autocheckpoint = 1000;
|
||||
.once log.txt
|
||||
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;
|
||||
ALTER TABLE T DROP COLUMN B;
|
||||
ALTER TABLE T RENAME TO T_r2338;
|
||||
ALTER TABLE T RENAME TO T_r2523;
|
||||
INSERT INTO T VALUES (1, 'x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
|
||||
PRAGMA trusted_schema = OFF;
|
||||
|
||||
UPDATE T SET C = 79 RETURNING *;
|
||||
SELECT * FROM T AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT C, COUNT(*) FROM T GROUP BY C HAVING C IN (SELECT C FROM T);
|
||||
REINDEX;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_9021 ON T(lower(A));
|
||||
WITH cte AS (SELECT 1 AS x) INSERT INTO T(C) SELECT x FROM cte WHERE 1=0;
|
||||
ALTER TABLE T RENAME COLUMN B TO B_r4119;
|
||||
VACUUM main;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T_9843 AFTER DELETE ON T BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
PRAGMA vdbe_debug = 1;
|
||||
VACUUM main;
|
||||
.quit
|
||||
((PRAGMA)) vdbe_debug = -concat(log10(CAST(1 AS DOUBLE)), 2, 3);
|
||||
PRAGMA secure_delete = ON;
|
||||
PRAGMA wal_autocheckpoint = 1000;
|
||||
.once log.txt
|
||||
CREATE TABLE "T" (
|
||||
A VARCHAR(15) PRIMARY KEY,
|
||||
B VARCHAR(30) NOT NULL,
|
||||
C BIGINT UNIQUE
|
||||
);
|
||||
INSERT INTO main.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;
|
||||
ALTER TABLE T DROP COLUMN B;
|
||||
ALTER TABLE T RENAME TO T_r2338;
|
||||
ALTER TABLE T RENAME TO T_r2523;
|
||||
INSERT INTO T VALUES (1, 'x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
|
||||
PRAGMA trusted_schema = OFF;
|
||||
.quit
|
||||
((PRAGMA)) vdbe_debug = 0;
|
||||
PRAGMA secure_delete = ON;
|
||||
PRAGMA wal_autocheckpoint = 1000;
|
||||
.once log.txt
|
||||
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;
|
||||
ALTER TABLE T DROP COLUMN B;
|
||||
ALTER TABLE T RENAME TO T_r2338;
|
||||
ALTER TABLE T RENAME TO T_r2523;
|
||||
INSERT INTO T VALUES (1, 'x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
|
||||
PRAGMA trusted_schema = OFF;
|
||||
|
||||
UPDATE T SET C = 79 RETURNING *;
|
||||
SELECT * FROM T AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT C, COUNT(*) FROM T GROUP BY C HAVING C IN (SELECT C FROM T);
|
||||
REINDEX;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_9021 ON T(lower(A));
|
||||
WITH cte AS (SELECT 1 AS x) INSERT INTO T(C) SELECT x FROM cte WHERE 1=0;
|
||||
ALTER TABLE T RENAME COLUMN B TO B_r4119;
|
||||
VACUUM main;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T_9843 AFTER DELETE ON T BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
PRAGMA vdbe_debug = 1;
|
||||
VACUUM main;
|
||||
.quit
|
||||
((PRAGMA)) vdbe_debug = -concat(log10(CAST(1 AS DOUBLE)), 2, 3);
|
||||
PRAGMA secure_delete = ON;
|
||||
PRAGMA wal_autocheckpoint = 1000;
|
||||
.once log.txt
|
||||
CREATE TABLE "T" (
|
||||
A VARCHAR(15) PRIMARY KEY,
|
||||
B VARCHAR(30) NOT NULL,
|
||||
C BIGINT UNIQUE
|
||||
);
|
||||
INSERT INTO main.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;
|
||||
ALTER TABLE T DROP COLUMN B;
|
||||
ALTER TABLE T RENAME TO T_r2338;
|
||||
ALTER TABLE T RENAME TO T_r2523;
|
||||
INSERT INTO T VALUES (1, 'x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
|
||||
PRAGMA trusted_schema = OFF;
|
||||
.quit
|
||||
((PRAGMA)) vdbe_debug = 0;
|
||||
PRAGMA secure_delete = ON;
|
||||
PRAGMA wal_autocheckpoint = 1000;
|
||||
.once log.txt
|
||||
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;
|
||||
ALTER TABLE T DROP COLUMN B;
|
||||
ALTER TABLE T RENAME TO T_r2338;
|
||||
ALTER TABLE T RENAME TO T_r2523;
|
||||
INSERT INTO T VALUES (1, 'x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
|
||||
PRAGMA trusted_schema = OFF;
|
||||
|
||||
UPDATE T SET C = 79 RETURNING *;
|
||||
SELECT * FROM T AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT C, COUNT(*) FROM T GROUP BY C HAVING C IN (SELECT C FROM T);
|
||||
REINDEX;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_9021 ON T(lower(A));
|
||||
WITH cte AS (SELECT 1 AS x) INSERT INTO T(C) SELECT x FROM cte WHERE 1=0;
|
||||
ALTER TABLE T RENAME COLUMN B TO B_r4119;
|
||||
VACUUM main;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T_9843 AFTER DELETE ON T BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
PRAGMA vdbe_debug = 1;
|
||||
VACUUM main;
|
||||
.quit
|
||||
((PRAGMA)) vdbe_debug = -concat(log10(CAST(1 AS DOUBLE)), 2, 3);
|
||||
PRAGMA secure_delete = ON;
|
||||
PRAGMA wal_autocheckpoint = 1000;
|
||||
.once log.txt
|
||||
CREATE TABLE "T" (
|
||||
A VARCHAR(15) PRIMARY KEY,
|
||||
B VARCHAR(30) NOT NULL,
|
||||
C BIGINT UNIQUE
|
||||
);
|
||||
INSERT INTO main.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;
|
||||
ALTER TABLE T DROP COLUMN B;
|
||||
ALTER TABLE T RENAME TO T_r2338;
|
||||
ALTER TABLE T RENAME TO T_r2523;
|
||||
INSERT INTO T VALUES (1, 'x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
|
||||
PRAGMA trusted_schema = OFF;
|
||||
.quit
|
||||
((PRAGMA)) vdbe_debug = 0;
|
||||
PRAGMA secure_delete = ON;
|
||||
PRAGMA wal_autocheckpoint = 1000;
|
||||
.once log.txt
|
||||
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;
|
||||
ALTER TABLE T DROP COLUMN B;
|
||||
ALTER TABLE T RENAME TO T_r2338;
|
||||
ALTER TABLE T RENAME TO T_r2523;
|
||||
INSERT INTO T VALUES (1, 'x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
|
||||
PRAGMA trusted_schema = OFF;
|
||||
|
||||
UPDATE T SET C = 79 RETURNING *;
|
||||
SELECT * FROM T AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT C, COUNT(*) FROM T GROUP BY C HAVING C IN (SELECT C FROM T);
|
||||
REINDEX;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_9021 ON T(lower(A));
|
||||
WITH cte AS (SELECT 1 AS x) INSERT INTO T(C) SELECT x FROM cte WHERE 1=0;
|
||||
ALTER TABLE T RENAME COLUMN B TO B_r4119;
|
||||
VACUUM main;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T_9843 AFTER DELETE ON T BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
PRAGMA vdbe_debug = 1;
|
||||
VACUUM main;
|
||||
.quit
|
||||
((PRAGMA)) vdbe_debug = -concat(log10(CAST(1 AS DOUBLE)), 2, 3);
|
||||
PRAGMA secure_delete = ON;
|
||||
PRAGMA wal_autocheckpoint = 1000;
|
||||
.once log.txt
|
||||
CREATE TABLE "T" (
|
||||
A VARCHAR(15) PRIMARY KEY,
|
||||
B VARCHAR(30) NOT NULL,
|
||||
C BIGINT UNIQUE
|
||||
);
|
||||
INSERT INTO main.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;
|
||||
ALTER TABLE T DROP COLUMN B;
|
||||
ALTER TABLE T RENAME TO T_r2338;
|
||||
ALTER TABLE T RENAME TO T_r2523;
|
||||
INSERT INTO T VALUES (1, 'x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
|
||||
PRAGMA trusted_schema = OFF;
|
||||
.quit
|
||||
((PRAGMA)) vdbe_debug = 0;
|
||||
PRAGMA secure_delete = ON;
|
||||
PRAGMA wal_autocheckpoint = 1000;
|
||||
.once log.txt
|
||||
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;
|
||||
ALTER TABLE T DROP COLUMN B;
|
||||
ALTER TABLE T RENAME TO T_r2338;
|
||||
ALTER TABLE T RENAME TO T_r2523;
|
||||
INSERT INTO T VALUES (1, 'x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
|
||||
PRAGMA trusted_schema = OFF;
|
||||
|
||||
UPDATE T SET C = 79 RETURNING *;
|
||||
SELECT * FROM T AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT C, COUNT(*) FROM T GROUP BY C HAVING C IN (SELECT C FROM T);
|
||||
REINDEX;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_9021 ON T(lower(A));
|
||||
WITH cte AS (SELECT 1 AS x) INSERT INTO T(C) SELECT x FROM cte WHERE 1=0;
|
||||
ALTER TABLE T RENAME COLUMN B TO B_r4119;
|
||||
VACUUM main;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T_9843 AFTER DELETE ON T BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
PRAGMA vdbe_debug = 1;
|
||||
VACUUM main;
|
||||
.quit
|
||||
((PRAGMA)) vdbe_debug = -concat(log10(CAST(1 AS DOUBLE)), 2, 3);
|
||||
PRAGMA secure_delete = ON;
|
||||
PRAGMA wal_autocheckpoint = 1000;
|
||||
.once log.txt
|
||||
CREATE TABLE "T" (
|
||||
A VARCHAR(15) PRIMARY KEY,
|
||||
B VARCHAR(30) NOT NULL,
|
||||
C BIGINT UNIQUE
|
||||
);
|
||||
INSERT INTO main.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;
|
||||
ALTER TABLE T DROP COLUMN B;
|
||||
ALTER TABLE T RENAME TO T_r2338;
|
||||
ALTER TABLE T RENAME TO T_r2523;
|
||||
INSERT INTO T VALUES (1, 'x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
|
||||
PRAGMA trusted_schema = OFF;
|
||||
.quit
|
||||
((PRAGMA)) vdbe_debug = 0;
|
||||
PRAGMA secure_delete = ON;
|
||||
PRAGMA wal_autocheckpoint = 1000;
|
||||
.once log.txt
|
||||
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;
|
||||
ALTER TABLE T DROP COLUMN B;
|
||||
ALTER TABLE T RENAME TO T_r2338;
|
||||
ALTER TABLE T RENAME TO T_r2523;
|
||||
INSERT INTO T VALUES (1, 'x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
|
||||
PRAGMA trusted_schema = OFF;
|
||||
|
||||
UPDATE T SET C = 79 RETURNING *;
|
||||
SELECT * FROM T AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT C, COUNT(*) FROM T GROUP BY C HAVING C IN (SELECT C FROM T);
|
||||
REINDEX;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_9021 ON T(lower(A));
|
||||
WITH cte AS (SELECT 1 AS x) INSERT INTO T(C) SELECT x FROM cte WHERE 1=0;
|
||||
ALTER TABLE T RENAME COLUMN B TO B_r4119;
|
||||
VACUUM main;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T_9843 AFTER DELETE ON T BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
PRAGMA vdbe_debug = 1;
|
||||
VACUUM main;
|
||||
.quit
|
||||
((PRAGMA)) vdbe_debug = -concat(log10(CAST(1 AS DOUBLE)), 2, 3);
|
||||
PRAGMA secure_delete = ON;
|
||||
PRAGMA wal_autocheckpoint = 1000;
|
||||
.once log.txt
|
||||
CREATE TABLE "T" (
|
||||
A VARCHAR(15) PRIMARY KEY,
|
||||
B VARCHAR(30) NOT NULL,
|
||||
C BIGINT UNIQUE
|
||||
);
|
||||
INSERT INTO main.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;
|
||||
ALTER TABLE T DROP COLUMN B;
|
||||
ALTER TABLE T RENAME TO T_r2338;
|
||||
ALTER TABLE T RENAME TO T_r2523;
|
||||
INSERT INTO T VALUES (1, 'x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
|
||||
PRAGMA trusted_schema = OFF;
|
||||
.quit
|
||||
((PRAGMA)) vdbe_debug = 0;
|
||||
PRAGMA secure_delete = ON;
|
||||
PRAGMA wal_autocheckpoint = 1000;
|
||||
.once log.txt
|
||||
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;
|
||||
ALTER TABLE T DROP COLUMN B;
|
||||
ALTER TABLE T RENAME TO T_r2338;
|
||||
ALTER TABLE T RENAME TO T_r2523;
|
||||
INSERT INTO T VALUES (1, 'x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
|
||||
PRAGMA trusted_schema = OFF;
|
||||
|
||||
UPDATE T SET C = 79 RETURNING *;
|
||||
SELECT * FROM T AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT C, COUNT(*) FROM T GROUP BY C HAVING C IN (SELECT C FROM T);
|
||||
REINDEX;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_9021 ON T(lower(A));
|
||||
WITH cte AS (SELECT 1 AS x) INSERT INTO T(C) SELECT x FROM cte WHERE 1=0;
|
||||
ALTER TABLE T RENAME COLUMN B TO B_r4119;
|
||||
VACUUM main;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T_9843 AFTER DELETE ON T BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
PRAGMA vdbe_debug = 1;
|
||||
VACUUM main;
|
||||
.quit
|
||||
((PRAGMA)) vdbe_debug = -concat(log10(CAST(1 AS DOUBLE)), 2, 3);
|
||||
PRAGMA secure_delete = ON;
|
||||
PRAGMA wal_autocheckpoint = 1000;
|
||||
.once log.txt
|
||||
CREATE TABLE "T" (
|
||||
A VARCHAR(15) PRIMARY KEY,
|
||||
B VARCHAR(30) NOT NULL,
|
||||
C BIGINT UNIQUE
|
||||
);
|
||||
INSERT INTO main.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;
|
||||
ALTER TABLE T DROP COLUMN B;
|
||||
ALTER TABLE T RENAME TO T_r2338;
|
||||
ALTER TABLE T RENAME TO T_r2523;
|
||||
INSERT INTO T VALUES (1, 'x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
|
||||
PRAGMA trusted_schema = OFF;
|
||||
.quit
|
||||
((PRAGMA)) vdbe_debug = 0;
|
||||
PRAGMA secure_delete = ON;
|
||||
PRAGMA wal_autocheckpoint = 1000;
|
||||
.once log.txt
|
||||
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;
|
||||
ALTER TABLE T DROP COLUMN B;
|
||||
ALTER TABLE T RENAME TO T_r2338;
|
||||
ALTER TABLE T RENAME TO T_r2523;
|
||||
INSERT INTO T VALUES (1, 'x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
|
||||
PRAGMA trusted_schema = OFF;
|
||||
|
||||
UPDATE T SET C = 79 RETURNING *;
|
||||
SELECT * FROM T AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT C, COUNT(*) FROM T GROUP BY C HAVING C IN (SELECT C FROM T);
|
||||
REINDEX;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_9021 ON T(lower(A));
|
||||
WITH cte AS (SELECT 1 AS x) INSERT INTO T(C) SELECT x FROM cte WHERE 1=0;
|
||||
ALTER TABLE T RENAME COLUMN B TO B_r4119;
|
||||
VACUUM main;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T_9843 AFTER DELETE ON T BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
PRAGMA vdbe_debug = 1;
|
||||
VACUUM main;
|
||||
.quit
|
||||
((PRAGMA)) vdbe_debug = -concat(log10(CAST(1 AS DOUBLE)), 2, 3);
|
||||
PRAGMA secure_delete = ON;
|
||||
PRAGMA wal_autocheckpoint = 1000;
|
||||
.once log.txt
|
||||
CREATE TABLE "T" (
|
||||
A VARCHAR(15) PRIMARY KEY,
|
||||
B VARCHAR(30) NOT NULL,
|
||||
C BIGINT UNIQUE
|
||||
);
|
||||
INSERT INTO main.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;
|
||||
ALTER TABLE T DROP COLUMN B;
|
||||
ALTER TABLE T RENAME TO T_r2338;
|
||||
ALTER TABLE T RENAME TO T_r2523;
|
||||
INSERT INTO T VALUES (1, 'x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
|
||||
PRAGMA trusted_schema = OFF;
|
||||
.quit
|
||||
((PRAGMA)) vdbe_debug = 0;
|
||||
PRAGMA secure_delete = ON;
|
||||
PRAGMA wal_autocheckpoint = 1000;
|
||||
.once log.txt
|
||||
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;
|
||||
ALTER TABLE T DROP COLUMN B;
|
||||
ALTER TABLE T RENAME TO T_r2338;
|
||||
ALTER TABLE T RENAME TO T_r2523;
|
||||
INSERT INTO T VALUES (1, 'x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
|
||||
PRAGMA trusted_schema = OFF;
|
||||
|
||||
UPDATE T SET C = 79 RETURNING *;
|
||||
SELECT * FROM T AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT C, COUNT(*) FROM T GROUP BY C HAVING C IN (SELECT C FROM T);
|
||||
REINDEX;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_9021 ON T(lower(A));
|
||||
WITH cte AS (SELECT 1 AS x) INSERT INTO T(C) SELECT x FROM cte WHERE 1=0;
|
||||
ALTER TABLE T RENAME COLUMN B TO B_r4119;
|
||||
VACUUM main;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T_9843 AFTER DELETE ON T BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
PRAGMA vdbe_debug = 1;
|
||||
VACUUM main;
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_T_8791 ON T(lower(B)) WHERE B IS NOT NULL;
|
||||
SELECT * FROM T WHERE B <= ANY (SELECT B FROM T);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM T2) SELECT * FROM T;
|
||||
UPDATE T SET A = '';
|
||||
COMMIT TRANSACTION;
|
||||
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;
|
||||
REINDEX;
|
||||
DROP INDEX IF EXISTS T2;
|
||||
REINDEX T1;
|
||||
REINDEX T2;
|
||||
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 T WHERE (C) IN (SELECT C FROM T);
|
||||
DETACH DATABASE aux77;
|
||||
SELECT MIN(A) OVER (ORDER BY A RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T;
|
||||
REINDEX T2;
|
||||
|
||||
SELECT COUNT(*) FROM T1;
|
||||
SELECT SUM(X) FROM T2;
|
||||
ALTER TABLE T2 DROP COLUMN A;
|
||||
UPDATE T2 SET A = NULL RETURNING *;
|
||||
UPDATE T2 SET X = json_object('k', X) WHERE X BETWEEN 0 AND 100;
|
||||
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<52) SELECT COUNT(*) FROM cnt;
|
||||
SELECT SUM(C) FROM T;
|
||||
DROP TRIGGER IF EXISTS T2;
|
||||
CREATE VIEW IF NOT EXISTS v_T_7805 AS SELECT B FROM T;
|
||||
ALTER TABLE T2 DROP COLUMN A;
|
||||
WITH RECURSIVE pair(a,b) AS (VALUES(0,1) UNION ALL SELECT b, a+b FROM pair WHERE b<100) SELECT * FROM pair;
|
||||
SELECT * FROM T AS a JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT AVG(A) OVER (PARTITION BY A ORDER BY A) FROM T1;
|
||||
SELECT LEAD(X, X) OVER (ORDER BY X) FROM T2;
|
||||
SELECT * FROM T1;
|
||||
SELECT LAG(A, 2, 'default') OVER (ORDER BY A ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
|
||||
SELECT * FROM T2 WHERE X IN (SELECT X FROM T2 LIMIT 1);
|
||||
|
||||
SELECT COUNT(*) FROM T1;
|
||||
SELECT * FROM T AS a RIGHT OUTER JOIN T1 AS b ON a.rowid = b.rowid;
|
||||
PRAGMA module_list;
|
||||
ALTER TABLE T2 ADD COLUMN extra_4727 CHARINT COLLATE NOCASE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T2_8325 BEFORE UPDATE OF X ON T2 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
ALTER TABLE _m DROP COLUMN C;
|
||||
ALTER TABLE _m RENAME COLUMN A TO A_r8882;
|
||||
ANALYZE T1;
|
||||
CREATE TRIGGER IF NOT EXISTS trg__m_3011 AFTER INSERT ON _m BEGIN INSERT INTO _m(C) VALUES (NULL); END;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
Parse error near line 7: no such function: concat_ws
|
||||
,ln(datetime(NULL))), ('b',-CAST(tan(instr(NULL, (concat_ws(',', 1, 2, 3) + 0)
|
||||
error here ---^
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
@@ -0,0 +1,671 @@
|
||||
## 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;
|
||||
-- typeof(randomblob(1))
|
||||
|
||||
.auth OFF
|
||||
PRAGMA count_changes = OFF;
|
||||
PRAGMA legacy_alter_table = ON;
|
||||
CREATE TABLE t1(a CHARINT PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (-(-(NULL)), 'Wernher', json_quote(tanh(-(-(NULL)))), -concat_ws('|', 'a', NULL, 'b'));
|
||||
INSERT INTO t1 VALUES (exp(unicode(123)), 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
BEGIN EXCLUSIVE;
|
||||
CREATE TABLE map_integer (id INT, name);
|
||||
INSERT INTO map_integer VALUES(lower('你好'),'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(3547739615393531126,'abc');
|
||||
INSERT INTO data VALUES('4','xyz');
|
||||
CREATE VIEW idmap as WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (SELECT * FROM map_integer) SELECT * FROM map_text) SELECT * FROM _m UNION SELECT * FROM _m;
|
||||
CREATE TABLE mzed AS SELECT * FROM idmap;
|
||||
PRAGMA automatic_index=ON;
|
||||
SELECT * FROM data JOIN idmap USING(id);
|
||||
SELECT * FROM data AS a LEFT JOIN map_integer AS b ON a.rowid = b.rowid;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_map_integer_6193 AS SELECT name FROM map_integer;
|
||||
CREATE VIEW IF NOT EXISTS v_data_9060 AS SELECT name FROM data;
|
||||
INSERT INTO data SELECT * FROM data;
|
||||
PRAGMA ignore_check_constraints = 0;
|
||||
ALTER TABLE data ADD COLUMN extra_9221 TINYINT DEFAULT '';
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_map_text_5459 AS SELECT name FROM map_text;
|
||||
COMMIT;
|
||||
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;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_map_text_8647 AFTER DELETE ON map_text FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
SELECT NTH_VALUE(id, 0) OVER (PARTITION BY id ORDER BY id ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM map_integer;
|
||||
REINDEX map_integer;
|
||||
DELETE FROM map_integer WHERE NOT NOT (0) ;
|
||||
UPDATE map_text SET id = 'x' WHERE rowid = 1;
|
||||
DELETE FROM map_integer WHERE rowid = 41;
|
||||
CREATE VIEW IF NOT EXISTS v_data_9250 AS SELECT name FROM data;
|
||||
ALTER TABLE data DROP COLUMN id;
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C INTEGER,
|
||||
UNIQUE (B, C)
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -2147483648);
|
||||
INSERT INTO T VALUES ('b', 'q', 700);
|
||||
INSERT INTO T VALUES ('c', 'r', 0);
|
||||
INSERT INTO T VALUES ('d', 's', 2147483647);
|
||||
INSERT INTO T VALUES ('e', 't', -1);
|
||||
INSERT INTO T VALUES ('f', 'u', 1);
|
||||
SELECT * FROM T WHERE C BETWEEN -1000 AND 1000 ORDER BY C ASC;
|
||||
INSERT INTO map_text VALUES (1, 1) ON CONFLICT(id) DO UPDATE SET id = excluded.id, name = excluded.name;
|
||||
PRAGMA foreign_key_list(users);
|
||||
SELECT COUNT(*) FROM data;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_7942 AS SELECT C FROM T;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_map_text_1196 ON map_text(id) WHERE id > 0;
|
||||
SELECT COUNT(C) FROM T;
|
||||
DELETE FROM T WHERE rowid = 20 RETURNING *;
|
||||
INSERT OR REPLACE INTO data VALUES (-8, 'x');
|
||||
SELECT * FROM map_text;
|
||||
WITH a AS (SELECT a FROM T1), b AS (SELECT a FROM a), c AS (SELECT a FROM b) SELECT * FROM c;
|
||||
REINDEX map_text;
|
||||
SELECT SUM(id) OVER (ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM map_text;
|
||||
PRAGMA legacy_alter_table = ON;
|
||||
CREATE TABLE t1(a DOUB PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (-(-(NULL)), 'Wernher', json_quote(123), 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
BEGIN EXCLUSIVE;
|
||||
CREATE TABLE map_integer (id INT, name);
|
||||
INSERT INTO map_integer VALUES(lower('你好'),'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(3547739615393531126,'abc');
|
||||
INSERT INTO data VALUES('4','xyz');
|
||||
CREATE VIEW idmap as WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (SELECT * FROM map_integer) SELECT * FROM map_text) SELECT * FROM _m UNION SELECT * FROM _m;
|
||||
CREATE TABLE mzed AS SELECT * FROM idmap;
|
||||
PRAGMA automatic_index=ON;
|
||||
SELECT * FROM data JOIN idmap USING(id);
|
||||
SELECT * FROM data AS a LEFT JOIN map_integer AS b ON a.rowid = b.rowid;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_map_integer_6193 AS SELECT name FROM map_integer;
|
||||
CREATE VIEW IF NOT EXISTS v_data_9060 AS SELECT name FROM data;
|
||||
INSERT INTO data SELECT * FROM data;
|
||||
PRAGMA ignore_check_constraints = 0;
|
||||
ALTER TABLE data ADD COLUMN extra_9221 TINYINT DEFAULT '';
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_map_text_5459 AS SELECT name FROM map_text;
|
||||
COMMIT;
|
||||
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;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_map_text_8647 AFTER DELETE ON map_text FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
SELECT NTH_VALUE(id, 0) OVER (PARTITION BY id ORDER BY id ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM map_integer;
|
||||
REINDEX map_integer;
|
||||
DELETE FROM map_integer WHERE NOT NOT (0) ;
|
||||
UPDATE map_text SET id = 'x' WHERE rowid = 1;
|
||||
DELETE FROM map_integer WHERE rowid = 41;
|
||||
CREATE VIEW IF NOT EXISTS v_data_9250 AS SELECT name FROM data;
|
||||
ALTER TABLE data DROP COLUMN id;
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C INTEGER,
|
||||
UNIQUE (B, C)
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -2147483648);
|
||||
INSERT INTO T VALUES ('b', 'q', 700);
|
||||
INSERT INTO T VALUES ('c', 'r', 0);
|
||||
INSERT INTO T VALUES ('d', 's', 2147483647);
|
||||
INSERT INTO T VALUES ('e', 't', -1);
|
||||
INSERT INTO T VALUES ('f', 'u', 1);
|
||||
SELECT * FROM T WHERE C BETWEEN -1000 AND 1000 ORDER BY C ASC;
|
||||
INSERT INTO map_text VALUES (1, 1) ON CONFLICT(id) DO UPDATE SET id = excluded.id, name = excluded.name;
|
||||
PRAGMA foreign_key_list(users);
|
||||
SELECT COUNT(*) FROM data;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_7942 AS SELECT C FROM T;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_map_text_1196 ON map_text(id) WHERE id > 0;
|
||||
SELECT COUNT(C) FROM T;
|
||||
DELETE FROM T WHERE rowid = 20 RETURNING *;
|
||||
INSERT OR REPLACE INTO data VALUES (-8, 'x');
|
||||
SELECT * FROM map_text;
|
||||
WITH a AS (SELECT a FROM T1), b AS (SELECT a FROM a), c AS (SELECT a FROM b) SELECT * FROM c;
|
||||
REINDEX map_text;
|
||||
SELECT SUM(id) OVER (ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM map_text;
|
||||
PRAGMA legacy_alter_table = ON;
|
||||
CREATE TABLE t1(a DOUB PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (-(-(NULL)), 'Wernher', json_quote(123), 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
BEGIN EXCLUSIVE;
|
||||
CREATE TABLE map_integer (id INT, name);
|
||||
INSERT INTO map_integer VALUES(lower('你好'),'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(3547739615393531126,'abc');
|
||||
INSERT INTO data VALUES('4','xyz');
|
||||
CREATE VIEW idmap as WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (SELECT * FROM map_integer) SELECT * FROM map_text) SELECT * FROM _m UNION SELECT * FROM _m;
|
||||
CREATE TABLE mzed AS SELECT * FROM idmap;
|
||||
PRAGMA automatic_index=ON;
|
||||
SELECT * FROM data JOIN idmap USING(id);
|
||||
SELECT * FROM data AS a LEFT JOIN map_integer AS b ON a.rowid = b.rowid;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_map_integer_6193 AS SELECT name FROM map_integer;
|
||||
CREATE VIEW IF NOT EXISTS v_data_9060 AS SELECT name FROM data;
|
||||
INSERT INTO data SELECT * FROM data;
|
||||
PRAGMA ignore_check_constraints = 0;
|
||||
ALTER TABLE data ADD COLUMN extra_9221 TINYINT DEFAULT '';
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_map_text_5459 AS SELECT name FROM map_text;
|
||||
COMMIT;
|
||||
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;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_map_text_8647 AFTER DELETE ON map_text FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
SELECT NTH_VALUE(id, 0) OVER (PARTITION BY id ORDER BY id ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM map_integer;
|
||||
REINDEX map_integer;
|
||||
DELETE FROM map_integer WHERE NOT NOT (0) ;
|
||||
UPDATE map_text SET id = 'x' WHERE rowid = 1;
|
||||
DELETE FROM map_integer WHERE rowid = 41;
|
||||
CREATE VIEW IF NOT EXISTS v_data_9250 AS SELECT name FROM data;
|
||||
ALTER TABLE data DROP COLUMN id;
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C INTEGER,
|
||||
UNIQUE (B, C)
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -2147483648);
|
||||
INSERT INTO T VALUES ('b', 'q', 700);
|
||||
INSERT INTO T VALUES ('c', 'r', 0);
|
||||
INSERT INTO T VALUES ('d', 's', 2147483647);
|
||||
INSERT INTO T VALUES ('e', 't', -1);
|
||||
INSERT INTO T VALUES ('f', 'u', 1);
|
||||
SELECT * FROM T WHERE C BETWEEN -1000 AND 1000 ORDER BY C ASC;
|
||||
INSERT INTO map_text VALUES (1, 1) ON CONFLICT(id) DO UPDATE SET id = excluded.id, name = excluded.name;
|
||||
PRAGMA foreign_key_list(users);
|
||||
SELECT COUNT(*) FROM data;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_7942 AS SELECT C FROM T;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_map_text_1196 ON map_text(id) WHERE id > 0;
|
||||
SELECT COUNT(C) FROM T;
|
||||
DELETE FROM T WHERE rowid = 20 RETURNING *;
|
||||
INSERT OR REPLACE INTO data VALUES (-8, 'x');
|
||||
SELECT * FROM map_text;
|
||||
WITH a AS (SELECT a FROM T1), b AS (SELECT a FROM a), c AS (SELECT a FROM b) SELECT * FROM c;
|
||||
REINDEX map_text;
|
||||
SELECT SUM(id) OVER (ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM map_text;
|
||||
PRAGMA legacy_alter_table = ON;
|
||||
CREATE TABLE t1(a DOUB PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (-(-(NULL)), 'Wernher', json_quote(123), 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
BEGIN EXCLUSIVE;
|
||||
CREATE TABLE map_integer (id INT, name);
|
||||
INSERT INTO map_integer VALUES(lower('你好'),'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(3547739615393531126,'abc');
|
||||
INSERT INTO data VALUES('4','xyz');
|
||||
CREATE VIEW idmap as WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (SELECT * FROM map_integer) SELECT * FROM map_text) SELECT * FROM _m UNION SELECT * FROM _m;
|
||||
CREATE TABLE mzed AS SELECT * FROM idmap;
|
||||
PRAGMA automatic_index=ON;
|
||||
SELECT * FROM data JOIN idmap USING(id);
|
||||
SELECT * FROM data AS a LEFT JOIN map_integer AS b ON a.rowid = b.rowid;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_map_integer_6193 AS SELECT name FROM map_integer;
|
||||
CREATE VIEW IF NOT EXISTS v_data_9060 AS SELECT name FROM data;
|
||||
INSERT INTO data SELECT * FROM data;
|
||||
PRAGMA ignore_check_constraints = 0;
|
||||
ALTER TABLE data ADD COLUMN extra_9221 TINYINT DEFAULT '';
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_map_text_5459 AS SELECT name FROM map_text;
|
||||
COMMIT;
|
||||
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;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_map_text_8647 AFTER DELETE ON map_text FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
SELECT NTH_VALUE(id, 0) OVER (PARTITION BY id ORDER BY id ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM map_integer;
|
||||
REINDEX map_integer;
|
||||
DELETE FROM map_integer WHERE NOT NOT (0) ;
|
||||
UPDATE map_text SET id = 'x' WHERE rowid = 1;
|
||||
DELETE FROM map_integer WHERE rowid = 41;
|
||||
CREATE VIEW IF NOT EXISTS v_data_9250 AS SELECT name FROM data;
|
||||
ALTER TABLE data DROP COLUMN id;
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C INTEGER,
|
||||
UNIQUE (B, C)
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -2147483648);
|
||||
INSERT INTO T VALUES ('b', 'q', 700);
|
||||
INSERT INTO T VALUES ('c', 'r', 0);
|
||||
INSERT INTO T VALUES ('d', 's', 2147483647);
|
||||
INSERT INTO T VALUES ('e', 't', -1);
|
||||
INSERT INTO T VALUES ('f', 'u', 1);
|
||||
SELECT * FROM T WHERE C BETWEEN -1000 AND 1000 ORDER BY C ASC;
|
||||
INSERT INTO map_text VALUES (1, 1) ON CONFLICT(id) DO UPDATE SET id = excluded.id, name = excluded.name;
|
||||
PRAGMA foreign_key_list(users);
|
||||
SELECT COUNT(*) FROM data;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_7942 AS SELECT C FROM T;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_map_text_1196 ON map_text(id) WHERE id > 0;
|
||||
SELECT COUNT(C) FROM T;
|
||||
DELETE FROM T WHERE rowid = 20 RETURNING *;
|
||||
INSERT OR REPLACE INTO data VALUES (-8, 'x');
|
||||
SELECT * FROM map_text;
|
||||
WITH a AS (SELECT a FROM T1), b AS (SELECT a FROM a), c AS (SELECT a FROM b) SELECT * FROM c;
|
||||
REINDEX map_text;
|
||||
SELECT SUM(id) OVER (ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM map_text;
|
||||
PRAGMA legacy_alter_table = ON;
|
||||
CREATE TABLE t1(a DOUB PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (-(-(NULL)), 'Wernher', json_quote(123), 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
BEGIN EXCLUSIVE;
|
||||
CREATE TABLE map_integer (id INT, name);
|
||||
INSERT INTO map_integer VALUES(lower('你好'),'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(3547739615393531126,'abc');
|
||||
INSERT INTO data VALUES('4','xyz');
|
||||
CREATE VIEW idmap as WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (SELECT * FROM map_integer) SELECT * FROM map_text) SELECT * FROM _m UNION SELECT * FROM _m;
|
||||
CREATE TABLE mzed AS SELECT * FROM idmap;
|
||||
PRAGMA automatic_index=ON;
|
||||
SELECT * FROM data JOIN idmap USING(id);
|
||||
SELECT * FROM data AS a LEFT JOIN map_integer AS b ON a.rowid = b.rowid;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_map_integer_6193 AS SELECT name FROM map_integer;
|
||||
CREATE VIEW IF NOT EXISTS v_data_9060 AS SELECT name FROM data;
|
||||
INSERT INTO data SELECT * FROM data;
|
||||
PRAGMA ignore_check_constraints = 0;
|
||||
ALTER TABLE data ADD COLUMN extra_9221 TINYINT DEFAULT '';
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_map_text_5459 AS SELECT name FROM map_text;
|
||||
COMMIT;
|
||||
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;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_map_text_8647 AFTER DELETE ON map_text FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
SELECT NTH_VALUE(id, 0) OVER (PARTITION BY id ORDER BY id ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM map_integer;
|
||||
REINDEX map_integer;
|
||||
DELETE FROM map_integer WHERE NOT NOT (0) ;
|
||||
UPDATE map_text SET id = 'x' WHERE rowid = 1;
|
||||
DELETE FROM map_integer WHERE rowid = 41;
|
||||
CREATE VIEW IF NOT EXISTS v_data_9250 AS SELECT name FROM data;
|
||||
ALTER TABLE data DROP COLUMN id;
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C INTEGER,
|
||||
UNIQUE (B, C)
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -2147483648);
|
||||
INSERT INTO T VALUES ('b', 'q', 700);
|
||||
INSERT INTO T VALUES ('c', 'r', 0);
|
||||
INSERT INTO T VALUES ('d', 's', 2147483647);
|
||||
INSERT INTO T VALUES ('e', 't', -1);
|
||||
INSERT INTO T VALUES ('f', 'u', 1);
|
||||
SELECT * FROM T WHERE C BETWEEN -1000 AND 1000 ORDER BY C ASC;
|
||||
INSERT INTO map_text VALUES (1, 1) ON CONFLICT(id) DO UPDATE SET id = excluded.id, name = excluded.name;
|
||||
PRAGMA foreign_key_list(users);
|
||||
SELECT COUNT(*) FROM data;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_7942 AS SELECT C FROM T;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_map_text_1196 ON map_text(id) WHERE id > 0;
|
||||
SELECT COUNT(C) FROM T;
|
||||
DELETE FROM T WHERE rowid = 20 RETURNING *;
|
||||
INSERT OR REPLACE INTO data VALUES (-8, 'x');
|
||||
SELECT * FROM map_text;
|
||||
WITH a AS (SELECT a FROM T1), b AS (SELECT a FROM a), c AS (SELECT a FROM b) SELECT * FROM c;
|
||||
REINDEX map_text;
|
||||
SELECT SUM(id) OVER (ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM map_text;
|
||||
PRAGMA legacy_alter_table = ON;
|
||||
CREATE TABLE t1(a DOUB PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (-(-(NULL)), 'Wernher', json_quote(123), 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
BEGIN EXCLUSIVE;
|
||||
CREATE TABLE map_integer (id INT, name);
|
||||
INSERT INTO map_integer VALUES(lower('你好'),'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(3547739615393531126,'abc');
|
||||
INSERT INTO data VALUES('4','xyz');
|
||||
CREATE VIEW idmap as WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (SELECT * FROM map_integer) SELECT * FROM map_text) SELECT * FROM _m UNION SELECT * FROM _m;
|
||||
CREATE TABLE mzed AS SELECT * FROM idmap;
|
||||
PRAGMA automatic_index=ON;
|
||||
SELECT * FROM data JOIN idmap USING(id);
|
||||
SELECT * FROM data AS a LEFT JOIN map_integer AS b ON a.rowid = b.rowid;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_map_integer_6193 AS SELECT name FROM map_integer;
|
||||
CREATE VIEW IF NOT EXISTS v_data_9060 AS SELECT name FROM data;
|
||||
INSERT INTO data SELECT * FROM data;
|
||||
PRAGMA ignore_check_constraints = 0;
|
||||
ALTER TABLE data ADD COLUMN extra_9221 TINYINT DEFAULT '';
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_map_text_5459 AS SELECT name FROM map_text;
|
||||
COMMIT;
|
||||
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;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_map_text_8647 AFTER DELETE ON map_text FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
SELECT NTH_VALUE(id, 0) OVER (PARTITION BY id ORDER BY id ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM map_integer;
|
||||
REINDEX map_integer;
|
||||
DELETE FROM map_integer WHERE NOT NOT (0) ;
|
||||
UPDATE map_text SET id = 'x' WHERE rowid = 1;
|
||||
DELETE FROM map_integer WHERE rowid = 41;
|
||||
CREATE VIEW IF NOT EXISTS v_data_9250 AS SELECT name FROM data;
|
||||
ALTER TABLE data DROP COLUMN id;
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C INTEGER,
|
||||
UNIQUE (B, C)
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -2147483648);
|
||||
INSERT INTO T VALUES ('b', 'q', 700);
|
||||
INSERT INTO T VALUES ('c', 'r', 0);
|
||||
INSERT INTO T VALUES ('d', 's', 2147483647);
|
||||
INSERT INTO T VALUES ('e', 't', -1);
|
||||
INSERT INTO T VALUES ('f', 'u', 1);
|
||||
SELECT * FROM T WHERE C BETWEEN -1000 AND 1000 ORDER BY C ASC;
|
||||
INSERT INTO map_text VALUES (1, 1) ON CONFLICT(id) DO UPDATE SET id = excluded.id, name = excluded.name;
|
||||
PRAGMA foreign_key_list(users);
|
||||
SELECT COUNT(*) FROM data;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_7942 AS SELECT C FROM T;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_map_text_1196 ON map_text(id) WHERE id > 0;
|
||||
SELECT COUNT(C) FROM T;
|
||||
DELETE FROM T WHERE rowid = 20 RETURNING *;
|
||||
INSERT OR REPLACE INTO data VALUES (-8, 'x');
|
||||
SELECT * FROM map_text;
|
||||
WITH a AS (SELECT a FROM T1), b AS (SELECT a FROM a), c AS (SELECT a FROM b) SELECT * FROM c;
|
||||
REINDEX map_text;
|
||||
SELECT SUM(id) OVER (ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM map_text;
|
||||
PRAGMA legacy_alter_table = ON;
|
||||
CREATE TABLE t1(a DOUB PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (-(-(NULL)), 'Wernher', json_quote(123), 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
BEGIN EXCLUSIVE;
|
||||
CREATE TABLE map_integer (id INT, name);
|
||||
INSERT INTO map_integer VALUES(lower('你好'),'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(3547739615393531126,'abc');
|
||||
INSERT INTO data VALUES('4','xyz');
|
||||
CREATE VIEW idmap as WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (SELECT * FROM map_integer) SELECT * FROM map_text) SELECT * FROM _m UNION SELECT * FROM _m;
|
||||
CREATE TABLE mzed AS SELECT * FROM idmap;
|
||||
PRAGMA automatic_index=ON;
|
||||
SELECT * FROM data JOIN idmap USING(id);
|
||||
SELECT * FROM data AS a LEFT JOIN map_integer AS b ON a.rowid = b.rowid;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_map_integer_6193 AS SELECT name FROM map_integer;
|
||||
CREATE VIEW IF NOT EXISTS v_data_9060 AS SELECT name FROM data;
|
||||
INSERT INTO data SELECT * FROM data;
|
||||
PRAGMA ignore_check_constraints = 0;
|
||||
ALTER TABLE data ADD COLUMN extra_9221 TINYINT DEFAULT '';
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_map_text_5459 AS SELECT name FROM map_text;
|
||||
COMMIT;
|
||||
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;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_map_text_8647 AFTER DELETE ON map_text FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
SELECT NTH_VALUE(id, 0) OVER (PARTITION BY id ORDER BY id ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM map_integer;
|
||||
REINDEX map_integer;
|
||||
DELETE FROM map_integer WHERE NOT NOT (0) ;
|
||||
UPDATE map_text SET id = 'x' WHERE rowid = 1;
|
||||
DELETE FROM map_integer WHERE rowid = 41;
|
||||
CREATE VIEW IF NOT EXISTS v_data_9250 AS SELECT name FROM data;
|
||||
ALTER TABLE data DROP COLUMN id;
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C INTEGER,
|
||||
UNIQUE (B, C)
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -2147483648);
|
||||
INSERT INTO T VALUES ('b', 'q', 700);
|
||||
INSERT INTO T VALUES ('c', 'r', 0);
|
||||
INSERT INTO T VALUES ('d', 's', 2147483647);
|
||||
INSERT INTO T VALUES ('e', 't', -1);
|
||||
INSERT INTO T VALUES ('f', 'u', 1);
|
||||
SELECT * FROM T WHERE C BETWEEN -1000 AND 1000 ORDER BY C ASC;
|
||||
INSERT INTO map_text VALUES (1, 1) ON CONFLICT(id) DO UPDATE SET id = excluded.id, name = excluded.name;
|
||||
PRAGMA foreign_key_list(users);
|
||||
SELECT COUNT(*) FROM data;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_7942 AS SELECT C FROM T;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_map_text_1196 ON map_text(id) WHERE id > 0;
|
||||
SELECT COUNT(C) FROM T;
|
||||
DELETE FROM T WHERE rowid = 20 RETURNING *;
|
||||
INSERT OR REPLACE INTO data VALUES (-8, 'x');
|
||||
SELECT * FROM map_text;
|
||||
WITH a AS (SELECT a FROM T1), b AS (SELECT a FROM a), c AS (SELECT a FROM b) SELECT * FROM c;
|
||||
REINDEX map_text;
|
||||
SELECT SUM(id) OVER (ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM map_text;
|
||||
PRAGMA legacy_alter_table = ON;
|
||||
CREATE TABLE t1(a DOUB PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (-(-(NULL)), 'Wernher', json_quote(123), 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
BEGIN EXCLUSIVE;
|
||||
CREATE TABLE map_integer (id INT, name);
|
||||
INSERT INTO map_integer VALUES(lower('你好'),'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(3547739615393531126,'abc');
|
||||
INSERT INTO data VALUES('4','xyz');
|
||||
CREATE VIEW idmap as WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (SELECT * FROM map_integer) SELECT * FROM map_text) SELECT * FROM _m UNION SELECT * FROM _m;
|
||||
CREATE TABLE mzed AS SELECT * FROM idmap;
|
||||
PRAGMA automatic_index=ON;
|
||||
SELECT * FROM data JOIN idmap USING(id);
|
||||
SELECT * FROM data AS a LEFT JOIN map_integer AS b ON a.rowid = b.rowid;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_map_integer_6193 AS SELECT name FROM map_integer;
|
||||
CREATE VIEW IF NOT EXISTS v_data_9060 AS SELECT name FROM data;
|
||||
INSERT INTO data SELECT * FROM data;
|
||||
PRAGMA ignore_check_constraints = 0;
|
||||
ALTER TABLE data ADD COLUMN extra_9221 TINYINT DEFAULT '';
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_map_text_5459 AS SELECT name FROM map_text;
|
||||
COMMIT;
|
||||
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;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_map_text_8647 AFTER DELETE ON map_text FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
SELECT NTH_VALUE(id, 0) OVER (PARTITION BY id ORDER BY id ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM map_integer;
|
||||
REINDEX map_integer;
|
||||
DELETE FROM map_integer WHERE NOT NOT (0) ;
|
||||
UPDATE map_text SET id = 'x' WHERE rowid = 1;
|
||||
DELETE FROM map_integer WHERE rowid = 41;
|
||||
CREATE VIEW IF NOT EXISTS v_data_9250 AS SELECT name FROM data;
|
||||
ALTER TABLE data DROP COLUMN id;
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C INTEGER,
|
||||
UNIQUE (B, C)
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -2147483648);
|
||||
INSERT INTO T VALUES ('b', 'q', 700);
|
||||
INSERT INTO T VALUES ('c', 'r', 0);
|
||||
INSERT INTO T VALUES ('d', 's', 2147483647);
|
||||
INSERT INTO T VALUES ('e', 't', -1);
|
||||
INSERT INTO T VALUES ('f', 'u', 1);
|
||||
SELECT * FROM T WHERE C BETWEEN -1000 AND 1000 ORDER BY C ASC;
|
||||
INSERT INTO map_text VALUES (1, 1) ON CONFLICT(id) DO UPDATE SET id = excluded.id, name = excluded.name;
|
||||
PRAGMA foreign_key_list(users);
|
||||
SELECT COUNT(*) FROM data;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_7942 AS SELECT C FROM T;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_map_text_1196 ON map_text(id) WHERE id > 0;
|
||||
SELECT COUNT(C) FROM T;
|
||||
DELETE FROM T WHERE rowid = 20 RETURNING *;
|
||||
INSERT OR REPLACE INTO data VALUES (-8, 'x');
|
||||
SELECT * FROM map_text;
|
||||
WITH a AS (SELECT a FROM T1), b AS (SELECT a FROM a), c AS (SELECT a FROM b) SELECT * FROM c;
|
||||
REINDEX map_text;
|
||||
SELECT SUM(id) OVER (ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM map_text;
|
||||
|
||||
PRAGMA foreign_keys = NO;
|
||||
VACUUM main;
|
||||
ALTER TABLE data RENAME TO data_r5580;
|
||||
DETACH DATABASE aux85;
|
||||
INSERT INTO T2 DEFAULT VALUES;
|
||||
ALTER TABLE t1 RENAME COLUMN d TO d_r9282;
|
||||
WITH RECURSIVE pair(a,b) AS (VALUES(0,1) UNION ALL SELECT b, a+b FROM pair WHERE b<100) SELECT * FROM pair;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_T2_5688 AS SELECT a FROM T2;
|
||||
SELECT COUNT(*) FILTER (WHERE name IS NOT NULL), SUM(rowid) FILTER (WHERE name > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(name) FILTER (WHERE name > 0 AND name < 100), COUNT(*) FILTER (WHERE typeof(name) = "text") FROM map_integer;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_map_integer_262 AS SELECT id FROM map_integer;
|
||||
```
|
||||
|
||||
## 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,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
|
||||
ATTACH DATABASE ':memory:' AS aux41;
|
||||
SAVEPOINT sp3133;
|
||||
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;
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
ROLLBACK TO sp3133;
|
||||
RELEASE sp3133;
|
||||
REINDEX;
|
||||
INSERT INTO T VALUES (1, NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
|
||||
DETACH DATABASE aux41;
|
||||
```
|
||||
|
||||
## 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,121 @@
|
||||
## 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 = TRUE;
|
||||
.headers off
|
||||
.output
|
||||
PRAGMA temp_store == 'FILE';
|
||||
PRAGMA automatic_index = ON;
|
||||
CREATE TABLE main.t1(a,b,x);
|
||||
CREATE TABLE main.main.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 NOT NOT (+d=b) ;
|
||||
SELECT * FROM t1, t2 WHERE d>b AND x=y;
|
||||
|
||||
CREATE VIEW IF NOT EXISTS v_t2_5713 AS SELECT y FROM t2;
|
||||
SELECT * FROM t2 WHERE NOT EXISTS (SELECT -ceil((-asin(-(-(9223372036854775806))) + 2147483646)) FROM t2 t2 WHERE t2.d = t2.d);
|
||||
SELECT * FROM t2 WHERE c = (SELECT SUM(c) FROM t2);
|
||||
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;
|
||||
CREATE VIEW IF NOT EXISTS v_t1_3397 AS SELECT x 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<44) SELECT * FROM tree;
|
||||
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION SELECT x+1 FROM cnt WHERE x<39) SELECT * FROM cnt;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT * FROM t1;
|
||||
SELECT LEAD(x, 2, 'default') OVER (ORDER BY x) FROM t1;
|
||||
CREATE INDEX IF NOT EXISTS idx_T_6271 ON T(lower(A)) WHERE A > 0;
|
||||
UPDATE t2 SET d = -54 WHERE rowid = 1 RETURNING *;
|
||||
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 OR IGNORE INTO t2 VALUES (-8, 0, '');
|
||||
UPDATE t2 SET c = 95 WHERE 1;
|
||||
PRAGMA checkpoint_fullsync = YES;
|
||||
SELECT * FROM t2 WHERE d IN (SELECT d FROM t2 WHERE d GLOB "*");
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_5603 AS SELECT a FROM T;
|
||||
SELECT LAG(x, 0, 'default') OVER (PARTITION BY x ORDER BY x RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 WHERE x = (SELECT COUNT(*) FROM t1);
|
||||
ALTER TABLE t1 ADD COLUMN extra_7009 TINYINT DEFAULT CURRENT_TIMESTAMP;
|
||||
```
|
||||
|
||||
## 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,199 @@
|
||||
## 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 ON
|
||||
BEGIN EXCLUSIVE;
|
||||
SELECT max(NULL, like('%0%', exp(0), '%'))x0ACB29BM205381;
|
||||
-- .connection
|
||||
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
COMMIT TRANSACTION;
|
||||
.log ON
|
||||
BEGIN EXCLUSIVE;
|
||||
SELECT max(NULL, like('%0%', exp(0), '%'))x0ACB29BM205381;
|
||||
-- .connection
|
||||
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
COMMIT TRANSACTION;
|
||||
.log ON
|
||||
BEGIN EXCLUSIVE;
|
||||
SELECT max(NULL, like('%0%', exp(0), '%'))x0ACB29BM205381;
|
||||
-- .connection
|
||||
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
COMMIT TRANSACTION;
|
||||
.log ON
|
||||
BEGIN EXCLUSIVE;
|
||||
SELECT max(NULL, like('%0%', exp(0), '%'))x0ACB29BM205381;
|
||||
-- .connection
|
||||
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
COMMIT TRANSACTION;
|
||||
.log ON
|
||||
BEGIN EXCLUSIVE;
|
||||
SELECT max(NULL, like('%0%', exp(0), '%'))x0ACB29BM205381;
|
||||
-- .connection
|
||||
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
COMMIT TRANSACTION;
|
||||
.log ON
|
||||
BEGIN EXCLUSIVE;
|
||||
SELECT max(NULL, like('%0%', exp(0), '%'))x0ACB29BM205381;
|
||||
-- .connection
|
||||
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
COMMIT TRANSACTION;
|
||||
.log ON
|
||||
BEGIN EXCLUSIVE;
|
||||
SELECT max(NULL, like('%0%', exp(0), '%'))x0ACB29BM205381;
|
||||
-- .connection
|
||||
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
COMMIT TRANSACTION;
|
||||
.log ON
|
||||
BEGIN EXCLUSIVE;
|
||||
SELECT max(NULL, like('%0%', exp(0), '%'))x0ACB29BM205381;
|
||||
-- .connection
|
||||
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
COMMIT TRANSACTION;
|
||||
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.51.1
|
||||
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.51.1
|
||||
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.51.1
|
||||
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.51.1
|
||||
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.51.1
|
||||
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.51.1
|
||||
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.51.1
|
||||
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.51.1
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,63 @@
|
||||
## 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 aux55;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
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');
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM T2) SELECT A FROM T1 UNION ALL SELECT A FROM _m ORDER BY A;
|
||||
|
||||
SELECT COUNT(*) FROM T1;
|
||||
SELECT * FROM T1;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_T2_1413 AS SELECT A FROM T2;
|
||||
INSERT INTO T2 DEFAULT VALUES;
|
||||
WITH cte AS (SELECT A, ROW_NUMBER() OVER (ORDER BY A) AS rn FROM T1) SELECT * FROM cte WHERE NOT NOT (rn <= 5) ;
|
||||
END TRANSACTION;
|
||||
SELECT * FROM T2;
|
||||
INSERT INTO T2 DEFAULT VALUES;
|
||||
VACUUM main;
|
||||
DELETE FROM T2 WHERE 1;
|
||||
DELETE FROM T2 WHERE 0;
|
||||
ALTER TABLE T2 RENAME COLUMN A TO A_r2332;
|
||||
SELECT COUNT(A) FILTER (WHERE A IS NOT NULL) OVER (PARTITION BY A ORDER BY A ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T1;
|
||||
|
||||
SELECT COUNT(*) FROM T2;
|
||||
INSERT OR FAIL INTO T1 VALUES (1, NULL);
|
||||
|
||||
SELECT COUNT(*) FROM T1;
|
||||
DETACH DATABASE aux55;
|
||||
```
|
||||
|
||||
## 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,57 @@
|
||||
## 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 fk off
|
||||
CREATE TABLE main.[t1](a, b, c);
|
||||
-- sqrt({v})
|
||||
|
||||
INSERT INTO t1 VALUES(if(json_patch(CAST(0.0 AS CHARINT), 0.0), 1, 1),'aaa','bbb');
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
INSERT INTO t1 VALUES(2,'ccc','ddd');
|
||||
SELECT DISTINCT a AS x, b||c AS y FROM t1 WHERE NOT NOT (y IN ('aaabbb','xxx')) ;
|
||||
SELECT DISTINCT a AS x, b||c AS y FROM t1 WHERE +y='aaabbb';
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
CREATE TABLE T (
|
||||
a FLOAT,
|
||||
b TEXT,
|
||||
c REAL
|
||||
);
|
||||
INSERT INTO T VALUES ('a','b',5.0), ('a','c',5.0), ('b','d',-8.25);
|
||||
SELECT a,b,c,
|
||||
RANK() OVER (PARTITION BY a ORDER BY c DESC) AS d FROM T;
|
||||
DROP TABLE t0;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_6630 AS SELECT c FROM t1;
|
||||
ANALYZE;
|
||||
UPDATE t1 SET a = '' WHERE 1 RETURNING *;
|
||||
ANALYZE;
|
||||
SELECT TOTAL(c) FROM T;
|
||||
ALTER TABLE t1 RENAME TO t1_r682;
|
||||
VACUUM;
|
||||
CREATE VIEW IF NOT EXISTS v_T_9629 AS SELECT c FROM T;
|
||||
ALTER TABLE T RENAME TO T_r2076;
|
||||
ALTER TABLE T DROP COLUMN c;
|
||||
UPDATE T SET b = b + 1 WHERE rowid = 1 RETURNING *;
|
||||
SELECT LAST_VALUE(b) OVER (PARTITION BY b ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
3.39.0 2022-05-10 23:28:12 764b71267e0b31ff7eaf2a0def7526a1a02dce4d5b456dea060d97ed342ealt1
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
3.51.1 2025-11-28 17:28:25 281fc0e9afc38674b9b0991943b9e9d1e64c6cbdb133d35f6f5c87ff6af38a88 (64-bit)
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
-version
|
||||
```
|
||||
|
||||
@@ -0,0 +1,132 @@
|
||||
## 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
|
||||
ATTACH DATABASE ':memory:' AS aux3;
|
||||
CREATE TABLE main.T (
|
||||
a MEDIUMINT,
|
||||
b TEXT,
|
||||
c REAL
|
||||
);
|
||||
INSERT
|
||||
INTO T VALUES (datetime((0 + 1)),'a',1.25), (2,'b',-3.5), (3,'c',0.0);
|
||||
SELECT * FROM T WHERE +c < 2.0 ORDER BY c;
|
||||
ALTER TABLE T RENAME COLUMN a TO a_r5474;
|
||||
SELECT * FROM T AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL);
|
||||
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;
|
||||
DETACH DATABASE aux3;
|
||||
SELECT c FROM T WHERE c = (SELECT MAX(c) FROM T);
|
||||
SELECT COUNT(*) FROM T;
|
||||
ANALYZE;
|
||||
INSERT INTO T2 VALUES (NULL, 1, 'x') ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X, C = excluded.C;
|
||||
SELECT AVG(B) FROM T1;
|
||||
ALTER TABLE T DROP COLUMN b;
|
||||
SELECT * FROM T;
|
||||
|
||||
SELECT COUNT(*) FROM T2;
|
||||
DELETE FROM T2 WHERE 0;
|
||||
```
|
||||
|
||||
## 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
|
||||
2|b|-3.5
|
||||
3|c|0.0
|
||||
-4713-11-25 12:00:00|a|1.25
|
||||
-4713-11-25 12:00:00|a|1.25|-4713-11-25 12:00:00|a|1.25
|
||||
2|b|-3.5|2|b|-3.5
|
||||
3|c|0.0|3|c|0.0
|
||||
p|9223372036854775807|1
|
||||
q|-9223372036854775808|1
|
||||
1.25
|
||||
4
|
||||
0.0
|
||||
-4713-11-25 12:00:00|1.25
|
||||
2|-3.5
|
||||
3|0.0
|
||||
|
|
||||
3
|
||||
```
|
||||
|
||||
## 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
|
||||
2|b|-3.5
|
||||
3|c|0.0
|
||||
-4713-11-25 12:00:00|a|1.25
|
||||
-4713-11-25 12:00:00|a|1.25|-4713-11-25 12:00:00|a|1.25
|
||||
2|b|-3.5|2|b|-3.5
|
||||
3|c|0.0|3|c|0.0
|
||||
p|9223372036854775807|1
|
||||
q|-9223372036854775808|1
|
||||
1.25
|
||||
4
|
||||
0.0
|
||||
-4713-11-25 12:00:00|1.25
|
||||
2|-3.5
|
||||
3|0.0
|
||||
|
|
||||
3
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
@@ -0,0 +1,813 @@
|
||||
## Summary
|
||||
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
|
||||
|
||||
## Minimized query
|
||||
|
||||
```sql
|
||||
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;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (likelihood(1, 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 sp2410;
|
||||
-- replace({v}, '', 'x')
|
||||
|
||||
.log ON
|
||||
ATTACH DATABASE ':memory:' AS aux57;
|
||||
ATTACH DATABASE '' || (':memory:') AS aux79;
|
||||
ATTACH DATABASE ':memory:' AS aux15;
|
||||
.print https://yewtu.be/watch?v=dQw4w9WgXcQ
|
||||
PRAGMA vdbe_listing = '{';
|
||||
PRAGMA short_column_names = YES;
|
||||
SAVEPOINT sp5958;
|
||||
CREATE TABLE t1(a MEDIUMINT PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (concat((1 * 1), 1, 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
BEGIN;
|
||||
create TABLE main.abc(a, b, c, PRIMARY KEY(a, b));
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c REAL,
|
||||
d REAL
|
||||
);
|
||||
INSERT INTO T VALUES (json_valid(1, 4),'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C DOUBLE PRECISION
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('b', 'q', -0.000000001);
|
||||
INSERT INTO T VALUES ('c', 'r', 0.0);
|
||||
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
|
||||
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('f', 't', 750.25);
|
||||
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) AS F FROM T GROUP BY B;
|
||||
SELECT b FROM T WHERE NOT NOT NOT (NOT NOT (ABS(c) > 5 OR ABS(d) > 5)) ;
|
||||
INSERT INTO abc VALUES(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;
|
||||
ALTER TABLE T RENAME TO T_r2547;
|
||||
SELECT b, (SELECT AVG(b) FROM abc) AS avg_val FROM abc;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL, NULL);
|
||||
SELECT AVG(B) FROM T;
|
||||
SELECT * FROM t1 WHERE c < ANY (SELECT c FROM t1);
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_7090 AFTER INSERT ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp5958;
|
||||
RELEASE SAVEPOINT sp5958;
|
||||
UPDATE abc SET a = NULL WHERE a IS NOT NULL RETURNING *;
|
||||
DROP VIEW IF EXISTS abc;
|
||||
DELETE FROM t1 WHERE rowid = 76;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
UPDATE T SET A = NULL WHERE 1;
|
||||
ALTER TABLE T RENAME TO T_r3110;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
ALTER TABLE abc DROP COLUMN a;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_1503 BEFORE UPDATE OF a ON abc FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_abc_3299 ON abc(lower(b)) WHERE b IS NOT NULL;
|
||||
WITH cte AS (SELECT "123" AS x) SELECT x + 0 FROM cte;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_3167 BEFORE UPDATE OF c ON abc FOR EACH ROW BEGIN INSERT INTO abc(c) VALUES (NULL); END;
|
||||
SELECT STRING_AGG(C) FROM T;
|
||||
INSERT OR IGNORE INTO abc VALUES (NULL, 9, 'x');
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT * 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 T;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR IGNORE INTO t1 VALUES (3, '', 0, -10);
|
||||
CREATE VIEW IF NOT EXISTS v_T_8516 AS SELECT C FROM T;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_t1_5754 AS SELECT b FROM t1;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T WHERE B IN (SELECT B FROM T LIMIT 0);
|
||||
DETACH DATABASE aux15;
|
||||
WITH cte AS (SELECT * FROM abc LIMIT 1) DELETE FROM abc WHERE a IN (SELECT a FROM cte) AND 1=0;
|
||||
WITH RECURSIVE vals(x) AS (SELECT C FROM T WHERE C IS NOT NULL UNION ALL SELECT C FROM T WHERE C IS NOT NULL LIMIT 10) SELECT * FROM vals;
|
||||
ALTER TABLE t1 RENAME COLUMN c TO c_r3776;
|
||||
DETACH DATABASE aux79;
|
||||
SELECT * FROM T t1 RIGHT JOIN T t2 ON t1.A = (SELECT A FROM T WHERE A = t1.A);
|
||||
INSERT OR ABORT INTO T VALUES ('x', 0, NULL);
|
||||
SELECT GROUP_CONCAT(c, '.') OVER (PARTITION BY c ORDER BY c ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
|
||||
ATTACH DATABASE ':memory:' AS aux79;
|
||||
ATTACH DATABASE ':memory:' AS aux15;
|
||||
.print https://yewtu.be/watch?v=dQw4w9WgXcQ
|
||||
PRAGMA vdbe_listing = 2147483648;
|
||||
PRAGMA short_column_names = YES;
|
||||
SAVEPOINT sp5958;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (concat(1, 1, 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
BEGIN;
|
||||
create TABLE main.abc(a, b, c, PRIMARY KEY(a, b));
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c REAL,
|
||||
d REAL
|
||||
);
|
||||
INSERT INTO T VALUES (json_valid(1, 4),'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C DOUBLE PRECISION
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('b', 'q', -0.000000001);
|
||||
INSERT INTO T VALUES ('c', 'r', 0.0);
|
||||
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
|
||||
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('f', 't', 750.25);
|
||||
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) AS F FROM T GROUP BY B;
|
||||
SELECT b FROM T WHERE NOT NOT (ABS(c) > 5 OR ABS(d) > 5) ;
|
||||
INSERT INTO abc VALUES(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;
|
||||
ALTER TABLE T RENAME TO T_r2547;
|
||||
SELECT b, (SELECT AVG(b) FROM abc) AS avg_val FROM abc;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL, NULL);
|
||||
SELECT AVG(B) FROM T;
|
||||
SELECT * FROM t1 WHERE c < ANY (SELECT c FROM t1);
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_7090 AFTER INSERT ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp5958;
|
||||
RELEASE SAVEPOINT sp5958;
|
||||
UPDATE abc SET a = NULL WHERE a IS NOT NULL RETURNING *;
|
||||
DROP VIEW IF EXISTS abc;
|
||||
DELETE FROM t1 WHERE rowid = 76;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
UPDATE T SET A = NULL WHERE 1;
|
||||
ALTER TABLE T RENAME TO T_r3110;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
ALTER TABLE abc DROP COLUMN a;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_1503 BEFORE UPDATE OF a ON abc FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_abc_3299 ON abc(lower(b)) WHERE b IS NOT NULL;
|
||||
WITH cte AS (SELECT "123" AS x) SELECT x + 0 FROM cte;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_3167 BEFORE UPDATE OF c ON abc FOR EACH ROW BEGIN INSERT INTO abc(c) VALUES (NULL); END;
|
||||
SELECT STRING_AGG(C) FROM T;
|
||||
INSERT OR IGNORE INTO abc VALUES (NULL, 9, 'x');
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT * 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 T;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR IGNORE INTO t1 VALUES (3, '', 0, -10);
|
||||
CREATE VIEW IF NOT EXISTS v_T_8516 AS SELECT C FROM T;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_t1_5754 AS SELECT b FROM t1;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T WHERE B IN (SELECT B FROM T LIMIT 0);
|
||||
DETACH DATABASE aux15;
|
||||
WITH cte AS (SELECT * FROM abc LIMIT 1) DELETE FROM abc WHERE a IN (SELECT a FROM cte) AND 1=0;
|
||||
WITH RECURSIVE vals(x) AS (SELECT C FROM T WHERE C IS NOT NULL UNION ALL SELECT C FROM T WHERE C IS NOT NULL LIMIT 10) SELECT * FROM vals;
|
||||
ALTER TABLE t1 RENAME COLUMN c TO c_r3776;
|
||||
DETACH DATABASE aux79;
|
||||
SELECT * FROM T t1 RIGHT JOIN T t2 ON t1.A = (SELECT A FROM T WHERE A = t1.A);
|
||||
INSERT OR ABORT INTO T VALUES ('x', 0, NULL);
|
||||
SELECT GROUP_CONCAT(c, '.') OVER (PARTITION BY c ORDER BY c ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
|
||||
ATTACH DATABASE ':memory:' AS aux79;
|
||||
ATTACH DATABASE ':memory:' AS aux15;
|
||||
.print https://yewtu.be/watch?v=dQw4w9WgXcQ
|
||||
PRAGMA vdbe_listing = 2147483648;
|
||||
PRAGMA short_column_names = YES;
|
||||
SAVEPOINT sp5958;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (concat(1, 1, 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
BEGIN;
|
||||
create TABLE main.abc(a, b, c, PRIMARY KEY(a, b));
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c REAL,
|
||||
d REAL
|
||||
);
|
||||
INSERT INTO T VALUES (json_valid(1, 4),'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C DOUBLE PRECISION
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('b', 'q', -0.000000001);
|
||||
INSERT INTO T VALUES ('c', 'r', 0.0);
|
||||
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
|
||||
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('f', 't', 750.25);
|
||||
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) AS F FROM T GROUP BY B;
|
||||
SELECT b FROM T WHERE NOT NOT (ABS(c) > 5 OR ABS(d) > 5) ;
|
||||
INSERT INTO abc VALUES(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;
|
||||
ALTER TABLE T RENAME TO T_r2547;
|
||||
SELECT b, (SELECT AVG(b) FROM abc) AS avg_val FROM abc;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL, NULL);
|
||||
SELECT AVG(B) FROM T;
|
||||
SELECT * FROM t1 WHERE c < ANY (SELECT c FROM t1);
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_7090 AFTER INSERT ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp5958;
|
||||
RELEASE SAVEPOINT sp5958;
|
||||
UPDATE abc SET a = NULL WHERE a IS NOT NULL RETURNING *;
|
||||
DROP VIEW IF EXISTS abc;
|
||||
DELETE FROM t1 WHERE rowid = 76;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
UPDATE T SET A = NULL WHERE 1;
|
||||
ALTER TABLE T RENAME TO T_r3110;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
ALTER TABLE abc DROP COLUMN a;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_1503 BEFORE UPDATE OF a ON abc FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_abc_3299 ON abc(lower(b)) WHERE b IS NOT NULL;
|
||||
WITH cte AS (SELECT "123" AS x) SELECT x + 0 FROM cte;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_3167 BEFORE UPDATE OF c ON abc FOR EACH ROW BEGIN INSERT INTO abc(c) VALUES (NULL); END;
|
||||
SELECT STRING_AGG(C) FROM T;
|
||||
INSERT OR IGNORE INTO abc VALUES (NULL, 9, 'x');
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT * 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 T;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR IGNORE INTO t1 VALUES (3, '', 0, -10);
|
||||
CREATE VIEW IF NOT EXISTS v_T_8516 AS SELECT C FROM T;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_t1_5754 AS SELECT b FROM t1;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T WHERE B IN (SELECT B FROM T LIMIT 0);
|
||||
DETACH DATABASE aux15;
|
||||
WITH cte AS (SELECT * FROM abc LIMIT 1) DELETE FROM abc WHERE a IN (SELECT a FROM cte) AND 1=0;
|
||||
WITH RECURSIVE vals(x) AS (SELECT C FROM T WHERE C IS NOT NULL UNION ALL SELECT C FROM T WHERE C IS NOT NULL LIMIT 10) SELECT * FROM vals;
|
||||
ALTER TABLE t1 RENAME COLUMN c TO c_r3776;
|
||||
DETACH DATABASE aux79;
|
||||
SELECT * FROM T t1 RIGHT JOIN T t2 ON t1.A = (SELECT A FROM T WHERE A = t1.A);
|
||||
INSERT OR ABORT INTO T VALUES ('x', 0, NULL);
|
||||
SELECT GROUP_CONCAT(c, '.') OVER (PARTITION BY c ORDER BY c ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
|
||||
ATTACH DATABASE ':memory:' AS aux79;
|
||||
ATTACH DATABASE ':memory:' AS aux15;
|
||||
.print https://yewtu.be/watch?v=dQw4w9WgXcQ
|
||||
PRAGMA vdbe_listing = 2147483648;
|
||||
PRAGMA short_column_names = YES;
|
||||
SAVEPOINT sp5958;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (concat(1, 1, 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
BEGIN;
|
||||
create TABLE main.abc(a, b, c, PRIMARY KEY(a, b));
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c REAL,
|
||||
d REAL
|
||||
);
|
||||
INSERT INTO T VALUES (json_valid(1, 4),'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C DOUBLE PRECISION
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('b', 'q', -0.000000001);
|
||||
INSERT INTO T VALUES ('c', 'r', 0.0);
|
||||
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
|
||||
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('f', 't', 750.25);
|
||||
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) AS F FROM T GROUP BY B;
|
||||
SELECT b FROM T WHERE NOT NOT (ABS(c) > 5 OR ABS(d) > 5) ;
|
||||
INSERT INTO abc VALUES(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;
|
||||
ALTER TABLE T RENAME TO T_r2547;
|
||||
SELECT b, (SELECT AVG(b) FROM abc) AS avg_val FROM abc;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL, NULL);
|
||||
SELECT AVG(B) FROM T;
|
||||
SELECT * FROM t1 WHERE c < ANY (SELECT c FROM t1);
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_7090 AFTER INSERT ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp5958;
|
||||
RELEASE SAVEPOINT sp5958;
|
||||
UPDATE abc SET a = NULL WHERE a IS NOT NULL RETURNING *;
|
||||
DROP VIEW IF EXISTS abc;
|
||||
DELETE FROM t1 WHERE rowid = 76;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
UPDATE T SET A = NULL WHERE 1;
|
||||
ALTER TABLE T RENAME TO T_r3110;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
ALTER TABLE abc DROP COLUMN a;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_1503 BEFORE UPDATE OF a ON abc FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_abc_3299 ON abc(lower(b)) WHERE b IS NOT NULL;
|
||||
WITH cte AS (SELECT "123" AS x) SELECT x + 0 FROM cte;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_3167 BEFORE UPDATE OF c ON abc FOR EACH ROW BEGIN INSERT INTO abc(c) VALUES (NULL); END;
|
||||
SELECT STRING_AGG(C) FROM T;
|
||||
INSERT OR IGNORE INTO abc VALUES (NULL, 9, 'x');
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT * 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 T;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR IGNORE INTO t1 VALUES (3, '', 0, -10);
|
||||
CREATE VIEW IF NOT EXISTS v_T_8516 AS SELECT C FROM T;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_t1_5754 AS SELECT b FROM t1;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T WHERE B IN (SELECT B FROM T LIMIT 0);
|
||||
DETACH DATABASE aux15;
|
||||
WITH cte AS (SELECT * FROM abc LIMIT 1) DELETE FROM abc WHERE a IN (SELECT a FROM cte) AND 1=0;
|
||||
WITH RECURSIVE vals(x) AS (SELECT C FROM T WHERE C IS NOT NULL UNION ALL SELECT C FROM T WHERE C IS NOT NULL LIMIT 10) SELECT * FROM vals;
|
||||
ALTER TABLE t1 RENAME COLUMN c TO c_r3776;
|
||||
DETACH DATABASE aux79;
|
||||
SELECT * FROM T t1 RIGHT JOIN T t2 ON t1.A = (SELECT A FROM T WHERE A = t1.A);
|
||||
INSERT OR ABORT INTO T VALUES ('x', 0, NULL);
|
||||
SELECT GROUP_CONCAT(c, '.') OVER (PARTITION BY c ORDER BY c ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
|
||||
ATTACH DATABASE ':memory:' AS aux79;
|
||||
ATTACH DATABASE ':memory:' AS aux15;
|
||||
.print https://yewtu.be/watch?v=dQw4w9WgXcQ
|
||||
PRAGMA vdbe_listing = 2147483648;
|
||||
PRAGMA short_column_names = YES;
|
||||
SAVEPOINT sp5958;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (concat(1, 1, 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
BEGIN;
|
||||
create TABLE main.abc(a, b, c, PRIMARY KEY(a, b));
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c REAL,
|
||||
d REAL
|
||||
);
|
||||
INSERT INTO T VALUES (json_valid(1, 4),'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C DOUBLE PRECISION
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('b', 'q', -0.000000001);
|
||||
INSERT INTO T VALUES ('c', 'r', 0.0);
|
||||
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
|
||||
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('f', 't', 750.25);
|
||||
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) AS F FROM T GROUP BY B;
|
||||
SELECT b FROM T WHERE NOT NOT (ABS(c) > 5 OR ABS(d) > 5) ;
|
||||
INSERT INTO abc VALUES(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;
|
||||
ALTER TABLE T RENAME TO T_r2547;
|
||||
SELECT b, (SELECT AVG(b) FROM abc) AS avg_val FROM abc;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL, NULL);
|
||||
SELECT AVG(B) FROM T;
|
||||
SELECT * FROM t1 WHERE c < ANY (SELECT c FROM t1);
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_7090 AFTER INSERT ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp5958;
|
||||
RELEASE SAVEPOINT sp5958;
|
||||
UPDATE abc SET a = NULL WHERE a IS NOT NULL RETURNING *;
|
||||
DROP VIEW IF EXISTS abc;
|
||||
DELETE FROM t1 WHERE rowid = 76;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
UPDATE T SET A = NULL WHERE 1;
|
||||
ALTER TABLE T RENAME TO T_r3110;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
ALTER TABLE abc DROP COLUMN a;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_1503 BEFORE UPDATE OF a ON abc FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
SELECT COUNT(*) FILTER (WHERE /**/ d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_abc_3299 ON abc(lower(b)) WHERE b IS NOT NULL;
|
||||
WITH cte AS (SELECT "123" AS x) SELECT x + 0 FROM cte;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_3167 BEFORE UPDATE OF c ON abc FOR EACH ROW BEGIN INSERT INTO abc(c) VALUES (NULL); END;
|
||||
SELECT STRING_AGG(C) FROM T;
|
||||
INSERT OR IGNORE INTO abc VALUES (NULL, 9, 'x');
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT * 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 T;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR IGNORE INTO t1 VALUES (3, '', 0, -10);
|
||||
CREATE VIEW IF NOT EXISTS v_T_8516 AS SELECT C FROM T;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_t1_5754 AS SELECT b FROM t1;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T WHERE B IN (SELECT B FROM T LIMIT 0);
|
||||
DETACH DATABASE aux15;
|
||||
WITH cte AS (SELECT * FROM abc LIMIT 1) DELETE FROM abc WHERE a IN (SELECT a FROM cte) AND 1=0;
|
||||
WITH RECURSIVE vals(x) AS (SELECT C FROM T WHERE C IS NOT NULL UNION ALL SELECT C FROM T WHERE C IS NOT NULL LIMIT 10) SELECT * FROM vals;
|
||||
ALTER TABLE t1 RENAME COLUMN c TO c_r3776;
|
||||
DETACH DATABASE aux79;
|
||||
SELECT * FROM T t1 RIGHT JOIN T t2 ON t1.A = (SELECT A FROM T WHERE A = t1.A);
|
||||
INSERT OR ABORT INTO T VALUES ('x', 0, NULL);
|
||||
SELECT GROUP_CONCAT(c, '.') OVER (PARTITION BY c ORDER BY c ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
|
||||
ATTACH DATABASE ':memory:' AS aux79;
|
||||
ATTACH DATABASE ':memory:' AS aux15;
|
||||
.print https://yewtu.be/watch?v=dQw4w9WgXcQ
|
||||
PRAGMA vdbe_listing = 2147483648;
|
||||
PRAGMA short_column_names = YES;
|
||||
SAVEPOINT sp5958;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (concat(1, 1, 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
BEGIN;
|
||||
create TABLE main.abc(a, b, c, PRIMARY KEY(a, b));
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c REAL,
|
||||
d REAL
|
||||
);
|
||||
INSERT INTO T VALUES (json_valid(1, 4),'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C DOUBLE PRECISION
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('b', 'q', -0.000000001);
|
||||
INSERT INTO T VALUES ('c', 'r', 0.0);
|
||||
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
|
||||
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('f', 't', 750.25);
|
||||
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) AS F FROM T GROUP BY B;
|
||||
SELECT b FROM T WHERE NOT NOT (ABS(c) > 5 OR ABS(d) > 5) ;
|
||||
INSERT INTO abc VALUES(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;
|
||||
ALTER TABLE T RENAME TO T_r2547;
|
||||
SELECT b, (SELECT AVG(b) FROM abc) AS avg_val FROM abc;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL, NULL);
|
||||
SELECT AVG(B) FROM T;
|
||||
SELECT * FROM t1 WHERE c < ANY (SELECT c FROM t1);
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_7090 AFTER INSERT ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp5958;
|
||||
RELEASE SAVEPOINT sp5958;
|
||||
UPDATE abc SET a = NULL WHERE a IS NOT NULL RETURNING *;
|
||||
DROP VIEW IF EXISTS abc;
|
||||
DELETE FROM t1 WHERE rowid = 76;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
UPDATE T SET A = NULL WHERE 1;
|
||||
ALTER TABLE T RENAME TO T_r3110;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
ALTER TABLE abc DROP COLUMN a;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_1503 BEFORE UPDATE OF a ON abc FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_abc_3299 ON abc(lower(b)) WHERE b IS NOT NULL;
|
||||
WITH cte AS (SELECT "123" AS x) SELECT x + 0 FROM cte;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_3167 BEFORE UPDATE OF c ON abc FOR EACH ROW BEGIN INSERT INTO abc(c) VALUES (NULL); END;
|
||||
SELECT STRING_AGG(C) FROM T;
|
||||
INSERT OR IGNORE INTO abc VALUES (NULL, 9, 'x');
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT * 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 T;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR IGNORE INTO t1 VALUES (3, '', 0, -10);
|
||||
CREATE VIEW IF NOT EXISTS v_T_8516 AS SELECT C FROM T;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_t1_5754 AS SELECT b FROM t1;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T WHERE B IN (SELECT B FROM T LIMIT 0);
|
||||
DETACH DATABASE aux15;
|
||||
WITH cte AS (SELECT * FROM abc LIMIT 1) DELETE FROM abc WHERE a IN (SELECT a FROM cte) AND 1=0;
|
||||
WITH RECURSIVE vals(x) AS (SELECT C FROM T WHERE C IS NOT NULL UNION ALL SELECT C FROM T WHERE C IS NOT NULL LIMIT 10) SELECT * FROM vals;
|
||||
ALTER TABLE t1 RENAME COLUMN c TO c_r3776;
|
||||
DETACH DATABASE aux79;
|
||||
SELECT * FROM T t1 RIGHT JOIN T t2 ON t1.A = (SELECT A FROM T WHERE A = t1.A);
|
||||
INSERT OR ABORT INTO T VALUES ('x', 0, NULL);
|
||||
SELECT GROUP_CONCAT(c, '.') OVER (PARTITION BY c ORDER BY c ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
|
||||
ATTACH DATABASE ':memory:' AS aux79;
|
||||
ATTACH DATABASE ':memory:' AS aux15;
|
||||
.print https://yewtu.be/watch?v=dQw4w9WgXcQ
|
||||
PRAGMA vdbe_listing = 2147483648;
|
||||
PRAGMA short_column_names = YES;
|
||||
SAVEPOINT sp5958;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (concat(1, 1, 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
BEGIN;
|
||||
create TABLE main.abc(a, b, c, PRIMARY KEY(a, b));
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c REAL,
|
||||
d REAL
|
||||
);
|
||||
INSERT INTO T VALUES (json_valid(1, 4),'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C DOUBLE PRECISION
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('b', 'q', -0.000000001);
|
||||
INSERT INTO T VALUES ('c', 'r', 0.0);
|
||||
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
|
||||
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('f', 't', 750.25);
|
||||
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) AS F FROM T GROUP BY B;
|
||||
SELECT b FROM T WHERE NOT NOT (ABS(c) > 5 OR ABS(d) > 5) ;
|
||||
INSERT INTO abc VALUES(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;
|
||||
ALTER TABLE T RENAME TO T_r2547;
|
||||
SELECT b, (SELECT AVG(b) FROM abc) AS avg_val FROM abc;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL, NULL);
|
||||
SELECT AVG(B) FROM T;
|
||||
SELECT * FROM t1 WHERE c < ANY (SELECT c FROM t1);
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_7090 AFTER INSERT ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp5958;
|
||||
RELEASE SAVEPOINT sp5958;
|
||||
UPDATE abc SET a = NULL WHERE a IS NOT NULL RETURNING *;
|
||||
DROP VIEW IF EXISTS abc;
|
||||
DELETE FROM t1 WHERE rowid = 76;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
UPDATE T SET A = NULL WHERE 1;
|
||||
ALTER TABLE T RENAME TO T_r3110;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
ALTER TABLE abc DROP COLUMN a;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_1503 BEFORE UPDATE OF a ON abc FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_abc_3299 ON abc(lower(b)) WHERE b IS NOT NULL;
|
||||
WITH cte AS (SELECT "123" AS x) SELECT x + 0 FROM cte;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_3167 BEFORE UPDATE OF c ON abc FOR EACH ROW BEGIN INSERT INTO abc(c) VALUES (NULL); END;
|
||||
SELECT STRING_AGG(C) FROM T;
|
||||
INSERT OR IGNORE INTO abc VALUES (NULL, 9, 'x');
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT * 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 T;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR IGNORE INTO t1 VALUES (3, '', 0, -10);
|
||||
CREATE VIEW IF NOT EXISTS v_T_8516 AS SELECT C FROM T;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_t1_5754 AS SELECT b FROM t1;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T WHERE B IN (SELECT B FROM T LIMIT 0);
|
||||
DETACH DATABASE aux15;
|
||||
WITH cte AS (SELECT * FROM abc LIMIT 1) DELETE FROM abc WHERE a IN (SELECT a FROM cte) AND 1=0;
|
||||
WITH RECURSIVE vals(x) AS (SELECT C FROM T WHERE C IS NOT NULL UNION ALL SELECT C FROM T WHERE C IS NOT NULL LIMIT 10) SELECT * FROM vals;
|
||||
ALTER TABLE t1 RENAME COLUMN c TO c_r3776;
|
||||
DETACH DATABASE aux79;
|
||||
SELECT * FROM T t1 RIGHT JOIN T t2 ON t1.A = (SELECT A FROM T WHERE A = t1.A);
|
||||
INSERT OR ABORT INTO T VALUES ('x', 0, NULL);
|
||||
SELECT GROUP_CONCAT(c, '.') OVER (PARTITION BY c ORDER BY c ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
|
||||
|
||||
SELECT * FROM T t1 JOIN (SELECT * FROM T) AS sub ON t1.B = sub.B;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
PRAGMA vdbe_trace = OFF;
|
||||
DETACH DATABASE aux57;
|
||||
ALTER TABLE T RENAME COLUMN B TO B_r974;
|
||||
SELECT * FROM T t1 JOIN (SELECT * FROM T) AS sub ON t1.A = sub.A;
|
||||
SELECT c, (SELECT c FROM abc LIMIT 1) AS first_val FROM abc;
|
||||
INSERT INTO t1 VALUES (1, 1, 'x', 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
|
||||
WITH cte AS (SELECT c, COUNT(*) AS cnt FROM t1 GROUP BY c) SELECT * FROM cte;
|
||||
UPDATE T SET C = NULL RETURNING *;
|
||||
SELECT RANK() OVER (ORDER BY a RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM t1;
|
||||
VACUUM;
|
||||
WITH cte AS (SELECT * FROM abc), cte2 AS (SELECT * FROM cte) SELECT * FROM cte2;
|
||||
SELECT * FROM t1 AS a LEFT OUTER JOIN abc AS b ON a.rowid = b.rowid;
|
||||
SELECT MIN(C) FROM T;
|
||||
INSERT INTO T VALUES ('x', 'x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
|
||||
INSERT INTO t1 VALUES ('x', 'x', NULL, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
|
||||
VACUUM;
|
||||
SELECT * FROM abc WHERE b < ANY (SELECT b FROM abc);
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp2410;
|
||||
RELEASE SAVEPOINT sp2410;
|
||||
CREATE VIEW IF NOT EXISTS v_abc_7604 AS SELECT b FROM abc;
|
||||
PRAGMA vdbe_trace = ON;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_913 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END;
|
||||
ALTER TABLE abc RENAME COLUMN a TO a_r6922;
|
||||
DELETE FROM t1 WHERE 1;
|
||||
DELETE FROM abc WHERE c IS NULL RETURNING *;
|
||||
ALTER TABLE t1 DROP COLUMN c;
|
||||
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
|
||||
UPDATE abc SET c = NULL WHERE 1 RETURNING *;
|
||||
REINDEX T;
|
||||
DROP TRIGGER IF EXISTS T;
|
||||
ALTER TABLE T ADD COLUMN extra_2614 MEDIUMINT COLLATE NOCASE;
|
||||
REINDEX T;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_2917 ON t1(lower(d)) WHERE d IS NOT NULL;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
c|1700
|
||||
b|4000
|
||||
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
|
||||
c|1700
|
||||
b|4000
|
||||
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,83 @@
|
||||
## 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 REAL,
|
||||
b TEXT,
|
||||
c REAL
|
||||
);
|
||||
INSERT INTO T VALUES ('a','b',jsonb_patch(sqrt(1.0), 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 PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
ATTACH DATABASE ':memory:' AS aux7;
|
||||
PRAGMA schema_version;
|
||||
.progress NULL
|
||||
.timer format('%s')
|
||||
PRAGMA /* NTH_VALUE({c}, 1) */ automatic_index = FALSE;
|
||||
SAVEPOINT sp9691;
|
||||
PRAGMA cell_size_check = YES;
|
||||
SELECT json_pretty(atan2((ln(json_remove(0)) * 1), 0), '' || (' '))x0ACB29BM205381;
|
||||
-- PRAGMA analysis_limit = 50;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT
|
||||
1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp9691;
|
||||
RELEASE SAVEPOINT sp9691;
|
||||
VACUUM;
|
||||
DETACH DATABASE aux7;
|
||||
DELETE FROM T WHERE 0 RETURNING *;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T_2467 AFTER UPDATE ON T FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
ALTER TABLE t1 RENAME TO t1_r5091;
|
||||
DROP TRIGGER IF EXISTS 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
|
||||
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
@@ -0,0 +1,142 @@
|
||||
## 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 aux1;
|
||||
SAVEPOINT sp9324;
|
||||
.timer on
|
||||
PRAGMA parser_trace = FALSE;
|
||||
ATTACH DATABASE '' || (':memory:') AS aux81;
|
||||
PRAGMA reverse_unordered_selects = ON;
|
||||
PRAGMA max_page_count;
|
||||
PRAGMA case_sensitive_like = OFF;
|
||||
PRAGMA writable_schema = NO;
|
||||
.quit
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1(a int, b int);
|
||||
INSERT INTO t1 VALUES(glob(NULL, NULL),NULL),(CAST(CAST(CAST(log10(if('"', cosh((0 + 5035996954804773676)), 1, 5035996954804773676, 5035996954804773676)) AS CLOB) AS UNSIGNED BIG INT) AS SMALLINT),18),(2,19);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT x, y FROM (SELECT 98 AS x, 99 AS y UNION SELECT a AS x, sum(b) AS y FROM _m GROUP BY /* PRAGMA secure_delete = TRUE; */ a) AS w WHERE NOT y>=20 ORDER BY +x;
|
||||
SELECT x, y FROM (SELECT a AS x, sum(b) AS y FROM t1 GROUP BY a UNION SELECT 98 AS x, 99 AS y) AS w WHERE y>=20 ORDER BY +x;
|
||||
DROP VIEW IF EXISTS t1;
|
||||
INSERT INTO t1 VALUES (NULL, NULL);
|
||||
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 "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;
|
||||
INSERT INTO T2 VALUES (NULL, NULL);
|
||||
ALTER TABLE T2 ADD COLUMN extra_2116 NUMERIC DEFAULT 0;
|
||||
REINDEX;
|
||||
UPDATE T2 SET A = 'x' WHERE A IS NOT NULL RETURNING *;
|
||||
SELECT * FROM (SELECT Y, COUNT(*) FROM T2 GROUP BY Y) AS sub;
|
||||
ALTER TABLE t1 DROP COLUMN b;
|
||||
SELECT LAG(X, 0) OVER (PARTITION BY X ORDER BY X ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T1;
|
||||
SELECT 0x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
SELECT LEAD(X, 1, NULL) OVER (PARTITION BY X ORDER BY X ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T1;
|
||||
PRAGMA vdbe_listing = YES;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_T1_7197 AS SELECT A FROM T1;
|
||||
ALTER TABLE T1 DROP COLUMN A;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_4345 ON T1((X + 1)) WHERE X IS NOT NULL;
|
||||
SELECT * FROM T1;
|
||||
DETACH DATABASE aux81;
|
||||
SELECT * FROM t1 WHERE EXISTS (SELECT 1 FROM t1 WHERE b > 0);
|
||||
VACUUM main;
|
||||
SELECT * FROM T2 WHERE A IN (SELECT A FROM T2 WHERE A IS NOT NULL);
|
||||
ALTER TABLE t1 RENAME TO t1_r6007;
|
||||
ALTER TABLE T1 RENAME TO T1_r5111;
|
||||
SELECT * FROM t1 WHERE EXISTS (SELECT 1 FROM t1 WHERE a = NULL);
|
||||
SELECT COUNT(X) OVER (ORDER BY X RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T1;
|
||||
SELECT NTH_VALUE(b, -1) OVER (ORDER BY b GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t1;
|
||||
ALTER TABLE t1 DROP COLUMN b;
|
||||
INSERT INTO T1 VALUES (NULL, 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
|
||||
SELECT * FROM t1 WHERE b IN (SELECT b FROM t1 WHERE b GLOB "*");
|
||||
INSERT OR FAIL INTO t1 VALUES (0, 0);
|
||||
REINDEX;
|
||||
INSERT INTO T1 VALUES ('x', NULL) ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
|
||||
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;
|
||||
ANALYZE T2;
|
||||
WITH m AS MATERIALIZED (SELECT * FROM T2) SELECT m.A FROM m JOIN m AS m2 ON m.A = m2.A;
|
||||
ALTER TABLE t1 RENAME TO t1_r3665;
|
||||
DELETE FROM T1 WHERE rowid = 99 RETURNING *;
|
||||
WITH RECURSIVE cnt(x) AS (VALUES(0) UNION ALL SELECT x-1 FROM cnt WHERE x>-10) SELECT * FROM cnt;
|
||||
INSERT INTO T1 VALUES (NULL, NULL);
|
||||
REINDEX;
|
||||
ALTER TABLE T2 RENAME TO T2_r3541;
|
||||
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<23) SELECT COUNT(*) FROM cnt;
|
||||
SELECT * FROM T WHERE A NOT IN (SELECT A FROM T);
|
||||
|
||||
SELECT COUNT(*) FROM T1;
|
||||
INSERT INTO T1 VALUES (NULL, 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_2111 AS SELECT a FROM t1;
|
||||
INSERT INTO T1 SELECT * FROM T1;
|
||||
SELECT NTH_VALUE(a, 2) OVER (ORDER BY a) FROM t1;
|
||||
ALTER TABLE t1 RENAME TO t1_r4405;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp9324;
|
||||
RELEASE SAVEPOINT sp9324;
|
||||
INSERT INTO T2 DEFAULT VALUES;
|
||||
DETACH DATABASE aux1;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
REINDEX t1;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
Run Time: real 0.000 user 0.000000 sys 0.000024
|
||||
Run Time: real 0.000 user 0.000000 sys 0.000032
|
||||
Run Time: real 0.000 user 0.000000 sys 0.000004
|
||||
1073741823
|
||||
Run Time: real 0.000 user 0.000000 sys 0.000008
|
||||
Run Time: real 0.000 user 0.000000 sys 0.000005
|
||||
Run Time: real 0.000 user 0.000000 sys 0.000004
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
Run Time: real 0.000003 user 0.000011 sys 0.000000
|
||||
Run Time: real 0.000013 user 0.000013 sys 0.000000
|
||||
Run Time: real 0.000002 user 0.000002 sys 0.000000
|
||||
4294967294
|
||||
Run Time: real 0.000004 user 0.000004 sys 0.000000
|
||||
Run Time: real 0.000003 user 0.000003 sys 0.000000
|
||||
Run Time: real 0.000001 user 0.000001 sys 0.000000
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
@@ -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
|
||||
ATTACH DATABASE ':memory:' AS aux98;
|
||||
PRAGMA writable_schema = YES;
|
||||
PRAGMA short_column_names = OFF;
|
||||
PRAGMA vdbe_trace = YES;
|
||||
ATTACH DATABASE '' || (':memory:') AS aux22;
|
||||
BEGIN DEFERRED;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
InsErt INTO t1 VALUES (json_valid(ln(-json_set(sinh(x'01'), '$.key', (log(-(-(9223372036854775809))) * 1))), 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
DROP TABLE IF EXISTS t1;
|
||||
DROP TABLE IF EXISTS t2;
|
||||
CREATE TABLE t1(x);
|
||||
INSERT INTO t1 VALUES(-2147483649);
|
||||
CREATE TABLE t2(y,z);
|
||||
INSERT INTO t2 VALUES(2,3);
|
||||
CREATE INDEX t2y ON t2(y);
|
||||
SELECT * FROM t1,(SELECT * FROM t2 WHERE NOT NOT (NOT NOT (y=2)) ORDER BY y,z);
|
||||
|
||||
SELECT GROUP_CONCAT(x, '.') OVER (PARTITION BY x ORDER BY x ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1;
|
||||
INSERT OR ABORT INTO t2 VALUES (0, 'x');
|
||||
END;
|
||||
ANALYZE;
|
||||
REINDEX;
|
||||
SELECT * FROM t2;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_t2_6543 ON t2(y COLLATE NOCASE) WHERE y > 0;
|
||||
SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DROP INDEX IF EXISTS t2;
|
||||
DETACH DATABASE aux22;
|
||||
INSERT INTO t2 VALUES (NULL, NULL);
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_9456 AFTER UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
DROP TRIGGER IF EXISTS t2;
|
||||
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;
|
||||
|
||||
SELECT COUNT(*) FROM T2;
|
||||
ALTER TABLE t1 ADD COLUMN extra_7517 FLOA DEFAULT (abs(random()) % 1000);
|
||||
DROP TABLE IF EXISTS T1;
|
||||
|
||||
SELECT COUNT(*) FROM T1;
|
||||
VACUUM;
|
||||
ALTER TABLE T1 RENAME TO T1_r4172;
|
||||
INSERT INTO T1 VALUES (NULL, NULL, NULL) ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
|
||||
SELECT GROUP_CONCAT(y, '|') FROM t2;
|
||||
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;
|
||||
ALTER TABLE T1 ADD COLUMN extra_7361 BOOLEAN DEFAULT (random());
|
||||
ALTER TABLE t1 RENAME TO t1_r8174;
|
||||
DROP TABLE IF EXISTS T2;
|
||||
PRAGMA reverse_unordered_selects;
|
||||
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;
|
||||
SELECT LAG(A, 1, NULL) OVER (PARTITION BY A ORDER BY A) FROM T2;
|
||||
WITH RECURSIVE pair(a,b) AS (VALUES(0,1) UNION ALL SELECT b, a+b FROM pair WHERE b<100) SELECT * FROM pair;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T2_9819 AFTER DELETE ON T2 BEGIN INSERT INTO T2(A) VALUES (NULL); END;
|
||||
SELECT * FROM T1 AS a LEFT OUTER JOIN T1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE x > (SELECT AVG(x) FROM t1);
|
||||
INSERT INTO T2 VALUES (NULL, 'x') ON CONFLICT(X) DO UPDATE SET X = excluded.X, A = excluded.A;
|
||||
PRAGMA checkpoint_fullsync = NO;
|
||||
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;
|
||||
DETACH DATABASE aux98;
|
||||
ATTACH DATABASE ':memory:' AS aux98;
|
||||
PRAGMA writable_schema = YES;
|
||||
PRAGMA short_column_names = OFF;
|
||||
PRAGMA vdbe_trace = YES;
|
||||
ATTACH DATABASE '' || (':memory:') AS aux22;
|
||||
BEGIN DEFERRED;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
InsErt INTO t1 VALUES (json_valid(ln(-json_set(sinh(x'01'), '$.key', (log(-(-(9223372036854775809))) * 1))), 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
DROP TABLE IF EXISTS t1;
|
||||
DROP TABLE IF EXISTS t2;
|
||||
CREATE TABLE t1(x);
|
||||
INSERT INTO t1 VALUES(-2147483649);
|
||||
CREATE TABLE t2(y,z);
|
||||
INSERT INTO t2 VALUES(2,3);
|
||||
CREATE INDEX t2y ON t2(y);
|
||||
SELECT * FROM t1,(SELECT * FROM t2 WHERE NOT NOT (NOT NOT (y=2)) ORDER BY y,z);
|
||||
|
||||
SELECT GROUP_CONCAT(x, '.') OVER (PARTITION BY x ORDER BY x ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1;
|
||||
INSERT OR ABORT INTO t2 VALUES (0, 'x');
|
||||
END;
|
||||
ANALYZE;
|
||||
REINDEX;
|
||||
SELECT * FROM t2;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_t2_6543 ON t2(y COLLATE NOCASE) WHERE y > 0;
|
||||
SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DROP INDEX IF EXISTS t2;
|
||||
DETACH DATABASE aux22;
|
||||
INSERT INTO t2 VALUES (NULL, NULL);
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_9456 AFTER UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
DROP TRIGGER IF EXISTS t2;
|
||||
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;
|
||||
|
||||
SELECT COUNT(*) FROM T2;
|
||||
ALTER TABLE t1 ADD COLUMN extra_7517 FLOA DEFAULT (abs(random()) % 1000);
|
||||
DROP TABLE IF EXISTS T1;
|
||||
|
||||
SELECT COUNT(*) FROM T1;
|
||||
VACUUM;
|
||||
ALTER TABLE T1 RENAME TO T1_r4172;
|
||||
INSERT INTO T1 VALUES (NULL, NULL, NULL) ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
|
||||
SELECT GROUP_CONCAT(y, '|') FROM t2;
|
||||
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;
|
||||
ALTER TABLE T1 ADD COLUMN extra_7361 BOOLEAN DEFAULT (random());
|
||||
ALTER TABLE t1 RENAME TO t1_r8174;
|
||||
DROP TABLE IF EXISTS T2;
|
||||
PRAGMA reverse_unordered_selects;
|
||||
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;
|
||||
SELECT LAG(A, 1, NULL) OVER (PARTITION BY A ORDER BY A) FROM T2;
|
||||
WITH RECURSIVE pair(a,b) AS (VALUES(0,1) UNION ALL SELECT b, a+b FROM pair WHERE b<100) SELECT * FROM pair;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T2_9819 AFTER DELETE ON T2 BEGIN INSERT INTO T2(A) VALUES (NULL); END;
|
||||
SELECT * FROM T1 AS a LEFT OUTER JOIN T1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE x > (SELECT AVG(x) FROM t1);
|
||||
INSERT INTO T2 VALUES (NULL, 'x') ON CONFLICT(X) DO UPDATE SET X = excluded.X, A = excluded.A;
|
||||
PRAGMA checkpoint_fullsync = NO;
|
||||
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;
|
||||
DETACH DATABASE aux98;
|
||||
ATTACH DATABASE ':memory:' AS aux98;
|
||||
PRAGMA writable_schema = YES;
|
||||
PRAGMA short_column_names = OFF;
|
||||
PRAGMA vdbe_trace = YES;
|
||||
ATTACH DATABASE '' || (':memory:') AS aux22;
|
||||
BEGIN DEFERRED;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
InsErt INTO t1 VALUES (json_valid(ln(-json_set(sinh(x'01'), '$.key', (log(-(-(9223372036854775809))) * 1))), 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
DROP TABLE IF EXISTS t1;
|
||||
DROP TABLE IF EXISTS t2;
|
||||
CREATE TABLE t1(x);
|
||||
INSERT INTO t1 VALUES(-2147483649);
|
||||
CREATE TABLE t2(y,z);
|
||||
INSERT INTO t2 VALUES(2,3);
|
||||
CREATE INDEX t2y ON t2(y);
|
||||
SELECT * FROM t1,(SELECT * FROM t2 WHERE NOT NOT (NOT NOT (y=2)) ORDER BY y,z);
|
||||
|
||||
SELECT GROUP_CONCAT(x, '.') OVER (PARTITION BY x ORDER BY x ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1;
|
||||
INSERT OR ABORT INTO t2 VALUES (0, 'x');
|
||||
END;
|
||||
ANALYZE;
|
||||
REINDEX;
|
||||
SELECT * FROM t2;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_t2_6543 ON t2(y COLLATE NOCASE) WHERE y > 0;
|
||||
SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DROP INDEX IF EXISTS t2;
|
||||
DETACH DATABASE aux22;
|
||||
INSERT INTO t2 VALUES (NULL, NULL);
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_9456 AFTER UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
DROP TRIGGER IF EXISTS t2;
|
||||
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;
|
||||
|
||||
SELECT COUNT(*) FROM T2;
|
||||
ALTER TABLE t1 ADD COLUMN extra_7517 FLOA DEFAULT (abs(random()) % 1000);
|
||||
DROP TABLE IF EXISTS T1;
|
||||
|
||||
SELECT COUNT(*) FROM T1;
|
||||
VACUUM;
|
||||
ALTER TABLE T1 RENAME TO T1_r4172;
|
||||
INSERT INTO T1 VALUES (NULL, NULL, NULL) ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
|
||||
SELECT GROUP_CONCAT(y, '|') FROM t2;
|
||||
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;
|
||||
ALTER TABLE T1 ADD COLUMN extra_7361 BOOLEAN DEFAULT (random());
|
||||
ALTER TABLE t1 RENAME TO t1_r8174;
|
||||
DROP TABLE IF EXISTS T2;
|
||||
PRAGMA reverse_unordered_selects;
|
||||
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;
|
||||
SELECT LAG(A, 1, NULL) OVER (PARTITION BY A ORDER BY A) FROM T2;
|
||||
WITH RECURSIVE pair(a,b) AS (VALUES(0,1) UNION ALL SELECT b, a+b FROM pair WHERE b<100) SELECT * FROM pair;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T2_9819 AFTER DELETE ON T2 BEGIN INSERT INTO T2(A) VALUES (NULL); END;
|
||||
SELECT * FROM T1 AS a LEFT OUTER JOIN T1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE x > (SELECT AVG(x) FROM t1);
|
||||
INSERT INTO T2 VALUES (NULL, 'x') ON CONFLICT(X) DO UPDATE SET X = excluded.X, A = excluded.A;
|
||||
PRAGMA checkpoint_fullsync = NO;
|
||||
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;
|
||||
DETACH DATABASE aux98;
|
||||
ATTACH DATABASE ':memory:' AS aux98;
|
||||
PRAGMA writable_schema = YES;
|
||||
PRAGMA short_column_names = OFF;
|
||||
PRAGMA vdbe_trace = YES;
|
||||
ATTACH DATABASE '' || (':memory:') AS aux22;
|
||||
BEGIN DEFERRED;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
InsErt INTO t1 VALUES (json_valid(ln(-json_set(sinh(x'01'), '$.key', (log(-(-(9223372036854775809))) * 1))), 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
DROP TABLE IF EXISTS t1;
|
||||
DROP TABLE IF EXISTS t2;
|
||||
CREATE TABLE t1(x);
|
||||
INSERT INTO t1 VALUES(-2147483649);
|
||||
CREATE TABLE t2(y,z);
|
||||
INSERT INTO t2 VALUES(2,3);
|
||||
CREATE INDEX t2y ON t2(y);
|
||||
SELECT * FROM t1,(SELECT * FROM t2 WHERE NOT NOT (NOT NOT (y=2)) ORDER BY y,z);
|
||||
|
||||
SELECT GROUP_CONCAT(x, '.') OVER (PARTITION BY x ORDER BY x ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1;
|
||||
INSERT OR ABORT INTO t2 VALUES (0, 'x');
|
||||
END;
|
||||
ANALYZE;
|
||||
REINDEX;
|
||||
SELECT * FROM t2;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_t2_6543 ON t2(y COLLATE NOCASE) WHERE y > 0;
|
||||
SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DROP INDEX IF EXISTS t2;
|
||||
DETACH DATABASE aux22;
|
||||
INSERT INTO t2 VALUES (NULL, NULL);
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_9456 AFTER UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
DROP TRIGGER IF EXISTS t2;
|
||||
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;
|
||||
|
||||
SELECT COUNT(*) FROM T2;
|
||||
ALTER TABLE t1 ADD COLUMN extra_7517 FLOA DEFAULT (abs(random()) % 1000);
|
||||
DROP TABLE IF EXISTS T1;
|
||||
|
||||
SELECT COUNT(*) FROM T1;
|
||||
VACUUM;
|
||||
ALTER TABLE T1 RENAME TO T1_r4172;
|
||||
INSERT INTO T1 VALUES (NULL, NULL, NULL) ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
|
||||
SELECT GROUP_CONCAT(y, '|') FROM t2;
|
||||
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;
|
||||
ALTER TABLE T1 ADD COLUMN extra_7361 BOOLEAN DEFAULT (random());
|
||||
ALTER TABLE t1 RENAME TO t1_r8174;
|
||||
DROP TABLE IF EXISTS T2;
|
||||
PRAGMA reverse_unordered_selects;
|
||||
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;
|
||||
SELECT LAG(A, 1, NULL) OVER (PARTITION BY A ORDER BY A) FROM T2;
|
||||
WITH RECURSIVE pair(a,b) AS (VALUES(0,1) UNION ALL SELECT b, a+b FROM pair WHERE b<100) SELECT * FROM pair;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T2_9819 AFTER DELETE ON T2 BEGIN INSERT INTO T2(A) VALUES (NULL); END;
|
||||
SELECT * FROM T1 AS a LEFT OUTER JOIN T1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE x > (SELECT AVG(x) FROM t1);
|
||||
INSERT INTO T2 VALUES (NULL, 'x') ON CONFLICT(X) DO UPDATE SET X = excluded.X, A = excluded.A;
|
||||
PRAGMA checkpoint_fullsync = NO;
|
||||
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;
|
||||
DETACH DATABASE aux98;
|
||||
ATTACH DATABASE ':memory:' AS aux98;
|
||||
PRAGMA writable_schema = YES;
|
||||
PRAGMA short_column_names = OFF;
|
||||
PRAGMA vdbe_trace = YES;
|
||||
ATTACH DATABASE '' || (':memory:') AS aux22;
|
||||
BEGIN DEFERRED;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
InsErt INTO t1 VALUES (json_valid(ln(-json_set(sinh(x'01'), '$.key', (log(-(-(9223372036854775809))) * 1))), 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
DROP TABLE IF EXISTS t1;
|
||||
DROP TABLE IF EXISTS t2;
|
||||
CREATE TABLE t1(x);
|
||||
INSERT INTO t1 VALUES(-2147483649);
|
||||
CREATE TABLE t2(y,z);
|
||||
INSERT INTO t2 VALUES(2,3);
|
||||
CREATE INDEX t2y ON t2(y);
|
||||
SELECT * FROM t1,(SELECT * FROM t2 WHERE NOT NOT (NOT NOT (y=2)) ORDER BY y,z);
|
||||
|
||||
SELECT GROUP_CONCAT(x, '.') OVER (PARTITION BY x ORDER BY x ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1;
|
||||
INSERT OR ABORT INTO t2 VALUES (0, 'x');
|
||||
END;
|
||||
ANALYZE;
|
||||
REINDEX;
|
||||
SELECT * FROM t2;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_t2_6543 ON t2(y COLLATE NOCASE) WHERE y > 0;
|
||||
SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DROP INDEX IF EXISTS t2;
|
||||
DETACH DATABASE aux22;
|
||||
INSERT INTO t2 VALUES (NULL, NULL);
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_9456 AFTER UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
DROP TRIGGER IF EXISTS t2;
|
||||
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;
|
||||
|
||||
SELECT COUNT(*) FROM T2;
|
||||
ALTER TABLE t1 ADD COLUMN extra_7517 FLOA DEFAULT (abs(random()) % 1000);
|
||||
DROP TABLE IF EXISTS T1;
|
||||
|
||||
SELECT COUNT(*) FROM T1;
|
||||
VACUUM;
|
||||
ALTER TABLE T1 RENAME TO T1_r4172;
|
||||
INSERT INTO T1 VALUES (NULL, NULL, NULL) ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
|
||||
SELECT GROUP_CONCAT(y, '|') FROM t2;
|
||||
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;
|
||||
ALTER TABLE T1 ADD COLUMN extra_7361 BOOLEAN DEFAULT (random());
|
||||
ALTER TABLE t1 RENAME TO t1_r8174;
|
||||
DROP TABLE IF EXISTS T2;
|
||||
PRAGMA reverse_unordered_selects;
|
||||
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;
|
||||
SELECT LAG(A, 1, NULL) OVER (PARTITION BY A ORDER BY A) FROM T2;
|
||||
WITH RECURSIVE pair(a,b) AS (VALUES(0,1) UNION ALL SELECT b, a+b FROM pair WHERE b<100) SELECT * FROM pair;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T2_9819 AFTER DELETE ON T2 BEGIN INSERT INTO T2(A) VALUES (NULL); END;
|
||||
SELECT * FROM T1 AS a LEFT OUTER JOIN T1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE x > (SELECT AVG(x) FROM t1);
|
||||
INSERT INTO T2 VALUES (NULL, 'x') ON CONFLICT(X) DO UPDATE SET X = excluded.X, A = excluded.A;
|
||||
PRAGMA checkpoint_fullsync = NO;
|
||||
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;
|
||||
DETACH DATABASE aux98;
|
||||
|
||||
UPDATE t1 SET x = json_object('k', x) WHERE x BETWEEN 0 AND 100;
|
||||
ALTER TABLE t1 RENAME TO t1_r3577;
|
||||
```
|
||||
|
||||
## 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,53 @@
|
||||
## 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 aux28;
|
||||
CREATE TABLE main.t1(a ANY, b INT);
|
||||
INSERT INTO t1(a,b) VALUES('%',null),(null,null),((acos(char(-(-(sinh(jsonb_remove(1, '$.key')))), 2, 3, 4, 5)) + 0) -> 'key',null); /* PRAGMA read_uncommitted = TRUE; */ CREATE UNIQUE INDEX t1b ON t1(abs(b));
|
||||
SELECT quote(a), /**/ quote(b), '|' FROM t1 GROUP BY a, abs(b);
|
||||
|
||||
REINDEX;
|
||||
UPDATE t1 SET b = json_object('k', b) WHERE b IS NOT NULL RETURNING *;
|
||||
SELECT STRING_AGG(b, '|') FROM t1;
|
||||
DETACH DATABASE aux28;
|
||||
VACUUM main;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_9088 AS SELECT b FROM t1;
|
||||
PRAGMA parser_trace = OFF;
|
||||
SELECT GROUP_CONCAT(a, a) OVER (PARTITION BY a ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM t1;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_t1_9991 AS SELECT a FROM t1;
|
||||
ALTER TABLE t1 RENAME COLUMN a TO a_r7522;
|
||||
ALTER TABLE t1 ADD COLUMN extra_6255 DECIMAL(10,5) COLLATE NOCASE;
|
||||
CREATE TABLE T (
|
||||
a TEXT,
|
||||
b TEXT,
|
||||
c REAL
|
||||
);
|
||||
INSERT INTO T VALUES ('a','b',5.0), ('a','c',5.0), ('b','d',-8.25);
|
||||
SELECT a,b,c,
|
||||
RANK() OVER (PARTITION BY a ORDER BY c DESC) AS d FROM T;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
a|b|5.0|1
|
||||
a|c|5.0|1
|
||||
b|d|-8.25|1
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
@@ -0,0 +1,95 @@
|
||||
## Summary
|
||||
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
|
||||
|
||||
## Minimized query
|
||||
|
||||
```sql
|
||||
.limit
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(-6374042461028137888) 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 * FROM T;
|
||||
UPDATE T SET A = NULL WHERE 1 RETURNING *;
|
||||
DELETE FROM T WHERE B IS NULL;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_5040 AS SELECT A FROM T;
|
||||
```
|
||||
|
||||
## 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
|
||||
e|x|9223372036854775807
|
||||
f|z|2147483648
|
||||
d|y|42
|
||||
a|x|-9223372036854775808
|
||||
b|y|-1000000
|
||||
c|y|0
|
||||
d|y|42
|
||||
e|x|9223372036854775807
|
||||
f|z|2147483648
|
||||
|x|-9223372036854775808
|
||||
|y|-1000000
|
||||
|y|0
|
||||
|y|42
|
||||
|x|9223372036854775807
|
||||
|z|2147483648
|
||||
```
|
||||
|
||||
## 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
|
||||
e|x|9223372036854775807
|
||||
f|z|2147483648
|
||||
d|y|42
|
||||
a|x|-9223372036854775808
|
||||
b|y|-1000000
|
||||
c|y|0
|
||||
d|y|42
|
||||
e|x|9223372036854775807
|
||||
f|z|2147483648
|
||||
|x|-9223372036854775808
|
||||
|y|-1000000
|
||||
|y|0
|
||||
|y|42
|
||||
|x|9223372036854775807
|
||||
|z|2147483648
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
-nonce "n0Nc3"
|
||||
```
|
||||
|
||||
@@ -0,0 +1,295 @@
|
||||
## 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 ignore_check_constraints = 1;
|
||||
SAVEPOINT sp4325;
|
||||
SAVEPOINT sp5433;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (like('', 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA /**/ writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
ATTACH DATABASE ':memory:' AS aux43;
|
||||
CREATE TABLE t41(a INTEGER PRIMARY KEY, b INTEGER);
|
||||
CREATE TABLE t42(d INTEGER PRIMARY KEY, e INTEGER);
|
||||
CREATE TABLE t43(f INTEGER PRIMARY KEY, g INTEGER);
|
||||
SELECT * FROM t41 LEFT JOIN (SELECT count(*) AS cnt, x1.d FROM (t42 INNER JOIN t43 ON d=g) AS x1 WHERE x1.d>json_extract(5, '$') GROUP BY x1.d) AS x2 ON t41.b=x2.d;
|
||||
|
||||
DETACH DATABASE aux43;
|
||||
SELECT * FROM (SELECT g FROM t43 WHERE g IS NOT NULL) AS sub;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA /**/ writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
ATTACH DATABASE ':memory:' AS aux43;
|
||||
CREATE TABLE t41(a INTEGER PRIMARY KEY, b INTEGER);
|
||||
CREATE TABLE t42(d INTEGER PRIMARY KEY, e INTEGER);
|
||||
CREATE TABLE t43(f INTEGER PRIMARY KEY, g INTEGER);
|
||||
SELECT * FROM t41 LEFT JOIN (SELECT count(*) AS cnt, x1.d FROM (t42 INNER JOIN t43 ON d=g) AS x1 WHERE x1.d>json_extract(5, '$') GROUP BY x1.d) AS x2 ON t41.b=x2.d;
|
||||
|
||||
DETACH DATABASE aux43;
|
||||
SELECT * FROM (SELECT g FROM t43 WHERE g IS NOT NULL) AS sub;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA /**/ writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
ATTACH DATABASE ':memory:' AS aux43;
|
||||
CREATE TABLE t41(a INTEGER PRIMARY KEY, b INTEGER);
|
||||
CREATE TABLE t42(d INTEGER PRIMARY KEY, e INTEGER);
|
||||
CREATE TABLE t43(f INTEGER PRIMARY KEY, g INTEGER);
|
||||
SELECT * FROM t41 LEFT JOIN (SELECT count(*) AS cnt, x1.d FROM (t42 INNER JOIN t43 ON d=g) AS x1 WHERE x1.d>json_extract(5, '$') GROUP BY x1.d) AS x2 ON t41.b=x2.d;
|
||||
|
||||
DETACH DATABASE aux43;
|
||||
SELECT * FROM (SELECT g FROM t43 WHERE g IS NOT NULL) AS sub;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA /**/ writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
ATTACH DATABASE ':memory:' AS aux43;
|
||||
CREATE TABLE t41(a INTEGER PRIMARY KEY, b INTEGER);
|
||||
CREATE TABLE t42(d INTEGER PRIMARY KEY, e INTEGER);
|
||||
CREATE TABLE t43(f INTEGER PRIMARY KEY, g INTEGER);
|
||||
SELECT * FROM t41 LEFT JOIN (SELECT count(*) AS cnt, x1.d FROM (t42 INNER JOIN t43 ON d=g) AS x1 WHERE x1.d>json_extract(5, '$') GROUP BY x1.d) AS x2 ON t41.b=x2.d;
|
||||
|
||||
DETACH DATABASE aux43;
|
||||
SELECT * FROM (SELECT g FROM t43 WHERE g IS NOT NULL) AS sub;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA /**/ writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
ATTACH DATABASE ':memory:' AS aux43;
|
||||
CREATE TABLE t41(a INTEGER PRIMARY KEY, b INTEGER);
|
||||
CREATE TABLE t42(d INTEGER PRIMARY KEY, e INTEGER);
|
||||
CREATE TABLE t43(f INTEGER PRIMARY KEY, g INTEGER);
|
||||
SELECT * FROM t41 LEFT JOIN (SELECT count(*) AS cnt, x1.d FROM (t42 INNER JOIN t43 ON d=g) AS x1 WHERE x1.d>json_extract(5, '$') GROUP BY x1.d) AS x2 ON t41.b=x2.d;
|
||||
|
||||
DETACH DATABASE aux43;
|
||||
SELECT * FROM (SELECT g FROM t43 WHERE g IS NOT NULL) AS sub;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA /**/ writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
ATTACH DATABASE ':memory:' AS aux43;
|
||||
CREATE TABLE t41(a INTEGER PRIMARY KEY, b INTEGER);
|
||||
CREATE TABLE t42(d INTEGER PRIMARY KEY, e INTEGER);
|
||||
CREATE TABLE t43(f INTEGER PRIMARY KEY, g INTEGER);
|
||||
SELECT * FROM t41 LEFT JOIN (SELECT count(*) AS cnt, x1.d FROM (t42 INNER JOIN t43 ON d=g) AS x1 WHERE x1.d>json_extract(5, '$') GROUP BY x1.d) AS x2 ON t41.b=x2.d;
|
||||
|
||||
DETACH DATABASE aux43;
|
||||
SELECT * FROM (SELECT g FROM t43 WHERE g IS NOT NULL) AS sub;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA /**/ writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
ATTACH DATABASE ':memory:' AS aux43;
|
||||
CREATE TABLE t41(a INTEGER PRIMARY KEY, b INTEGER);
|
||||
CREATE TABLE t42(d INTEGER PRIMARY KEY, e INTEGER);
|
||||
CREATE TABLE t43(f INTEGER PRIMARY KEY, g INTEGER);
|
||||
SELECT * FROM t41 LEFT JOIN (SELECT count(*) AS cnt, x1.d FROM (t42 INNER JOIN t43 ON d=g) AS x1 WHERE x1.d>json_extract(5, '$') GROUP BY x1.d) AS x2 ON t41.b=x2.d;
|
||||
|
||||
DETACH DATABASE aux43;
|
||||
SELECT * FROM (SELECT g FROM t43 WHERE g IS NOT NULL) AS sub;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA /**/ writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
ATTACH DATABASE ':memory:' AS aux43;
|
||||
CREATE TABLE t41(a INTEGER PRIMARY KEY, b INTEGER);
|
||||
CREATE TABLE t42(d INTEGER PRIMARY KEY, e INTEGER);
|
||||
CREATE TABLE t43(f INTEGER PRIMARY KEY, g INTEGER);
|
||||
SELECT * FROM t41 LEFT JOIN (SELECT count(*) AS cnt, x1.d FROM (t42 INNER JOIN t43 ON d=g) AS x1 WHERE x1.d>json_extract(5, '$') GROUP BY x1.d) AS x2 ON t41.b=x2.d;
|
||||
|
||||
DETACH DATABASE aux43;
|
||||
SELECT * FROM (SELECT g FROM t43 WHERE g IS NOT NULL) AS sub;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA /**/ writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
ATTACH DATABASE ':memory:' AS aux43;
|
||||
CREATE TABLE t41(a INTEGER PRIMARY KEY, b INTEGER);
|
||||
CREATE TABLE t42(d INTEGER PRIMARY KEY, e INTEGER);
|
||||
CREATE TABLE t43(f INTEGER PRIMARY KEY, g INTEGER);
|
||||
SELECT * FROM t41 LEFT JOIN (SELECT count(*) AS cnt, x1.d FROM (t42 INNER JOIN t43 ON d=g) AS x1 WHERE x1.d>json_extract(5, '$') GROUP BY x1.d) AS x2 ON t41.b=x2.d;
|
||||
|
||||
DETACH DATABASE aux43;
|
||||
SELECT * FROM (SELECT g FROM t43 WHERE g IS NOT NULL) AS sub;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (1, 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA /**/ writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
ATTACH DATABASE ':memory:' AS aux43;
|
||||
CREATE TABLE t41(a INTEGER PRIMARY KEY, b INTEGER);
|
||||
CREATE TABLE t42(d INTEGER PRIMARY KEY, e INTEGER);
|
||||
CREATE TABLE t43(f INTEGER PRIMARY KEY, g INTEGER);
|
||||
SELECT * FROM t41 LEFT JOIN (SELECT count(*) AS cnt, x1.d FROM (t42 INNER JOIN t43 ON d=g) AS x1 WHERE x1.d>json_extract(5, '$') GROUP BY x1.d) AS x2 ON t41.b=x2.d;
|
||||
|
||||
DETACH DATABASE aux43;
|
||||
SELECT * FROM (SELECT g FROM t43 WHERE g IS NOT NULL) AS sub;
|
||||
|
||||
REINDEX t42;
|
||||
|
||||
SELECT COUNT(*) FROM t43;
|
||||
ALTER TABLE t42 ADD COLUMN extra_4589 TEXT UNIQUE;
|
||||
SELECT STRING_AGG(g, '|') FROM t43;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
|
||||
SELECT COUNT(*) FROM t42;
|
||||
PRAGMA legacy_alter_table = FALSE;
|
||||
RELEASE sp5433;
|
||||
SELECT g FROM t43 WHERE +g = (SELECT MAX(g) FROM t43);
|
||||
RELEASE sp4325;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
|
||||
WARNING: writing to an imposter table will corrupt the "t1bc" index!
|
||||
Braun|30|3
|
||||
Wernher|10|0
|
||||
von|20|2
|
||||
Braun|30
|
||||
Wernher|10
|
||||
von|20
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
|
||||
Braun|30|3
|
||||
Wernher|10|0
|
||||
von|20|2
|
||||
Braun|30
|
||||
Wernher|10
|
||||
von|20
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
.recover
|
||||
PRAGMA checkpoint_fullsync = OFF;
|
||||
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;
|
||||
VACUUM main;
|
||||
VACUUM;
|
||||
CREATE INDEX IF NOT EXISTS idx_T_4915 ON T(lower(b)) WHERE b > 0;
|
||||
ALTER TABLE T RENAME COLUMN c TO c_r7795;
|
||||
ALTER TABLE T RENAME COLUMN b TO b_r3208;
|
||||
INSERT OR REPLACE INTO T VALUES ('', NULL, 0);
|
||||
SELECT GROUP_CONCAT(a, '|') FROM T;
|
||||
DELETE FROM T WHERE 0;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
PRAGMA foreign_keys=OFF;
|
||||
BEGIN;
|
||||
PRAGMA writable_schema = on;
|
||||
PRAGMA writable_schema = off;
|
||||
COMMIT;
|
||||
a|1|2.0|2.0
|
||||
a|2|-3.0|-1.0
|
||||
b|1|4.5|4.5
|
||||
a|a|b|
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
.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;
|
||||
a|1|2.0|2.0
|
||||
a|2|-3.0|-1.0
|
||||
b|1|4.5|4.5
|
||||
a|a|b|
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,54 @@
|
||||
## Summary
|
||||
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
|
||||
|
||||
## Minimized query
|
||||
|
||||
```sql
|
||||
PRAGMA trusted_schema = YES;
|
||||
CREATE TABLE x(id integer primary key, a TEXT NULL);
|
||||
INSERT INTO x (a) VALUES ('first');
|
||||
CREATE TABLE tempx(id integer primary key, a TEXT NULL);
|
||||
INSERT INTO tempx (a) VALUES ('t-first');
|
||||
CREATE VIEW tv1 AS SELECT x.id, tx.id FROM x JOIN tempx tx ON tx.id=x.id;
|
||||
CREATE VIEW tv1b AS SELECT x.id, tx.id FROM x JOIN tempx tx on tx.id=x.id;
|
||||
CREATE VIEW tv2 AS SELECT * FROM tv1 UNION SELECT * FROM tv1b;
|
||||
SELECT * FROM tv2;
|
||||
|
||||
SELECT * FROM tempx;
|
||||
WITH cte(x) AS (VALUES(CAST(-0 AS NCHAR(55))),(2),(3)) SELECT * FROM cte WHERE x > 1;
|
||||
PRAGMA automatic_index = 1;
|
||||
PRAGMA page_size = 4096;
|
||||
INSERT INTO x VALUES (NULL, NULL);
|
||||
SELECT RANK() OVER (ORDER BY id ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM x;
|
||||
CREATE INDEX IF NOT EXISTS idx_tempx_9401 ON tempx(lower(id)) WHERE id > 0;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
1|1
|
||||
1|t-first
|
||||
2
|
||||
3
|
||||
1
|
||||
2
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
1|1
|
||||
1|t-first
|
||||
0
|
||||
2
|
||||
3
|
||||
1
|
||||
2
|
||||
```
|
||||
|
||||
## 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
|
||||
.dump main
|
||||
PRAGMA secure_delete /**/ = YES;
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c INTEGER
|
||||
);
|
||||
INSERT INTO T VALUES (octet_length(123),'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;
|
||||
ALTER TABLE T ADD COLUMN extra_6942 NUMERIC DEFAULT 0;
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
PRAGMA foreign_keys=OFF;
|
||||
BEGIN TRANSACTION;
|
||||
COMMIT;
|
||||
1
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
CREATE TABLE one(o);
|
||||
INSERT INTO one DEFAULT VALUES;
|
||||
CREATE TABLE t1(x, z);
|
||||
INSERT INTO t1 VALUES('aaa', unicode(NULL));
|
||||
INSERT INTO t1 VALUES('aaa', unicode('A'));
|
||||
CREATE VIEW vvv AS SELECT * FROM t1 UNION ALL SELECT typeof(NULL), unhex(0, ' ') WHERE 0;
|
||||
SELECT /**/ ( SELECT sum(z) FROM vvv WHERE x='aaa' ) FROM one;
|
||||
|
||||
CREATE VIEW IF NOT EXISTS v_t1_7523 AS SELECT x FROM t1;
|
||||
|
||||
SELECT COUNT(*) FROM one;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_one_9622 AS SELECT o FROM one;
|
||||
SELECT * FROM one WHERE o IN (SELECT o FROM one WHERE o IN (SELECT o FROM one));
|
||||
ALTER TABLE t1 RENAME COLUMN z TO z_r2864;
|
||||
ALTER TABLE one RENAME COLUMN o TO o_r5469;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
1
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
@@ -0,0 +1,102 @@
|
||||
## 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 = OFF;
|
||||
BEGIN DEFERRED TRANSACTION;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((-(-(lower('你好'))) * jsonb_insert(asinh(1), '$.key', 1)), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
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;
|
||||
WITH cte AS (SELECT * FROM T2), cte2 AS (SELECT * FROM cte) SELECT * FROM cte2;
|
||||
ALTER TABLE t1 RENAME COLUMN b TO b_r6813;
|
||||
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 * /**/ FROM T2 WHERE NOT NOT (NOT C < (SELECT MIN(C) FROM T2)) ;
|
||||
ALTER TABLE T2 RENAME COLUMN X TO X_r945;
|
||||
DROP TABLE IF EXISTS T1;
|
||||
COMMIT TRANSACTION;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
ALTER TABLE T2 RENAME COLUMN C TO C_r8599;
|
||||
SELECT * FROM (SELECT * FROM t1) AS sub;
|
||||
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;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
|
||||
SELECT COUNT(*) FROM T1;
|
||||
ANALYZE t1;
|
||||
SELECT * FROM T1 AS a JOIN T1 AS b ON a.rowid = b.rowid;
|
||||
DROP VIEW IF EXISTS t1;
|
||||
SELECT * FROM T NATURAL JOIN T1;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
|
||||
WARNING: writing to an imposter table will corrupt the "t1bc" index!
|
||||
Braun|30|3
|
||||
von|20|2
|
||||
Braun|30
|
||||
von|20
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
## Summary
|
||||
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
|
||||
|
||||
## Minimized query
|
||||
|
||||
```sql
|
||||
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;
|
||||
PRAGMA trusted_schema;
|
||||
PRAGMA defer_foreign_keys;
|
||||
PRAGMA synchronous = 'EXTRA';
|
||||
.nullvalue -(-(2))32327d3-536b-41de-a764-a6301986aeab
|
||||
CREATE TABLE t0(c0);
|
||||
INSERT INTO t0(c0) VALUES (NULL);
|
||||
CREATE INDEX i0 ON t0(1) 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 AND TRUE;
|
||||
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
1|-49.875
|
||||
2|-Inf
|
||||
1
|
||||
0
|
||||
1
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
1|-49.875
|
||||
2|-Inf
|
||||
0
|
||||
0
|
||||
1
|
||||
1
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
@@ -0,0 +1,739 @@
|
||||
## 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 ON
|
||||
ATTACH DATABASE ':memory:' AS aux57;
|
||||
ATTACH DATABASE '' || (':memory:') AS aux79;
|
||||
ATTACH DATABASE ':memory:' AS aux15;
|
||||
.print https://yewtu.be/watch?v=dQw4w9WgXcQ
|
||||
PRAGMA vdbe_listing = '{';
|
||||
PRAGMA short_column_names = YES;
|
||||
SAVEPOINT sp5958;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (concat(1, 1, 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
BEGIN;
|
||||
create TABLE main.abc(a, b, c, PRIMARY KEY(a, b));
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c REAL,
|
||||
d REAL
|
||||
);
|
||||
INSERT INTO T VALUES (json_valid(1, 4),'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C DOUBLE PRECISION
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('b', 'q', -0.000000001);
|
||||
INSERT INTO T VALUES ('c', 'r', 0.0);
|
||||
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
|
||||
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('f', 't', 750.25);
|
||||
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) AS F FROM T GROUP BY B;
|
||||
SELECT b FROM T WHERE NOT NOT (NOT NOT (ABS(c) > 5 OR ABS(d) > 5)) ;
|
||||
INSERT INTO abc VALUES(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;
|
||||
ALTER TABLE T RENAME TO T_r2547;
|
||||
SELECT b, (SELECT AVG(b) FROM abc) AS avg_val FROM abc;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL, NULL);
|
||||
SELECT AVG(B) FROM T;
|
||||
SELECT * FROM t1 WHERE c < ANY (SELECT c FROM t1);
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_7090 AFTER INSERT ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp5958;
|
||||
RELEASE SAVEPOINT sp5958;
|
||||
UPDATE abc SET a = NULL WHERE a IS NOT NULL RETURNING *;
|
||||
DROP VIEW IF EXISTS abc;
|
||||
DELETE FROM t1 WHERE rowid = 76;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
UPDATE T SET A = NULL WHERE 1;
|
||||
ALTER TABLE T RENAME TO T_r3110;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
ALTER TABLE abc DROP COLUMN a;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_1503 BEFORE UPDATE OF a ON abc FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_abc_3299 ON abc(lower(b)) WHERE b IS NOT NULL;
|
||||
WITH cte AS (SELECT "123" AS x) SELECT x + 0 FROM cte;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_3167 BEFORE UPDATE OF c ON abc FOR EACH ROW BEGIN INSERT INTO abc(c) VALUES (NULL); END;
|
||||
SELECT STRING_AGG(C) FROM T;
|
||||
INSERT OR IGNORE INTO abc VALUES (NULL, 9, 'x');
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT * 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 T;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR IGNORE INTO t1 VALUES (3, '', 0, -10);
|
||||
CREATE VIEW IF NOT EXISTS v_T_8516 AS SELECT C FROM T;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_t1_5754 AS SELECT b FROM t1;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T WHERE B IN (SELECT B FROM T LIMIT 0);
|
||||
DETACH DATABASE aux15;
|
||||
WITH cte AS (SELECT * FROM abc LIMIT 1) DELETE FROM abc WHERE a IN (SELECT a FROM cte) AND 1=0;
|
||||
WITH RECURSIVE vals(x) AS (SELECT C FROM T WHERE C IS NOT NULL UNION ALL SELECT C FROM T WHERE C IS NOT NULL LIMIT 10) SELECT * FROM vals;
|
||||
ALTER TABLE t1 RENAME COLUMN c TO c_r3776;
|
||||
DETACH DATABASE aux79;
|
||||
SELECT * FROM T t1 RIGHT JOIN T t2 ON t1.A = (SELECT A FROM T WHERE A = t1.A);
|
||||
INSERT OR ABORT INTO T VALUES ('x', 0, NULL);
|
||||
SELECT GROUP_CONCAT(c, '.') OVER (PARTITION BY c ORDER BY c ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
|
||||
ATTACH DATABASE ':memory:' AS aux79;
|
||||
ATTACH DATABASE ':memory:' AS aux15;
|
||||
.print https://yewtu.be/watch?v=dQw4w9WgXcQ
|
||||
PRAGMA vdbe_listing = 2147483648;
|
||||
PRAGMA short_column_names = YES;
|
||||
SAVEPOINT sp5958;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (concat(1, 1, 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
BEGIN;
|
||||
create TABLE main.abc(a, b, c, PRIMARY KEY(a, b));
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c REAL,
|
||||
d REAL
|
||||
);
|
||||
INSERT INTO T VALUES (json_valid(1, 4),'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C DOUBLE PRECISION
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('b', 'q', -0.000000001);
|
||||
INSERT INTO T VALUES ('c', 'r', 0.0);
|
||||
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
|
||||
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('f', 't', 750.25);
|
||||
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) AS F FROM T GROUP BY B;
|
||||
SELECT b FROM T WHERE NOT NOT (ABS(c) > 5 OR ABS(d) > 5) ;
|
||||
INSERT INTO abc VALUES(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;
|
||||
ALTER TABLE T RENAME TO T_r2547;
|
||||
SELECT b, (SELECT AVG(b) FROM abc) AS avg_val FROM abc;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL, NULL);
|
||||
SELECT AVG(B) FROM T;
|
||||
SELECT * FROM t1 WHERE c < ANY (SELECT c FROM t1);
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_7090 AFTER INSERT ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp5958;
|
||||
RELEASE SAVEPOINT sp5958;
|
||||
UPDATE abc SET a = NULL WHERE a IS NOT NULL RETURNING *;
|
||||
DROP VIEW IF EXISTS abc;
|
||||
DELETE FROM t1 WHERE rowid = 76;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
UPDATE T SET A = NULL WHERE 1;
|
||||
ALTER TABLE T RENAME TO T_r3110;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
ALTER TABLE abc DROP COLUMN a;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_1503 BEFORE UPDATE OF a ON abc FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_abc_3299 ON abc(lower(b)) WHERE b IS NOT NULL;
|
||||
WITH cte AS (SELECT "123" AS x) SELECT x + 0 FROM cte;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_3167 BEFORE UPDATE OF c ON abc FOR EACH ROW BEGIN INSERT INTO abc(c) VALUES (NULL); END;
|
||||
SELECT STRING_AGG(C) FROM T;
|
||||
INSERT OR IGNORE INTO abc VALUES (NULL, 9, 'x');
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT * 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 T;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR IGNORE INTO t1 VALUES (3, '', 0, -10);
|
||||
CREATE VIEW IF NOT EXISTS v_T_8516 AS SELECT C FROM T;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_t1_5754 AS SELECT b FROM t1;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T WHERE B IN (SELECT B FROM T LIMIT 0);
|
||||
DETACH DATABASE aux15;
|
||||
WITH cte AS (SELECT * FROM abc LIMIT 1) DELETE FROM abc WHERE a IN (SELECT a FROM cte) AND 1=0;
|
||||
WITH RECURSIVE vals(x) AS (SELECT C FROM T WHERE C IS NOT NULL UNION ALL SELECT C FROM T WHERE C IS NOT NULL LIMIT 10) SELECT * FROM vals;
|
||||
ALTER TABLE t1 RENAME COLUMN c TO c_r3776;
|
||||
DETACH DATABASE aux79;
|
||||
SELECT * FROM T t1 RIGHT JOIN T t2 ON t1.A = (SELECT A FROM T WHERE A = t1.A);
|
||||
INSERT OR ABORT INTO T VALUES ('x', 0, NULL);
|
||||
SELECT GROUP_CONCAT(c, '.') OVER (PARTITION BY c ORDER BY c ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
|
||||
ATTACH DATABASE ':memory:' AS aux79;
|
||||
ATTACH DATABASE ':memory:' AS aux15;
|
||||
.print https://yewtu.be/watch?v=dQw4w9WgXcQ
|
||||
PRAGMA vdbe_listing = 2147483648;
|
||||
PRAGMA short_column_names = YES;
|
||||
SAVEPOINT sp5958;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (concat(1, 1, 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
BEGIN;
|
||||
create TABLE main.abc(a, b, c, PRIMARY KEY(a, b));
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c REAL,
|
||||
d REAL
|
||||
);
|
||||
INSERT INTO T VALUES (json_valid(1, 4),'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C DOUBLE PRECISION
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('b', 'q', -0.000000001);
|
||||
INSERT INTO T VALUES ('c', 'r', 0.0);
|
||||
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
|
||||
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('f', 't', 750.25);
|
||||
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) AS F FROM T GROUP BY B;
|
||||
SELECT b FROM T WHERE NOT NOT (ABS(c) > 5 OR ABS(d) > 5) ;
|
||||
INSERT INTO abc VALUES(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;
|
||||
ALTER TABLE T RENAME TO T_r2547;
|
||||
SELECT b, (SELECT AVG(b) FROM abc) AS avg_val FROM abc;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL, NULL);
|
||||
SELECT AVG(B) FROM T;
|
||||
SELECT * FROM t1 WHERE c < ANY (SELECT c FROM t1);
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_7090 AFTER INSERT ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp5958;
|
||||
RELEASE SAVEPOINT sp5958;
|
||||
UPDATE abc SET a = NULL WHERE a IS NOT NULL RETURNING *;
|
||||
DROP VIEW IF EXISTS abc;
|
||||
DELETE FROM t1 WHERE rowid = 76;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
UPDATE T SET A = NULL WHERE 1;
|
||||
ALTER TABLE T RENAME TO T_r3110;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
ALTER TABLE abc DROP COLUMN a;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_1503 BEFORE UPDATE OF a ON abc FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_abc_3299 ON abc(lower(b)) WHERE b IS NOT NULL;
|
||||
WITH cte AS (SELECT "123" AS x) SELECT x + 0 FROM cte;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_3167 BEFORE UPDATE OF c ON abc FOR EACH ROW BEGIN INSERT INTO abc(c) VALUES (NULL); END;
|
||||
SELECT STRING_AGG(C) FROM T;
|
||||
INSERT OR IGNORE INTO abc VALUES (NULL, 9, 'x');
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT * 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 T;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR IGNORE INTO t1 VALUES (3, '', 0, -10);
|
||||
CREATE VIEW IF NOT EXISTS v_T_8516 AS SELECT C FROM T;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_t1_5754 AS SELECT b FROM t1;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T WHERE B IN (SELECT B FROM T LIMIT 0);
|
||||
DETACH DATABASE aux15;
|
||||
WITH cte AS (SELECT * FROM abc LIMIT 1) DELETE FROM abc WHERE a IN (SELECT a FROM cte) AND 1=0;
|
||||
WITH RECURSIVE vals(x) AS (SELECT C FROM T WHERE C IS NOT NULL UNION ALL SELECT C FROM T WHERE C IS NOT NULL LIMIT 10) SELECT * FROM vals;
|
||||
ALTER TABLE t1 RENAME COLUMN c TO c_r3776;
|
||||
DETACH DATABASE aux79;
|
||||
SELECT * FROM T t1 RIGHT JOIN T t2 ON t1.A = (SELECT A FROM T WHERE A = t1.A);
|
||||
INSERT OR ABORT INTO T VALUES ('x', 0, NULL);
|
||||
SELECT GROUP_CONCAT(c, '.') OVER (PARTITION BY c ORDER BY c ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
|
||||
ATTACH DATABASE ':memory:' AS aux79;
|
||||
ATTACH DATABASE ':memory:' AS aux15;
|
||||
.print https://yewtu.be/watch?v=dQw4w9WgXcQ
|
||||
PRAGMA vdbe_listing = 2147483648;
|
||||
PRAGMA short_column_names = YES;
|
||||
SAVEPOINT sp5958;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (concat(1, 1, 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
BEGIN;
|
||||
create TABLE main.abc(a, b, c, PRIMARY KEY(a, b));
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c REAL,
|
||||
d REAL
|
||||
);
|
||||
INSERT INTO T VALUES (json_valid(1, 4),'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C DOUBLE PRECISION
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('b', 'q', -0.000000001);
|
||||
INSERT INTO T VALUES ('c', 'r', 0.0);
|
||||
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
|
||||
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('f', 't', 750.25);
|
||||
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) AS F FROM T GROUP BY B;
|
||||
SELECT b FROM T WHERE NOT NOT (ABS(c) > 5 OR ABS(d) > 5) ;
|
||||
INSERT INTO abc VALUES(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;
|
||||
ALTER TABLE T RENAME TO T_r2547;
|
||||
SELECT b, (SELECT AVG(b) FROM abc) AS avg_val FROM abc;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL, NULL);
|
||||
SELECT AVG(B) FROM T;
|
||||
SELECT * FROM t1 WHERE c < ANY (SELECT c FROM t1);
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_7090 AFTER INSERT ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp5958;
|
||||
RELEASE SAVEPOINT sp5958;
|
||||
UPDATE abc SET a = NULL WHERE a IS NOT NULL RETURNING *;
|
||||
DROP VIEW IF EXISTS abc;
|
||||
DELETE FROM t1 WHERE rowid = 76;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
UPDATE T SET A = NULL WHERE 1;
|
||||
ALTER TABLE T RENAME TO T_r3110;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
ALTER TABLE abc DROP COLUMN a;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_1503 BEFORE UPDATE OF a ON abc FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_abc_3299 ON abc(lower(b)) WHERE b IS NOT NULL;
|
||||
WITH cte AS (SELECT "123" AS x) SELECT x + 0 FROM cte;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_3167 BEFORE UPDATE OF c ON abc FOR EACH ROW BEGIN INSERT INTO abc(c) VALUES (NULL); END;
|
||||
SELECT STRING_AGG(C) FROM T;
|
||||
INSERT OR IGNORE INTO abc VALUES (NULL, 9, 'x');
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT * 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 T;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR IGNORE INTO t1 VALUES (3, '', 0, -10);
|
||||
CREATE VIEW IF NOT EXISTS v_T_8516 AS SELECT C FROM T;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_t1_5754 AS SELECT b FROM t1;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T WHERE B IN (SELECT B FROM T LIMIT 0);
|
||||
DETACH DATABASE aux15;
|
||||
WITH cte AS (SELECT * FROM abc LIMIT 1) DELETE FROM abc WHERE a IN (SELECT a FROM cte) AND 1=0;
|
||||
WITH RECURSIVE vals(x) AS (SELECT C FROM T WHERE C IS NOT NULL UNION ALL SELECT C FROM T WHERE C IS NOT NULL LIMIT 10) SELECT * FROM vals;
|
||||
ALTER TABLE t1 RENAME COLUMN c TO c_r3776;
|
||||
DETACH DATABASE aux79;
|
||||
SELECT * FROM T t1 RIGHT JOIN T t2 ON t1.A = (SELECT A FROM T WHERE A = t1.A);
|
||||
INSERT OR ABORT INTO T VALUES ('x', 0, NULL);
|
||||
SELECT GROUP_CONCAT(c, '.') OVER (PARTITION BY c ORDER BY c ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
|
||||
ATTACH DATABASE ':memory:' AS aux79;
|
||||
ATTACH DATABASE ':memory:' AS aux15;
|
||||
.print https://yewtu.be/watch?v=dQw4w9WgXcQ
|
||||
PRAGMA vdbe_listing = 2147483648;
|
||||
PRAGMA short_column_names = YES;
|
||||
SAVEPOINT sp5958;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (concat(1, 1, 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
BEGIN;
|
||||
create TABLE main.abc(a, b, c, PRIMARY KEY(a, b));
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c REAL,
|
||||
d REAL
|
||||
);
|
||||
INSERT INTO T VALUES (json_valid(1, 4),'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C DOUBLE PRECISION
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('b', 'q', -0.000000001);
|
||||
INSERT INTO T VALUES ('c', 'r', 0.0);
|
||||
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
|
||||
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('f', 't', 750.25);
|
||||
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) AS F FROM T GROUP BY B;
|
||||
SELECT b FROM T WHERE NOT NOT (ABS(c) > 5 OR ABS(d) > 5) ;
|
||||
INSERT INTO abc VALUES(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;
|
||||
ALTER TABLE T RENAME TO T_r2547;
|
||||
SELECT b, (SELECT AVG(b) FROM abc) AS avg_val FROM abc;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL, NULL);
|
||||
SELECT AVG(B) FROM T;
|
||||
SELECT * FROM t1 WHERE c < ANY (SELECT c FROM t1);
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_7090 AFTER INSERT ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp5958;
|
||||
RELEASE SAVEPOINT sp5958;
|
||||
UPDATE abc SET a = NULL WHERE a IS NOT NULL RETURNING *;
|
||||
DROP VIEW IF EXISTS abc;
|
||||
DELETE FROM t1 WHERE rowid = 76;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
UPDATE T SET A = NULL WHERE 1;
|
||||
ALTER TABLE T RENAME TO T_r3110;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
ALTER TABLE abc DROP COLUMN a;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_1503 BEFORE UPDATE OF a ON abc FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_abc_3299 ON abc(lower(b)) WHERE b IS NOT NULL;
|
||||
WITH cte AS (SELECT "123" AS x) SELECT x + 0 FROM cte;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_3167 BEFORE UPDATE OF c ON abc FOR EACH ROW BEGIN INSERT INTO abc(c) VALUES (NULL); END;
|
||||
SELECT STRING_AGG(C) FROM T;
|
||||
INSERT OR IGNORE INTO abc VALUES (NULL, 9, 'x');
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT * 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 T;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR IGNORE INTO t1 VALUES (3, '', 0, -10);
|
||||
CREATE VIEW IF NOT EXISTS v_T_8516 AS SELECT C FROM T;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_t1_5754 AS SELECT b FROM t1;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T WHERE B IN (SELECT B FROM T LIMIT 0);
|
||||
DETACH DATABASE aux15;
|
||||
WITH cte AS (SELECT * FROM abc LIMIT 1) DELETE FROM abc WHERE a IN (SELECT a FROM cte) AND 1=0;
|
||||
WITH RECURSIVE vals(x) AS (SELECT C FROM T WHERE C IS NOT NULL UNION ALL SELECT C FROM T WHERE C IS NOT NULL LIMIT 10) SELECT * FROM vals;
|
||||
ALTER TABLE t1 RENAME COLUMN c TO c_r3776;
|
||||
DETACH DATABASE aux79;
|
||||
SELECT * FROM T t1 RIGHT JOIN T t2 ON t1.A = (SELECT A FROM T WHERE A = t1.A);
|
||||
INSERT OR ABORT INTO T VALUES ('x', 0, NULL);
|
||||
SELECT GROUP_CONCAT(c, '.') OVER (PARTITION BY c ORDER BY c ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
|
||||
ATTACH DATABASE ':memory:' AS aux79;
|
||||
ATTACH DATABASE ':memory:' AS aux15;
|
||||
.print https://yewtu.be/watch?v=dQw4w9WgXcQ
|
||||
PRAGMA vdbe_listing = 2147483648;
|
||||
PRAGMA short_column_names = YES;
|
||||
SAVEPOINT sp5958;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (concat(1, 1, 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
BEGIN;
|
||||
create TABLE main.abc(a, b, c, PRIMARY KEY(a, b));
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c REAL,
|
||||
d REAL
|
||||
);
|
||||
INSERT INTO T VALUES (json_valid(1, 4),'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C DOUBLE PRECISION
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('b', 'q', -0.000000001);
|
||||
INSERT INTO T VALUES ('c', 'r', 0.0);
|
||||
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
|
||||
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('f', 't', 750.25);
|
||||
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) AS F FROM T GROUP BY B;
|
||||
SELECT b FROM T WHERE NOT NOT (ABS(c) > 5 OR ABS(d) > 5) ;
|
||||
INSERT INTO abc VALUES(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;
|
||||
ALTER TABLE T RENAME TO T_r2547;
|
||||
SELECT b, (SELECT AVG(b) FROM abc) AS avg_val FROM abc;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL, NULL);
|
||||
SELECT AVG(B) FROM T;
|
||||
SELECT * FROM t1 WHERE c < ANY (SELECT c FROM t1);
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_7090 AFTER INSERT ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp5958;
|
||||
RELEASE SAVEPOINT sp5958;
|
||||
UPDATE abc SET a = NULL WHERE a IS NOT NULL RETURNING *;
|
||||
DROP VIEW IF EXISTS abc;
|
||||
DELETE FROM t1 WHERE rowid = 76;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
UPDATE T SET A = NULL WHERE 1;
|
||||
ALTER TABLE T RENAME TO T_r3110;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
ALTER TABLE abc DROP COLUMN a;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_1503 BEFORE UPDATE OF a ON abc FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_abc_3299 ON abc(lower(b)) WHERE b IS NOT NULL;
|
||||
WITH cte AS (SELECT "123" AS x) SELECT x + 0 FROM cte;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_3167 BEFORE UPDATE OF c ON abc FOR EACH ROW BEGIN INSERT INTO abc(c) VALUES (NULL); END;
|
||||
SELECT STRING_AGG(C) FROM T;
|
||||
INSERT OR IGNORE INTO abc VALUES (NULL, 9, 'x');
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT * 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 T;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR IGNORE INTO t1 VALUES (3, '', 0, -10);
|
||||
CREATE VIEW IF NOT EXISTS v_T_8516 AS SELECT C FROM T;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_t1_5754 AS SELECT b FROM t1;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T WHERE B IN (SELECT B FROM T LIMIT 0);
|
||||
DETACH DATABASE aux15;
|
||||
WITH cte AS (SELECT * FROM abc LIMIT 1) DELETE FROM abc WHERE a IN (SELECT a FROM cte) AND 1=0;
|
||||
WITH RECURSIVE vals(x) AS (SELECT C FROM T WHERE C IS NOT NULL UNION ALL SELECT C FROM T WHERE C IS NOT NULL LIMIT 10) SELECT * FROM vals;
|
||||
ALTER TABLE t1 RENAME COLUMN c TO c_r3776;
|
||||
DETACH DATABASE aux79;
|
||||
SELECT * FROM T t1 RIGHT JOIN T t2 ON t1.A = (SELECT A FROM T WHERE A = t1.A);
|
||||
INSERT OR ABORT INTO T VALUES ('x', 0, NULL);
|
||||
SELECT GROUP_CONCAT(c, '.') OVER (PARTITION BY c ORDER BY c ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
|
||||
ATTACH DATABASE ':memory:' AS aux79;
|
||||
ATTACH DATABASE ':memory:' AS aux15;
|
||||
.print https://yewtu.be/watch?v=dQw4w9WgXcQ
|
||||
PRAGMA vdbe_listing = 2147483648;
|
||||
PRAGMA short_column_names = YES;
|
||||
SAVEPOINT sp5958;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (concat(1, 1, 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
BEGIN;
|
||||
create TABLE main.abc(a, b, c, PRIMARY KEY(a, b));
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c REAL,
|
||||
d REAL
|
||||
);
|
||||
INSERT INTO T VALUES (json_valid(1, 4),'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C DOUBLE PRECISION
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('b', 'q', -0.000000001);
|
||||
INSERT INTO T VALUES ('c', 'r', 0.0);
|
||||
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
|
||||
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('f', 't', 750.25);
|
||||
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) AS F FROM T GROUP BY B;
|
||||
SELECT b FROM T WHERE NOT NOT (ABS(c) > 5 OR ABS(d) > 5) ;
|
||||
INSERT INTO abc VALUES(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;
|
||||
ALTER TABLE T RENAME TO T_r2547;
|
||||
SELECT b, (SELECT AVG(b) FROM abc) AS avg_val FROM abc;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL, NULL);
|
||||
SELECT AVG(B) FROM T;
|
||||
SELECT * FROM t1 WHERE c < ANY (SELECT c FROM t1);
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_7090 AFTER INSERT ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp5958;
|
||||
RELEASE SAVEPOINT sp5958;
|
||||
UPDATE abc SET a = NULL WHERE a IS NOT NULL RETURNING *;
|
||||
DROP VIEW IF EXISTS abc;
|
||||
DELETE FROM t1 WHERE rowid = 76;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
UPDATE T SET A = NULL WHERE 1;
|
||||
ALTER TABLE T RENAME TO T_r3110;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
ALTER TABLE abc DROP COLUMN a;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_1503 BEFORE UPDATE OF a ON abc FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_abc_3299 ON abc(lower(b)) WHERE b IS NOT NULL;
|
||||
WITH cte AS (SELECT "123" AS x) SELECT x + 0 FROM cte;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_3167 BEFORE UPDATE OF c ON abc FOR EACH ROW BEGIN INSERT INTO abc(c) VALUES (NULL); END;
|
||||
SELECT STRING_AGG(C) FROM T;
|
||||
INSERT OR IGNORE INTO abc VALUES (NULL, 9, 'x');
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT * 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 T;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR IGNORE INTO t1 VALUES (3, '', 0, -10);
|
||||
CREATE VIEW IF NOT EXISTS v_T_8516 AS SELECT C FROM T;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_t1_5754 AS SELECT b FROM t1;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T WHERE B IN (SELECT B FROM T LIMIT 0);
|
||||
DETACH DATABASE aux15;
|
||||
WITH cte AS (SELECT * FROM abc LIMIT 1) DELETE FROM abc WHERE a IN (SELECT a FROM cte) AND 1=0;
|
||||
WITH RECURSIVE vals(x) AS (SELECT C FROM T WHERE C IS NOT NULL UNION ALL SELECT C FROM T WHERE C IS NOT NULL LIMIT 10) SELECT * FROM vals;
|
||||
ALTER TABLE t1 RENAME COLUMN c TO c_r3776;
|
||||
DETACH DATABASE aux79;
|
||||
SELECT * FROM T t1 RIGHT JOIN T t2 ON t1.A = (SELECT A FROM T WHERE A = t1.A);
|
||||
INSERT OR ABORT INTO T VALUES ('x', 0, NULL);
|
||||
SELECT GROUP_CONCAT(c, '.') OVER (PARTITION BY c ORDER BY c ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
|
||||
|
||||
SELECT * FROM T t1 JOIN (SELECT * FROM T) AS sub ON t1.B = sub.B;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
PRAGMA vdbe_trace = OFF;
|
||||
DETACH DATABASE aux57;
|
||||
ALTER TABLE T RENAME COLUMN B TO B_r974;
|
||||
SELECT * FROM T t1 JOIN (SELECT * FROM T) AS sub ON t1.A = sub.A;
|
||||
SELECT c, (SELECT c FROM abc LIMIT 1) AS first_val FROM abc;
|
||||
INSERT INTO t1 VALUES (1, 1, 'x', 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
|
||||
WITH cte AS (SELECT c, COUNT(*) AS cnt FROM t1 GROUP BY c) SELECT * FROM cte;
|
||||
UPDATE T SET C = NULL RETURNING *;
|
||||
SELECT RANK() OVER (ORDER BY a RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM t1;
|
||||
VACUUM;
|
||||
WITH cte AS (SELECT * FROM abc), cte2 AS (SELECT * FROM cte) SELECT * FROM cte2;
|
||||
SELECT * FROM t1 AS a LEFT OUTER JOIN abc AS b ON a.rowid = b.rowid;
|
||||
SELECT MIN(C) FROM T;
|
||||
INSERT INTO T VALUES ('x', 'x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
|
||||
INSERT INTO t1 VALUES ('x', 'x', NULL, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
https://yewtu.be/watch?v=dQw4w9WgXcQ
|
||||
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,105 @@
|
||||
## 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 parser_trace = NO;
|
||||
ATTACH DATABASE ':memory:' AS aux99;
|
||||
.print
|
||||
BEGIN DEFERRED;
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b REAL,
|
||||
c REAL
|
||||
);
|
||||
INSERT INTO T VALUES (jsonb_array(ifnull(sign(0), 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;
|
||||
SAVEPOINT sp9028;
|
||||
.width
|
||||
ATTACH DATABASE '' || (':memory:') AS aux68;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d
|
||||
INT);
|
||||
INSERT INTO t1 VALUES (NULL, 'Wernher', CAST(ltrim('xxxhelloxxx', 'x') AS TEXT), CAST(100 -> '$[0]' AS DOUB));
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b REAL
|
||||
);
|
||||
INSERT INTO T VALUES (1,1.5), (2,-7.25), /* PRAGMA vdbe_debug = FALSE; */ (3,0.0);
|
||||
SELECT a,b FROM T WHERE NOT NOT (a >= 2) ORDER BY b;
|
||||
ANALYZE T;
|
||||
SELECT COUNT(*) FILTER (WHERE b IS NOT NULL), SUM(rowid) FILTER (WHERE b > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(b) FILTER (WHERE b > 0 AND b < 100), COUNT(*) FILTER (WHERE typeof(b) = "text") FROM T;
|
||||
DETACH DATABASE aux68;
|
||||
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 MIN(b) OVER (PARTITION BY b ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT COUNT(*) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
UPDATE t1 SET d = '' WHERE 1;
|
||||
INSERT OR ABORT INTO t1 VALUES (0, 0, NULL, 7);
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp9028;
|
||||
RELEASE SAVEPOINT sp9028;
|
||||
REINDEX T;
|
||||
ALTER TABLE t1 DROP COLUMN b;
|
||||
SELECT * FROM t1 AS a FULL JOIN T AS b ON a.rowid = b.rowid;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
SELECT SUM(b) FROM t1;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT STRING_AGG(b) FROM T;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_495 AS SELECT a FROM T;
|
||||
END TRANSACTION;
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
DELETE FROM T WHERE rowid = 75 RETURNING *;
|
||||
ALTER TABLE T ADD COLUMN extra_685 DECIMAL(10,5) NOT NULL DEFAULT 0;
|
||||
ALTER TABLE T ADD COLUMN extra_8806 TEXT COLLATE RTRIM;
|
||||
DETACH DATABASE aux99;
|
||||
PRAGMA journal_size_limit;
|
||||
SELECT * FROM T WHERE b = (SELECT MAX(b) FROM T WHERE b = (SELECT MAX(b) FROM T));
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_2068 ON t1(b COLLATE NOCASE) WHERE b > 0;
|
||||
SELECT * FROM t1;
|
||||
ALTER TABLE T ADD COLUMN extra_4370 INT2 COLLATE RTRIM;
|
||||
VACUUM main;
|
||||
```
|
||||
|
||||
## 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|helloxxx|1
|
||||
von|20|2
|
||||
Braun|30
|
||||
Wernher|helloxxx
|
||||
von|20
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
@@ -0,0 +1,759 @@
|
||||
## 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 sp1638;
|
||||
.headers off
|
||||
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;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (likelihood(1, 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 sp2410;
|
||||
-- replace({v}, '', 'x')
|
||||
|
||||
.log ON
|
||||
ATTACH DATABASE ':memory:' AS aux57;
|
||||
ATTACH DATABASE '' || (':memory:') AS aux79;
|
||||
ATTACH DATABASE ':memory:' AS aux15;
|
||||
.print https://yewtu.be/watch?v=dQw4w9WgXcQ
|
||||
PRAGMA vdbe_listing = '{';
|
||||
PRAGMA short_column_names = YES;
|
||||
SAVEPOINT sp5958;
|
||||
CREATE TABLE t1(a MEDIUMINT PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (concat((1 * 1), 1, 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
BEGIN;
|
||||
create TABLE main.abc(a, b, c, PRIMARY KEY(a, b));
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c REAL,
|
||||
d REAL
|
||||
);
|
||||
INSERT INTO T VALUES (json_valid(1, 4),'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C DOUBLE PRECISION
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('b', 'q', -0.000000001);
|
||||
INSERT INTO T VALUES ('c', 'r', 0.0);
|
||||
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
|
||||
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('f', 't', 750.25);
|
||||
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) AS F FROM T GROUP BY B;
|
||||
SELECT b FROM T WHERE NOT NOT NOT (NOT NOT (ABS(c) > 5 OR ABS(d) > 5)) ;
|
||||
INSERT INTO abc VALUES(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;
|
||||
ALTER TABLE T RENAME TO T_r2547;
|
||||
SELECT b, (SELECT AVG(b) FROM abc) AS avg_val FROM abc;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL, NULL);
|
||||
SELECT AVG(B) FROM T;
|
||||
SELECT * FROM t1 WHERE c < ANY (SELECT c FROM t1);
|
||||
SELECT COUNT(*) FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_7090 AFTER INSERT ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp5958;
|
||||
RELEASE SAVEPOINT sp5958;
|
||||
UPDATE abc SET a = NULL WHERE a IS NOT NULL RETURNING *;
|
||||
DROP VIEW IF EXISTS abc;
|
||||
DELETE FROM t1 WHERE rowid = 76;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
UPDATE T SET A = NULL WHERE 1;
|
||||
ALTER TABLE T RENAME TO T_r3110;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
ALTER TABLE abc DROP COLUMN a;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_1503 BEFORE UPDATE OF a ON abc FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_abc_3299 ON abc(lower(b)) WHERE b IS NOT NULL;
|
||||
WITH cte AS (SELECT "123" AS x) SELECT x + 0 FROM cte;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_3167 BEFORE UPDATE OF c ON abc FOR EACH ROW BEGIN INSERT INTO abc(c) VALUES (NULL); END;
|
||||
SELECT STRING_AGG(C) FROM T;
|
||||
INSERT OR IGNORE INTO abc VALUES (NULL, 9, 'x');
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT * 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 T;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR IGNORE INTO t1 VALUES (3, '', 0, -10);
|
||||
CREATE VIEW IF NOT EXISTS v_T_8516 AS SELECT C FROM T;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_t1_5754 AS SELECT b FROM t1;
|
||||
SELECT COUNT(*) FROM T;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T WHERE B IN (SELECT B FROM T LIMIT 0);
|
||||
DETACH DATABASE aux15;
|
||||
WITH cte AS (SELECT * FROM abc LIMIT 1) DELETE FROM abc WHERE a IN (SELECT a FROM cte) AND 1=0;
|
||||
WITH RECURSIVE vals(x) AS (SELECT C FROM T WHERE C IS NOT NULL UNION ALL SELECT C FROM T WHERE C IS NOT NULL LIMIT 10) SELECT * FROM vals;
|
||||
ALTER TABLE t1 RENAME COLUMN c TO c_r3776;
|
||||
DETACH DATABASE aux79;
|
||||
SELECT * FROM T t1 RIGHT JOIN T t2 ON t1.A = (SELECT A FROM T WHERE A = t1.A);
|
||||
INSERT OR ABORT INTO T VALUES ('x', 0, NULL);
|
||||
SELECT GROUP_CONCAT(c, '.') OVER (PARTITION BY c ORDER BY c ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
|
||||
ATTACH DATABASE ':memory:' AS aux79;
|
||||
ATTACH DATABASE ':memory:' AS aux15;
|
||||
.print https://yewtu.be/watch?v=dQw4w9WgXcQ
|
||||
PRAGMA vdbe_listing = 2147483648;
|
||||
PRAGMA short_column_names = YES;
|
||||
SAVEPOINT sp5958;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (concat(1, 1, 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
BEGIN;
|
||||
create TABLE main.abc(a, b, c, PRIMARY KEY(a, b));
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c REAL,
|
||||
d REAL
|
||||
);
|
||||
INSERT INTO T VALUES (json_valid(1, 4),'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C DOUBLE PRECISION
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('b', 'q', -0.000000001);
|
||||
INSERT INTO T VALUES ('c', 'r', 0.0);
|
||||
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
|
||||
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('f', 't', 750.25);
|
||||
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) AS F FROM T GROUP BY B;
|
||||
SELECT b FROM T WHERE NOT NOT (ABS(c) > 5 OR ABS(d) > 5) ;
|
||||
INSERT INTO abc VALUES(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;
|
||||
ALTER TABLE T RENAME TO T_r2547;
|
||||
SELECT b, (SELECT AVG(b) FROM abc) AS avg_val FROM abc;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL, NULL);
|
||||
SELECT AVG(B) FROM T;
|
||||
SELECT * FROM t1 WHERE c < ANY (SELECT c FROM t1);
|
||||
SELECT COUNT(*) FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_7090 AFTER INSERT ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp5958;
|
||||
RELEASE SAVEPOINT sp5958;
|
||||
UPDATE abc SET a = NULL WHERE a IS NOT NULL RETURNING *;
|
||||
DROP VIEW IF EXISTS abc;
|
||||
DELETE FROM t1 WHERE rowid = 76;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
UPDATE T SET A = NULL WHERE 1;
|
||||
ALTER TABLE T RENAME TO T_r3110;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
ALTER TABLE abc DROP COLUMN a;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_1503 BEFORE UPDATE OF a ON abc FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_abc_3299 ON abc(lower(b)) WHERE b IS NOT NULL;
|
||||
WITH cte AS (SELECT "123" AS x) SELECT x + 0 FROM cte;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_3167 BEFORE UPDATE OF c ON abc FOR EACH ROW BEGIN INSERT INTO abc(c) VALUES (NULL); END;
|
||||
SELECT STRING_AGG(C) FROM T;
|
||||
INSERT OR IGNORE INTO abc VALUES (NULL, 9, 'x');
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT * 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 T;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR IGNORE INTO t1 VALUES (3, '', 0, -10);
|
||||
CREATE VIEW IF NOT EXISTS v_T_8516 AS SELECT C FROM T;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_t1_5754 AS SELECT b FROM t1;
|
||||
SELECT COUNT(*) FROM T;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T WHERE B IN (SELECT B FROM T LIMIT 0);
|
||||
DETACH DATABASE aux15;
|
||||
WITH cte AS (SELECT * FROM abc LIMIT 1) DELETE FROM abc WHERE a IN (SELECT a FROM cte) AND 1=0;
|
||||
WITH RECURSIVE vals(x) AS (SELECT C FROM T WHERE C IS NOT NULL UNION ALL SELECT C FROM T WHERE C IS NOT NULL LIMIT 10) SELECT * FROM vals;
|
||||
ALTER TABLE t1 RENAME COLUMN c TO c_r3776;
|
||||
DETACH DATABASE aux79;
|
||||
SELECT * FROM T t1 RIGHT JOIN T t2 ON t1.A = (SELECT A FROM T WHERE A = t1.A);
|
||||
INSERT OR ABORT INTO T VALUES ('x', 0, NULL);
|
||||
SELECT GROUP_CONCAT(c, '.') OVER (PARTITION BY c ORDER BY c ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
|
||||
ATTACH DATABASE ':memory:' AS aux79;
|
||||
ATTACH DATABASE ':memory:' AS aux15;
|
||||
.print https://yewtu.be/watch?v=dQw4w9WgXcQ
|
||||
PRAGMA vdbe_listing = 2147483648;
|
||||
PRAGMA short_column_names = YES;
|
||||
SAVEPOINT sp5958;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (concat(1, 1, 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
BEGIN;
|
||||
create TABLE main.abc(a, b, c, PRIMARY KEY(a, b));
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c REAL,
|
||||
d REAL
|
||||
);
|
||||
INSERT INTO T VALUES (json_valid(1, 4),'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C DOUBLE PRECISION
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('b', 'q', -0.000000001);
|
||||
INSERT INTO T VALUES ('c', 'r', 0.0);
|
||||
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
|
||||
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('f', 't', 750.25);
|
||||
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) AS F FROM T GROUP BY B;
|
||||
SELECT b FROM T WHERE NOT NOT (ABS(c) > 5 OR ABS(d) > 5) ;
|
||||
INSERT INTO abc VALUES(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;
|
||||
ALTER TABLE T RENAME TO T_r2547;
|
||||
SELECT b, (SELECT AVG(b) FROM abc) AS avg_val FROM abc;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL, NULL);
|
||||
SELECT AVG(B) FROM T;
|
||||
SELECT * FROM t1 WHERE c < ANY (SELECT c FROM t1);
|
||||
SELECT COUNT(*) FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_7090 AFTER INSERT ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp5958;
|
||||
RELEASE SAVEPOINT sp5958;
|
||||
UPDATE abc SET a = NULL WHERE a IS NOT NULL RETURNING *;
|
||||
DROP VIEW IF EXISTS abc;
|
||||
DELETE FROM t1 WHERE rowid = 76;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
UPDATE T SET A = NULL WHERE 1;
|
||||
ALTER TABLE T RENAME TO T_r3110;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
ALTER TABLE abc DROP COLUMN a;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_1503 BEFORE UPDATE OF a ON abc FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_abc_3299 ON abc(lower(b)) WHERE b IS NOT NULL;
|
||||
WITH cte AS (SELECT "123" AS x) SELECT x + 0 FROM cte;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_3167 BEFORE UPDATE OF c ON abc FOR EACH ROW BEGIN INSERT INTO abc(c) VALUES (NULL); END;
|
||||
SELECT STRING_AGG(C) FROM T;
|
||||
INSERT OR IGNORE INTO abc VALUES (NULL, 9, 'x');
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT * 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 T;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR IGNORE INTO t1 VALUES (3, '', 0, -10);
|
||||
CREATE VIEW IF NOT EXISTS v_T_8516 AS SELECT C FROM T;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_t1_5754 AS SELECT b FROM t1;
|
||||
SELECT COUNT(*) FROM T;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T WHERE B IN (SELECT B FROM T LIMIT 0);
|
||||
DETACH DATABASE aux15;
|
||||
WITH cte AS (SELECT * FROM abc LIMIT 1) DELETE FROM abc WHERE a IN (SELECT a FROM cte) AND 1=0;
|
||||
WITH RECURSIVE vals(x) AS (SELECT C FROM T WHERE C IS NOT NULL UNION ALL SELECT C FROM T WHERE C IS NOT NULL LIMIT 10) SELECT * FROM vals;
|
||||
ALTER TABLE t1 RENAME COLUMN c TO c_r3776;
|
||||
DETACH DATABASE aux79;
|
||||
SELECT * FROM T t1 RIGHT JOIN T t2 ON t1.A = (SELECT A FROM T WHERE A = t1.A);
|
||||
INSERT OR ABORT INTO T VALUES ('x', 0, NULL);
|
||||
SELECT GROUP_CONCAT(c, '.') OVER (PARTITION BY c ORDER BY c ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
|
||||
ATTACH DATABASE ':memory:' AS aux79;
|
||||
ATTACH DATABASE ':memory:' AS aux15;
|
||||
.print https://yewtu.be/watch?v=dQw4w9WgXcQ
|
||||
PRAGMA vdbe_listing = 2147483648;
|
||||
PRAGMA short_column_names = YES;
|
||||
SAVEPOINT sp5958;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (concat(1, 1, 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
BEGIN;
|
||||
create TABLE main.abc(a, b, c, PRIMARY KEY(a, b));
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c REAL,
|
||||
d REAL
|
||||
);
|
||||
INSERT INTO T VALUES (json_valid(1, 4),'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C DOUBLE PRECISION
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('b', 'q', -0.000000001);
|
||||
INSERT INTO T VALUES ('c', 'r', 0.0);
|
||||
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
|
||||
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('f', 't', 750.25);
|
||||
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) AS F FROM T GROUP BY B;
|
||||
SELECT b FROM T WHERE NOT NOT (ABS(c) > 5 OR ABS(d) > 5) ;
|
||||
INSERT INTO abc VALUES(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;
|
||||
ALTER TABLE T RENAME TO T_r2547;
|
||||
SELECT b, (SELECT AVG(b) FROM abc) AS avg_val FROM abc;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL, NULL);
|
||||
SELECT AVG(B) FROM T;
|
||||
SELECT * FROM t1 WHERE c < ANY (SELECT c FROM t1);
|
||||
SELECT COUNT(*) FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_7090 AFTER INSERT ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp5958;
|
||||
RELEASE SAVEPOINT sp5958;
|
||||
UPDATE abc SET a = NULL WHERE a IS NOT NULL RETURNING *;
|
||||
DROP VIEW IF EXISTS abc;
|
||||
DELETE FROM t1 WHERE rowid = 76;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
UPDATE T SET A = NULL WHERE 1;
|
||||
ALTER TABLE T RENAME TO T_r3110;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
ALTER TABLE abc DROP COLUMN a;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_1503 BEFORE UPDATE OF a ON abc FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_abc_3299 ON abc(lower(b)) WHERE b IS NOT NULL;
|
||||
WITH cte AS (SELECT "123" AS x) SELECT x + 0 FROM cte;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_3167 BEFORE UPDATE OF c ON abc FOR EACH ROW BEGIN INSERT INTO abc(c) VALUES (NULL); END;
|
||||
SELECT STRING_AGG(C) FROM T;
|
||||
INSERT OR IGNORE INTO abc VALUES (NULL, 9, 'x');
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT * 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 T;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR IGNORE INTO t1 VALUES (3, '', 0, -10);
|
||||
CREATE VIEW IF NOT EXISTS v_T_8516 AS SELECT C FROM T;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_t1_5754 AS SELECT b FROM t1;
|
||||
SELECT COUNT(*) FROM T;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T WHERE B IN (SELECT B FROM T LIMIT 0);
|
||||
DETACH DATABASE aux15;
|
||||
WITH cte AS (SELECT * FROM abc LIMIT 1) DELETE FROM abc WHERE a IN (SELECT a FROM cte) AND 1=0;
|
||||
WITH RECURSIVE vals(x) AS (SELECT C FROM T WHERE C IS NOT NULL UNION ALL SELECT C FROM T WHERE C IS NOT NULL LIMIT 10) SELECT * FROM vals;
|
||||
ALTER TABLE t1 RENAME COLUMN c TO c_r3776;
|
||||
DETACH DATABASE aux79;
|
||||
SELECT * FROM T t1 RIGHT JOIN T t2 ON t1.A = (SELECT A FROM T WHERE A = t1.A);
|
||||
INSERT OR ABORT INTO T VALUES ('x', 0, NULL);
|
||||
SELECT GROUP_CONCAT(c, '.') OVER (PARTITION BY c ORDER BY c ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
|
||||
ATTACH DATABASE ':memory:' AS aux79;
|
||||
ATTACH DATABASE ':memory:' AS aux15;
|
||||
.print https://yewtu.be/watch?v=dQw4w9WgXcQ
|
||||
PRAGMA vdbe_listing = 2147483648;
|
||||
PRAGMA short_column_names = YES;
|
||||
SAVEPOINT sp5958;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (concat(1, 1, 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
BEGIN;
|
||||
create TABLE main.abc(a, b, c, PRIMARY KEY(a, b));
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c REAL,
|
||||
d REAL
|
||||
);
|
||||
INSERT INTO T VALUES (json_valid(1, 4),'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C DOUBLE PRECISION
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('b', 'q', -0.000000001);
|
||||
INSERT INTO T VALUES ('c', 'r', 0.0);
|
||||
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
|
||||
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('f', 't', 750.25);
|
||||
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) AS F FROM T GROUP BY B;
|
||||
SELECT b FROM T WHERE NOT NOT (ABS(c) > 5 OR ABS(d) > 5) ;
|
||||
INSERT INTO abc VALUES(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;
|
||||
ALTER TABLE T RENAME TO T_r2547;
|
||||
SELECT b, (SELECT AVG(b) FROM abc) AS avg_val FROM abc;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL, NULL);
|
||||
SELECT AVG(B) FROM T;
|
||||
SELECT * FROM t1 WHERE c < ANY (SELECT c FROM t1);
|
||||
SELECT COUNT(*) FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_7090 AFTER INSERT ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp5958;
|
||||
RELEASE SAVEPOINT sp5958;
|
||||
UPDATE abc SET a = NULL WHERE a IS NOT NULL RETURNING *;
|
||||
DROP VIEW IF EXISTS abc;
|
||||
DELETE FROM t1 WHERE rowid = 76;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
UPDATE T SET A = NULL WHERE 1;
|
||||
ALTER TABLE T RENAME TO T_r3110;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
ALTER TABLE abc DROP COLUMN a;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_1503 BEFORE UPDATE OF a ON abc FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
SELECT COUNT(*) FILTER (WHERE /**/ d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_abc_3299 ON abc(lower(b)) WHERE b IS NOT NULL;
|
||||
WITH cte AS (SELECT "123" AS x) SELECT x + 0 FROM cte;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_3167 BEFORE UPDATE OF c ON abc FOR EACH ROW BEGIN INSERT INTO abc(c) VALUES (NULL); END;
|
||||
SELECT STRING_AGG(C) FROM T;
|
||||
INSERT OR IGNORE INTO abc VALUES (NULL, 9, 'x');
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT * 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 T;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR IGNORE INTO t1 VALUES (3, '', 0, -10);
|
||||
CREATE VIEW IF NOT EXISTS v_T_8516 AS SELECT C FROM T;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_t1_5754 AS SELECT b FROM t1;
|
||||
SELECT COUNT(*) FROM T;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T WHERE B IN (SELECT B FROM T LIMIT 0);
|
||||
DETACH DATABASE aux15;
|
||||
WITH cte AS (SELECT * FROM abc LIMIT 1) DELETE FROM abc WHERE a IN (SELECT a FROM cte) AND 1=0;
|
||||
WITH RECURSIVE vals(x) AS (SELECT C FROM T WHERE C IS NOT NULL UNION ALL SELECT C FROM T WHERE C IS NOT NULL LIMIT 10) SELECT * FROM vals;
|
||||
ALTER TABLE t1 RENAME COLUMN c TO c_r3776;
|
||||
DETACH DATABASE aux79;
|
||||
SELECT * FROM T t1 RIGHT JOIN T t2 ON t1.A = (SELECT A FROM T WHERE A = t1.A);
|
||||
INSERT OR ABORT INTO T VALUES ('x', 0, NULL);
|
||||
SELECT GROUP_CONCAT(c, '.') OVER (PARTITION BY c ORDER BY c ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
|
||||
ATTACH DATABASE ':memory:' AS aux79;
|
||||
ATTACH DATABASE ':memory:' AS aux15;
|
||||
.print https://yewtu.be/watch?v=dQw4w9WgXcQ
|
||||
PRAGMA vdbe_listing = 2147483648;
|
||||
PRAGMA short_column_names = YES;
|
||||
SAVEPOINT sp5958;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (concat(1, 1, 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
BEGIN;
|
||||
create TABLE main.abc(a, b, c, PRIMARY KEY(a, b));
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c REAL,
|
||||
d REAL
|
||||
);
|
||||
INSERT INTO T VALUES (json_valid(1, 4),'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C DOUBLE PRECISION
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('b', 'q', -0.000000001);
|
||||
INSERT INTO T VALUES ('c', 'r', 0.0);
|
||||
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
|
||||
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('f', 't', 750.25);
|
||||
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) AS F FROM T GROUP BY B;
|
||||
SELECT b FROM T WHERE NOT NOT (ABS(c) > 5 OR ABS(d) > 5) ;
|
||||
INSERT INTO abc VALUES(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;
|
||||
ALTER TABLE T RENAME TO T_r2547;
|
||||
SELECT b, (SELECT AVG(b) FROM abc) AS avg_val FROM abc;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL, NULL);
|
||||
SELECT AVG(B) FROM T;
|
||||
SELECT * FROM t1 WHERE c < ANY (SELECT c FROM t1);
|
||||
SELECT COUNT(*) FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_7090 AFTER INSERT ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp5958;
|
||||
RELEASE SAVEPOINT sp5958;
|
||||
UPDATE abc SET a = NULL WHERE a IS NOT NULL RETURNING *;
|
||||
DROP VIEW IF EXISTS abc;
|
||||
DELETE FROM t1 WHERE rowid = 76;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
UPDATE T SET A = NULL WHERE 1;
|
||||
ALTER TABLE T RENAME TO T_r3110;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
ALTER TABLE abc DROP COLUMN a;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_1503 BEFORE UPDATE OF a ON abc FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_abc_3299 ON abc(lower(b)) WHERE b IS NOT NULL;
|
||||
WITH cte AS (SELECT "123" AS x) SELECT x + 0 FROM cte;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_3167 BEFORE UPDATE OF c ON abc FOR EACH ROW BEGIN INSERT INTO abc(c) VALUES (NULL); END;
|
||||
SELECT STRING_AGG(C) FROM T;
|
||||
INSERT OR IGNORE INTO abc VALUES (NULL, 9, 'x');
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT * 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 T;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR IGNORE INTO t1 VALUES (3, '', 0, -10);
|
||||
CREATE VIEW IF NOT EXISTS v_T_8516 AS SELECT C FROM T;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_t1_5754 AS SELECT b FROM t1;
|
||||
SELECT COUNT(*) FROM T;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T WHERE B IN (SELECT B FROM T LIMIT 0);
|
||||
DETACH DATABASE aux15;
|
||||
WITH cte AS (SELECT * FROM abc LIMIT 1) DELETE FROM abc WHERE a IN (SELECT a FROM cte) AND 1=0;
|
||||
WITH RECURSIVE vals(x) AS (SELECT C FROM T WHERE C IS NOT NULL UNION ALL SELECT C FROM T WHERE C IS NOT NULL LIMIT 10) SELECT * FROM vals;
|
||||
ALTER TABLE t1 RENAME COLUMN c TO c_r3776;
|
||||
DETACH DATABASE aux79;
|
||||
SELECT * FROM T t1 RIGHT JOIN T t2 ON t1.A = (SELECT A FROM T WHERE A = t1.A);
|
||||
INSERT OR ABORT INTO T VALUES ('x', 0, NULL);
|
||||
SELECT GROUP_CONCAT(c, '.') OVER (PARTITION BY c ORDER BY c ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
|
||||
ATTACH DATABASE ':memory:' AS aux79;
|
||||
ATTACH DATABASE ':memory:' AS aux15;
|
||||
.print https://yewtu.be/watch?v=dQw4w9WgXcQ
|
||||
PRAGMA vdbe_listing = 2147483648;
|
||||
PRAGMA short_column_names = YES;
|
||||
SAVEPOINT sp5958;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (concat(1, 1, 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
BEGIN;
|
||||
create TABLE main.abc(a, b, c, PRIMARY KEY(a, b));
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c REAL,
|
||||
d REAL
|
||||
);
|
||||
INSERT INTO T VALUES (json_valid(1, 4),'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C DOUBLE PRECISION
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('b', 'q', -0.000000001);
|
||||
INSERT INTO T VALUES ('c', 'r', 0.0);
|
||||
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
|
||||
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('f', 't', 750.25);
|
||||
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) AS F FROM T GROUP BY B;
|
||||
SELECT b FROM T WHERE NOT NOT (ABS(c) > 5 OR ABS(d) > 5) ;
|
||||
INSERT INTO abc VALUES(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;
|
||||
ALTER TABLE T RENAME TO T_r2547;
|
||||
SELECT b, (SELECT AVG(b) FROM abc) AS avg_val FROM abc;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL, NULL);
|
||||
SELECT AVG(B) FROM T;
|
||||
SELECT * FROM t1 WHERE c < ANY (SELECT c FROM t1);
|
||||
SELECT COUNT(*) FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_7090 AFTER INSERT ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp5958;
|
||||
RELEASE SAVEPOINT sp5958;
|
||||
UPDATE abc SET a = NULL WHERE a IS NOT NULL RETURNING *;
|
||||
DROP VIEW IF EXISTS abc;
|
||||
DELETE FROM t1 WHERE rowid = 76;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
UPDATE T SET A = NULL WHERE 1;
|
||||
ALTER TABLE T RENAME TO T_r3110;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
ALTER TABLE abc DROP COLUMN a;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_1503 BEFORE UPDATE OF a ON abc FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_abc_3299 ON abc(lower(b)) WHERE b IS NOT NULL;
|
||||
WITH cte AS (SELECT "123" AS x) SELECT x + 0 FROM cte;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_3167 BEFORE UPDATE OF c ON abc FOR EACH ROW BEGIN INSERT INTO abc(c) VALUES (NULL); END;
|
||||
SELECT STRING_AGG(C) FROM T;
|
||||
INSERT OR IGNORE INTO abc VALUES (NULL, 9, 'x');
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT * 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 T;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR IGNORE INTO t1 VALUES (3, '', 0, -10);
|
||||
CREATE VIEW IF NOT EXISTS v_T_8516 AS SELECT C FROM T;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_t1_5754 AS SELECT b FROM t1;
|
||||
SELECT COUNT(*) FROM T;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T WHERE B IN (SELECT B FROM T LIMIT 0);
|
||||
DETACH DATABASE aux15;
|
||||
WITH cte AS (SELECT * FROM abc LIMIT 1) DELETE FROM abc WHERE a IN (SELECT a FROM cte) AND 1=0;
|
||||
WITH RECURSIVE vals(x) AS (SELECT C FROM T WHERE C IS NOT NULL UNION ALL SELECT C FROM T WHERE C IS NOT NULL LIMIT 10) SELECT * FROM vals;
|
||||
ALTER TABLE t1 RENAME COLUMN c TO c_r3776;
|
||||
DETACH DATABASE aux79;
|
||||
SELECT * FROM T t1 RIGHT JOIN T t2 ON t1.A = (SELECT A FROM T WHERE A = t1.A);
|
||||
INSERT OR ABORT INTO T VALUES ('x', 0, NULL);
|
||||
SELECT GROUP_CONCAT(c, '.') OVER (PARTITION BY c ORDER BY c ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
|
||||
SELECT * FROM T t1 JOIN (SELECT * FROM T) AS sub ON t1.B = sub.B;
|
||||
SELECT COUNT(*) FROM T;
|
||||
PRAGMA vdbe_trace = OFF;
|
||||
DETACH DATABASE aux57;
|
||||
ALTER TABLE T RENAME COLUMN B TO B_r974;
|
||||
SELECT * FROM T t1 JOIN (SELECT * FROM T) AS sub ON t1.A = sub.A;
|
||||
SELECT c, (SELECT c FROM abc LIMIT 1) AS first_val FROM abc;
|
||||
INSERT INTO t1 VALUES (1, 1, 'x', 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
|
||||
WITH cte AS (SELECT c, COUNT(*) AS cnt FROM t1 GROUP BY c) SELECT * FROM cte;
|
||||
UPDATE T SET C = NULL RETURNING *;
|
||||
SELECT RANK() OVER (ORDER BY a RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM t1;
|
||||
VACUUM;
|
||||
WITH cte AS (SELECT * FROM abc), cte2 AS (SELECT * FROM cte) SELECT * FROM cte2;
|
||||
SELECT * FROM t1 AS a LEFT OUTER JOIN abc AS b ON a.rowid = b.rowid;
|
||||
SELECT MIN(C) FROM T;
|
||||
INSERT INTO T VALUES ('x', 'x', 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
|
||||
INSERT INTO t1 VALUES ('x', 'x', NULL, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
|
||||
VACUUM;
|
||||
SELECT * FROM abc WHERE b < ANY (SELECT b FROM abc);
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp2410;
|
||||
RELEASE SAVEPOINT sp2410;
|
||||
CREATE VIEW IF NOT EXISTS v_abc_7604 AS SELECT b FROM abc;
|
||||
PRAGMA vdbe_trace = ON;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_913 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END;
|
||||
ALTER TABLE abc RENAME COLUMN a TO a_r6922;
|
||||
DELETE FROM t1 WHERE 1;
|
||||
DELETE FROM abc WHERE c IS NULL RETURNING *;
|
||||
ALTER TABLE t1 DROP COLUMN c;
|
||||
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);
|
||||
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 writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
UPDATE abc SET c = NULL WHERE 1 RETURNING *;
|
||||
REINDEX T;
|
||||
DROP TRIGGER IF EXISTS T;
|
||||
ALTER TABLE T ADD COLUMN extra_2614 MEDIUMINT COLLATE NOCASE;
|
||||
REINDEX T;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_2917 ON t1(lower(d)) WHERE d IS NOT NULL;
|
||||
SELECT LAG(d) OVER (ORDER BY d ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM t1;
|
||||
INSERT INTO abc DEFAULT VALUES;
|
||||
WITH cte AS (SELECT 1.5 AS x) SELECT CAST(x AS TEXT) FROM cte;
|
||||
VACUUM;
|
||||
REINDEX T;
|
||||
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;
|
||||
ALTER TABLE t1 ADD COLUMN extra_5836 DOUBLE DEFAULT (random());
|
||||
VACUUM main;
|
||||
SELECT * FROM T;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp1638;
|
||||
RELEASE SAVEPOINT sp1638;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
c|1700
|
||||
b|4000
|
||||
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
|
||||
c|1700
|
||||
b|4000
|
||||
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,72 @@
|
||||
## Summary
|
||||
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
|
||||
|
||||
## Minimized query
|
||||
|
||||
```sql
|
||||
PRAGMA count_changes = NO;
|
||||
PRAGMA trusted_schema = YES;
|
||||
CREATE TABLE x(id integer primary key, a TEXT NULL);
|
||||
INSERT INTO x (a) VALUES ('first');
|
||||
CREATE TABLE tempx(id integer primary key, a TEXT NULL);
|
||||
INSERT INTO tempx (a) VALUES ('t-first');
|
||||
CREATE VIEW tv1 AS SELECT x.id, tx.id FROM x JOIN tempx tx ON tx.id=x.id;
|
||||
CREATE VIEW tv1b AS SELECT x.id, tx.id FROM x JOIN tempx tx on tx.id=x.id;
|
||||
CREATE VIEW tv2 AS SELECT * FROM tv1 UNION SELECT * FROM tv1b;
|
||||
SELECT * FROM tv2;
|
||||
|
||||
SELECT * FROM tempx;
|
||||
WITH cte(x) AS (VALUES(CAST(-'𝕊𝕢𝕝' AS NCHAR(9223372036854775806))),(2),(3)) SELECT * FROM cte WHERE NOT NOT (x > 1) ;
|
||||
PRAGMA automatic_index = 1;
|
||||
PRAGMA page_size = 4096;
|
||||
INSERT INTO x VALUES (NULL, NULL);
|
||||
SELECT RANK() OVER (ORDER BY id ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM x;
|
||||
CREATE INDEX IF NOT EXISTS idx_tempx_9401 ON tempx(lower(id)) WHERE id > 0;
|
||||
UPDATE x SET a = -32 WHERE a IS NOT NULL;
|
||||
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;
|
||||
ALTER TABLE T DROP COLUMN b;
|
||||
PRAGMA cache_spill = 1;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
1|1
|
||||
1|t-first
|
||||
2
|
||||
3
|
||||
1
|
||||
2
|
||||
a|1|3.14|1
|
||||
b|1|-7.75|2
|
||||
c|2|-Inf|1
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
1|1
|
||||
1|t-first
|
||||
0
|
||||
2
|
||||
3
|
||||
1
|
||||
2
|
||||
a|1|3.14|1
|
||||
b|1|-7.75|2
|
||||
c|2|-Inf|1
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
-bail
|
||||
```
|
||||
|
||||
@@ -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
|
||||
ATTACH DATABASE ':memory:' AS aux81;
|
||||
BEGIN DEFERRED;
|
||||
.schema !@#$%^&*()qwertyuiop[]\{}|asdfghjkl;':"zxcvbnm,./<>?
|
||||
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;
|
||||
PRAGMA trusted_schema = 1;
|
||||
ATTACH DATABASE ':memory:' AS aux7;
|
||||
CREATE TABLE 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))) ));
|
||||
|
||||
DETACH DATABASE aux7;
|
||||
INSERT INTO artists VALUES (NULL, 1) ON CONFLICT(id) DO UPDATE SET id = excluded.id, name = excluded.name;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_albums_9678 AFTER DELETE ON albums FOR EACH ROW BEGIN INSERT INTO albums(id) VALUES (NULL); END;
|
||||
DROP TRIGGER IF EXISTS albums;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T_2726 BEFORE INSERT ON T BEGIN SELECT RAISE(IGNORE); END;
|
||||
ALTER TABLE albums RENAME COLUMN artist_id TO artist_id_r2718;
|
||||
PRAGMA vdbe_trace = OFF;
|
||||
SELECT * FROM artists NATURAL JOIN artists;
|
||||
ANALYZE albums;
|
||||
ALTER TABLE artists ADD COLUMN extra_4610 SMALLINT DEFAULT 0;
|
||||
COMMIT;
|
||||
DETACH DATABASE aux81;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_artists_5965 AFTER INSERT ON artists BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
DELETE FROM artists WHERE rowid = -CAST('[1,2,3]' AS INT8);
|
||||
DROP TABLE IF EXISTS albums;
|
||||
SELECT NTH_VALUE(id, '@') OVER (ORDER BY id) FROM artists;
|
||||
REINDEX;
|
||||
SELECT * FROM albums WHERE id > (SELECT MAX(id) FROM albums);
|
||||
SELECT COUNT(*) FILTER (WHERE artist_id IS NOT NULL), SUM(rowid) FILTER (WHERE artist_id > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(artist_id) FILTER (WHERE artist_id > 0 AND artist_id < 100), COUNT(*) FILTER (WHERE typeof(artist_id) = "text") FROM albums;
|
||||
REINDEX albums;
|
||||
SELECT COUNT(*) FILTER (WHERE name IS NOT NULL), SUM(rowid) FILTER (WHERE name > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(name) FILTER (WHERE name > 0 AND name < 100), COUNT(*) FILTER (WHERE typeof(name) = "text") FROM artists;
|
||||
SELECT COUNT(name) FROM artists;
|
||||
```
|
||||
|
||||
## 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
|
||||
```
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,136 @@
|
||||
## 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 sp9324;
|
||||
.timer on
|
||||
PRAGMA parser_trace = FALSE;
|
||||
ATTACH DATABASE '' || (':memory:') AS aux81;
|
||||
PRAGMA reverse_unordered_selects = ON;
|
||||
PRAGMA max_page_count;
|
||||
PRAGMA case_sensitive_like = OFF;
|
||||
PRAGMA writable_schema = NO;
|
||||
.quit
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1(a int, b int);
|
||||
INSERT INTO t1 VALUES(glob(NULL, NULL),NULL),(CAST(CAST(CAST(log10(if('"', cosh(5035996954804773676), 1, 5035996954804773676, 5035996954804773676)) AS CLOB) AS UNSIGNED BIG INT) AS SMALLINT),18),(2,19);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT x, y FROM (SELECT 98 AS x, 99 AS y UNION SELECT a AS x, sum(b) AS y FROM _m GROUP BY /* PRAGMA secure_delete = TRUE; */ a) AS w WHERE NOT y>=20 ORDER BY +x;
|
||||
SELECT x, y FROM (SELECT a AS x, sum(b) AS y FROM t1 GROUP BY a UNION SELECT 98 AS x, 99 AS y) AS w WHERE y>=20 ORDER BY +x;
|
||||
DROP VIEW IF EXISTS t1;
|
||||
INSERT INTO t1 VALUES (NULL, NULL);
|
||||
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 "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;
|
||||
INSERT INTO T2 VALUES (NULL, NULL);
|
||||
ALTER TABLE T2 ADD COLUMN extra_2116 NUMERIC DEFAULT 0;
|
||||
REINDEX;
|
||||
UPDATE T2 SET A = 'x' WHERE A IS NOT NULL RETURNING *;
|
||||
SELECT * FROM (SELECT Y, COUNT(*) FROM T2 GROUP BY Y) AS sub;
|
||||
ALTER TABLE t1 DROP COLUMN b;
|
||||
SELECT LAG(X, 0) OVER (PARTITION BY X ORDER BY X ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T1;
|
||||
SELECT 0x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
SELECT LEAD(X, 1, NULL) OVER (PARTITION BY X ORDER BY X ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T1;
|
||||
PRAGMA vdbe_listing = YES;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_T1_7197 AS SELECT A FROM T1;
|
||||
ALTER TABLE T1 DROP COLUMN A;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_4345 ON T1((X + 1)) WHERE X IS NOT NULL;
|
||||
SELECT * FROM T1;
|
||||
DETACH DATABASE aux81;
|
||||
SELECT * FROM t1 WHERE EXISTS (SELECT 1 FROM t1 WHERE b > 0);
|
||||
VACUUM main;
|
||||
SELECT * FROM T2 WHERE A IN (SELECT A FROM T2 WHERE A IS NOT NULL);
|
||||
ALTER TABLE t1 RENAME TO t1_r6007;
|
||||
ALTER TABLE T1 RENAME TO T1_r5111;
|
||||
SELECT * FROM t1 WHERE EXISTS (SELECT 1 FROM t1 WHERE a = NULL);
|
||||
SELECT COUNT(X) OVER (ORDER BY X RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T1;
|
||||
SELECT NTH_VALUE(b, -1) OVER (ORDER BY b GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t1;
|
||||
ALTER TABLE t1 DROP COLUMN b;
|
||||
INSERT INTO T1 VALUES (NULL, 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
|
||||
SELECT * FROM t1 WHERE b IN (SELECT b FROM t1 WHERE b GLOB "*");
|
||||
INSERT OR FAIL INTO t1 VALUES (0, 0);
|
||||
REINDEX;
|
||||
INSERT INTO T1 VALUES ('x', NULL) ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
|
||||
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;
|
||||
ANALYZE T2;
|
||||
WITH m AS MATERIALIZED (SELECT * FROM T2) SELECT m.A FROM m JOIN m AS m2 ON m.A = m2.A;
|
||||
ALTER TABLE t1 RENAME TO t1_r3665;
|
||||
DELETE FROM T1 WHERE rowid = 99 RETURNING *;
|
||||
WITH RECURSIVE cnt(x) AS (VALUES(0) UNION ALL SELECT x-1 FROM cnt WHERE x>-10) SELECT * FROM cnt;
|
||||
INSERT INTO T1 VALUES (NULL, NULL);
|
||||
REINDEX;
|
||||
ALTER TABLE T2 RENAME TO T2_r3541;
|
||||
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<23) SELECT COUNT(*) FROM cnt;
|
||||
SELECT * FROM T WHERE A NOT IN (SELECT A FROM T);
|
||||
|
||||
SELECT COUNT(*) FROM T1;
|
||||
INSERT INTO T1 VALUES (NULL, 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_2111 AS SELECT a FROM t1;
|
||||
INSERT INTO T1 SELECT * FROM T1;
|
||||
SELECT NTH_VALUE(a, 2) OVER (ORDER BY a) FROM t1;
|
||||
ALTER TABLE t1 RENAME TO t1_r4405;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp9324;
|
||||
RELEASE SAVEPOINT sp9324;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
Run Time: real 0.000 user 0.000000 sys 0.000026
|
||||
Run Time: real 0.000 user 0.000000 sys 0.000161
|
||||
Run Time: real 0.000 user 0.000000 sys 0.000005
|
||||
1073741823
|
||||
Run Time: real 0.000 user 0.000000 sys 0.000009
|
||||
Run Time: real 0.000 user 0.000000 sys 0.000006
|
||||
Run Time: real 0.000 user 0.000000 sys 0.000003
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
Run Time: real 0.000008 user 0.000021 sys 0.000000
|
||||
Run Time: real 0.000651 user 0.000105 sys 0.000000
|
||||
Run Time: real 0.000004 user 0.000004 sys 0.000000
|
||||
4294967294
|
||||
Run Time: real 0.000007 user 0.000007 sys 0.000000
|
||||
Run Time: real 0.000003 user 0.000004 sys 0.000000
|
||||
Run Time: real 0.000002 user 0.000002 sys 0.000000
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
@@ -0,0 +1,122 @@
|
||||
## 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
|
||||
PRAGMA parser_trace = FALSE;
|
||||
ATTACH DATABASE '' || (':memory:') AS aux81;
|
||||
PRAGMA reverse_unordered_selects = ON;
|
||||
PRAGMA max_page_count;
|
||||
PRAGMA case_sensitive_like = OFF;
|
||||
PRAGMA writable_schema = NO;
|
||||
.quit
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1(a int, b int);
|
||||
INSERT INTO t1 VALUES(glob(NULL, NULL),NULL),(CAST(CAST(CAST(log10(if(0, 5035996954804773676, 1, 5035996954804773676, 5035996954804773676)) AS CLOB) AS UNSIGNED BIG INT) AS SMALLINT),18),(2,19);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT x, y FROM (SELECT 98 AS x, 99 AS y UNION SELECT a AS x, sum(b) AS y FROM _m GROUP BY /* PRAGMA secure_delete = TRUE; */ a) AS w WHERE y>=20 ORDER BY +x;
|
||||
SELECT x, y FROM (SELECT a AS x, sum(b) AS y FROM t1 GROUP BY a UNION SELECT 98 AS x, 99 AS y) AS w WHERE y>=20 ORDER BY +x;
|
||||
DROP VIEW IF EXISTS t1;
|
||||
INSERT INTO t1 VALUES (NULL, NULL);
|
||||
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 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;
|
||||
INSERT INTO T2 VALUES (NULL, NULL);
|
||||
ALTER TABLE T2 ADD COLUMN extra_2116 NUMERIC DEFAULT 0;
|
||||
REINDEX;
|
||||
UPDATE T2 SET A = 'x' WHERE A IS NOT NULL RETURNING *;
|
||||
SELECT * FROM (SELECT Y, COUNT(*) FROM T2 GROUP BY Y) AS sub;
|
||||
ALTER TABLE t1 DROP COLUMN b;
|
||||
SELECT LAG(X, 0) OVER (PARTITION BY X ORDER BY X ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T1;
|
||||
SELECT 0x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
SELECT LEAD(X, 1, NULL) OVER (PARTITION BY X ORDER BY X ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T1;
|
||||
PRAGMA vdbe_listing = YES;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_T1_7197 AS SELECT A FROM T1;
|
||||
ALTER TABLE T1 DROP COLUMN A;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_4345 ON T1((X + 1)) WHERE X IS NOT NULL;
|
||||
SELECT * FROM T1;
|
||||
DETACH DATABASE aux81;
|
||||
SELECT * FROM t1 WHERE EXISTS (SELECT 1 FROM t1 WHERE b > 0);
|
||||
VACUUM main;
|
||||
SELECT * FROM T2 WHERE A IN (SELECT A FROM T2 WHERE A IS NOT NULL);
|
||||
ALTER TABLE t1 RENAME TO t1_r6007;
|
||||
ALTER TABLE T1 RENAME TO T1_r5111;
|
||||
SELECT * FROM t1 WHERE EXISTS (SELECT 1 FROM t1 WHERE a = NULL);
|
||||
SELECT COUNT(X) OVER (ORDER BY X RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T1;
|
||||
SELECT NTH_VALUE(b, -1) OVER (ORDER BY b GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t1;
|
||||
ALTER TABLE t1 DROP COLUMN b;
|
||||
INSERT INTO T1 VALUES (NULL, 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
|
||||
SELECT * FROM t1 WHERE b IN (SELECT b FROM t1 WHERE b GLOB "*");
|
||||
INSERT OR FAIL INTO t1 VALUES (0, 0);
|
||||
REINDEX;
|
||||
INSERT INTO T1 VALUES ('x', NULL) ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
|
||||
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;
|
||||
ANALYZE T2;
|
||||
WITH m AS MATERIALIZED (SELECT * FROM T2) SELECT m.A FROM m JOIN m AS m2 ON m.A = m2.A;
|
||||
ALTER TABLE t1 RENAME TO t1_r3665;
|
||||
DELETE FROM T1 WHERE rowid = 99 RETURNING *;
|
||||
WITH RECURSIVE cnt(x) AS (VALUES(0) UNION ALL SELECT x-1 FROM cnt WHERE x>-10) SELECT * FROM cnt;
|
||||
INSERT INTO T1 VALUES (NULL, NULL);
|
||||
REINDEX;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
Run Time: real 0.000 user 0.000000 sys 0.000052
|
||||
Run Time: real 0.000 user 0.000000 sys 0.000133
|
||||
Run Time: real 0.000 user 0.000000 sys 0.000004
|
||||
1073741823
|
||||
Run Time: real 0.000 user 0.000000 sys 0.000009
|
||||
Run Time: real 0.000 user 0.000000 sys 0.000006
|
||||
Run Time: real 0.000 user 0.000000 sys 0.000003
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
Run Time: real 0.000021 user 0.000036 sys 0.000000
|
||||
Run Time: real 0.000073 user 0.000073 sys 0.000000
|
||||
Run Time: real 0.000002 user 0.000003 sys 0.000000
|
||||
4294967294
|
||||
Run Time: real 0.000006 user 0.000006 sys 0.000000
|
||||
Run Time: real 0.000003 user 0.000004 sys 0.000000
|
||||
Run Time: real 0.000002 user 0.000002 sys 0.000000
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
## 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 T (
|
||||
a TEXT,
|
||||
b REAL
|
||||
);
|
||||
INSERT INTO T VALUES ('a',json_valid(cos(json_array()), 4)), ('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;
|
||||
SELECT MAX(a) FROM T;
|
||||
INSERT OR FAIL INTO T VALUES (NULL, 0);
|
||||
REINDEX T;
|
||||
SELECT * FROM T;
|
||||
INSERT INTO T VALUES (NULL, NULL);
|
||||
DROP TRIGGER IF EXISTS T;
|
||||
DROP TRIGGER IF EXISTS T;
|
||||
SELECT * FROM T WHERE a IN (SELECT a FROM T);
|
||||
SELECT COUNT(*) FROM T;
|
||||
INSERT OR IGNORE INTO T VALUES ('x', 0);
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
INSERT OR ABORT INTO T VALUES ('x', '');
|
||||
PRAGMA query_only = NO;
|
||||
ALTER TABLE T RENAME COLUMN b TO b_r1653;
|
||||
WITH cte AS (SELECT * FROM T WHERE a IN (SELECT a FROM T LIMIT 5)) SELECT * FROM cte;
|
||||
SELECT * FROM T AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
ROLLBACK;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
|0.0
|
||||
2
|
||||
x|0.0
|
||||
x|0.0
|
||||
x|
|
||||
|0.0||0.0
|
||||
|||
|
||||
x|0.0|x|0.0
|
||||
|0.0||0.0
|
||||
|||
|
||||
x|0.0|x|0.0
|
||||
x||x|
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
@@ -0,0 +1,431 @@
|
||||
## 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 = YES;
|
||||
PRAGMA legacy_alter_table = 0;
|
||||
ATTACH DATABASE ':memory:' AS aux1;
|
||||
ATTACH DATABASE ':memory:' AS aux98;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (round(CAST(2147483646 AS INT8)), '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
|
||||
.progress 3
|
||||
.echo
|
||||
ATTACH DATABASE ':memory:' AS aux59;
|
||||
ATTACH DATABASE ':memory:' AS aux82;
|
||||
BEGIN IMMEDIATE TRANSACTION;
|
||||
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;
|
||||
DELETE FROM T WHERE 0 RETURNING *;
|
||||
COMMIT TRANSACTION;
|
||||
SELECT LAG(C, 0) OVER (ORDER BY C ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
|
||||
CREATE INDEX IF NOT EXISTS idx_T_770 ON T((C + 1)) WHERE +C > 0;
|
||||
SELECT AVG(A) OVER (ORDER BY A ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
|
||||
SELECT * FROM T WHERE C > (SELECT COUNT(*) FROM T);
|
||||
DETACH DATABASE aux82;
|
||||
SELECT NTH_VALUE(A, 2) OVER (ORDER BY A ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T;
|
||||
DETACH DATABASE aux59;
|
||||
INSERT OR ROLLBACK INTO T VALUES (NULL, 0, -8);
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
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
|
||||
.progress 3
|
||||
.echo
|
||||
ATTACH DATABASE ':memory:' AS aux59;
|
||||
ATTACH DATABASE ':memory:' AS aux82;
|
||||
BEGIN IMMEDIATE TRANSACTION;
|
||||
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;
|
||||
DELETE FROM T WHERE 0 RETURNING *;
|
||||
COMMIT TRANSACTION;
|
||||
SELECT LAG(C, 0) OVER (ORDER BY C ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
|
||||
CREATE INDEX IF NOT EXISTS idx_T_770 ON T((C + 1)) WHERE +C > 0;
|
||||
SELECT AVG(A) OVER (ORDER BY A ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
|
||||
SELECT * FROM T WHERE C > (SELECT COUNT(*) FROM T);
|
||||
DETACH DATABASE aux82;
|
||||
SELECT NTH_VALUE(A, 2) OVER (ORDER BY A ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T;
|
||||
DETACH DATABASE aux59;
|
||||
INSERT OR ROLLBACK INTO T VALUES (NULL, 0, -8);
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
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
|
||||
.progress 3
|
||||
.echo
|
||||
ATTACH DATABASE ':memory:' AS aux59;
|
||||
ATTACH DATABASE ':memory:' AS aux82;
|
||||
BEGIN IMMEDIATE TRANSACTION;
|
||||
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;
|
||||
DELETE FROM T WHERE 0 RETURNING *;
|
||||
COMMIT TRANSACTION;
|
||||
SELECT LAG(C, 0) OVER (ORDER BY C ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
|
||||
CREATE INDEX IF NOT EXISTS idx_T_770 ON T((C + 1)) WHERE +C > 0;
|
||||
SELECT AVG(A) OVER (ORDER BY A ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
|
||||
SELECT * FROM T WHERE C > (SELECT COUNT(*) FROM T);
|
||||
DETACH DATABASE aux82;
|
||||
SELECT NTH_VALUE(A, 2) OVER (ORDER BY A ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T;
|
||||
DETACH DATABASE aux59;
|
||||
INSERT OR ROLLBACK INTO T VALUES (NULL, 0, -8);
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
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
|
||||
.progress 3
|
||||
.echo
|
||||
ATTACH DATABASE ':memory:' AS aux59;
|
||||
ATTACH DATABASE ':memory:' AS aux82;
|
||||
BEGIN IMMEDIATE TRANSACTION;
|
||||
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;
|
||||
DELETE FROM T WHERE 0 RETURNING *;
|
||||
COMMIT TRANSACTION;
|
||||
SELECT LAG(C, 0) OVER (ORDER BY C ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
|
||||
CREATE INDEX IF NOT EXISTS idx_T_770 ON T((C + 1)) WHERE +C > 0;
|
||||
SELECT AVG(A) OVER (ORDER BY A ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
|
||||
SELECT * FROM T WHERE C > (SELECT COUNT(*) FROM T);
|
||||
DETACH DATABASE aux82;
|
||||
SELECT NTH_VALUE(A, 2) OVER (ORDER BY A ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T;
|
||||
DETACH DATABASE aux59;
|
||||
INSERT OR ROLLBACK INTO T VALUES (NULL, 0, -8);
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
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
|
||||
.progress 3
|
||||
.echo
|
||||
ATTACH DATABASE ':memory:' AS aux59;
|
||||
ATTACH DATABASE ':memory:' AS aux82;
|
||||
BEGIN IMMEDIATE TRANSACTION;
|
||||
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;
|
||||
DELETE FROM T WHERE 0 RETURNING *;
|
||||
COMMIT TRANSACTION;
|
||||
SELECT LAG(C, 0) OVER (ORDER BY C ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
|
||||
CREATE INDEX IF NOT EXISTS idx_T_770 ON T((C + 1)) WHERE +C > 0;
|
||||
SELECT AVG(A) OVER (ORDER BY A ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
|
||||
SELECT * FROM T WHERE C > (SELECT COUNT(*) FROM T);
|
||||
DETACH DATABASE aux82;
|
||||
SELECT NTH_VALUE(A, 2) OVER (ORDER BY A ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T;
|
||||
DETACH DATABASE aux59;
|
||||
INSERT OR ROLLBACK INTO T VALUES (NULL, 0, -8);
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
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
|
||||
.progress 3
|
||||
.echo
|
||||
ATTACH DATABASE ':memory:' AS aux59;
|
||||
ATTACH DATABASE ':memory:' AS aux82;
|
||||
BEGIN IMMEDIATE TRANSACTION;
|
||||
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;
|
||||
DELETE FROM T WHERE 0 RETURNING *;
|
||||
COMMIT TRANSACTION;
|
||||
SELECT LAG(C, 0) OVER (ORDER BY C ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
|
||||
CREATE INDEX IF NOT EXISTS idx_T_770 ON T((C + 1)) WHERE +C > 0;
|
||||
SELECT AVG(A) OVER (ORDER BY A ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
|
||||
SELECT * FROM T WHERE C > (SELECT COUNT(*) FROM T);
|
||||
DETACH DATABASE aux82;
|
||||
SELECT NTH_VALUE(A, 2) OVER (ORDER BY A ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T;
|
||||
DETACH DATABASE aux59;
|
||||
INSERT OR ROLLBACK INTO T VALUES (NULL, 0, -8);
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
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
|
||||
.progress 3
|
||||
.echo
|
||||
ATTACH DATABASE ':memory:' AS aux59;
|
||||
ATTACH DATABASE ':memory:' AS aux82;
|
||||
BEGIN IMMEDIATE TRANSACTION;
|
||||
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;
|
||||
DELETE FROM T WHERE 0 RETURNING *;
|
||||
COMMIT TRANSACTION;
|
||||
SELECT LAG(C, 0) OVER (ORDER BY C ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
|
||||
CREATE INDEX IF NOT EXISTS idx_T_770 ON T((C + 1)) WHERE +C > 0;
|
||||
SELECT AVG(A) OVER (ORDER BY A ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
|
||||
SELECT * FROM T WHERE C > (SELECT COUNT(*) FROM T);
|
||||
DETACH DATABASE aux82;
|
||||
SELECT NTH_VALUE(A, 2) OVER (ORDER BY A ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T;
|
||||
DETACH DATABASE aux59;
|
||||
INSERT OR ROLLBACK INTO T VALUES (NULL, 0, -8);
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
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
|
||||
.progress 3
|
||||
.echo
|
||||
ATTACH DATABASE ':memory:' AS aux59;
|
||||
ATTACH DATABASE ':memory:' AS aux82;
|
||||
BEGIN IMMEDIATE TRANSACTION;
|
||||
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;
|
||||
DELETE FROM T WHERE 0 RETURNING *;
|
||||
COMMIT TRANSACTION;
|
||||
SELECT LAG(C, 0) OVER (ORDER BY C ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T;
|
||||
CREATE INDEX IF NOT EXISTS idx_T_770 ON T((C + 1)) WHERE +C > 0;
|
||||
SELECT AVG(A) OVER (ORDER BY A ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
|
||||
SELECT * FROM T WHERE C > (SELECT COUNT(*) FROM T);
|
||||
DETACH DATABASE aux82;
|
||||
SELECT NTH_VALUE(A, 2) OVER (ORDER BY A ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T;
|
||||
DETACH DATABASE aux59;
|
||||
INSERT OR ROLLBACK INTO T VALUES (NULL, 0, -8);
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
UPdatE T SET B = '' WHERE rowid = 1 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 t1;
|
||||
END TRANSACTION;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_4619 AFTER UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
SELECT * FROM t1 AS a JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T WHERE C IN (SELECT C FROM T WHERE C GLOB "*");
|
||||
SELECT * FROM t1 AS a FULL JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM (SELECT * FROM (SELECT * FROM t1) AS inner1) AS inner2;
|
||||
DETACH DATABASE aux98;
|
||||
CREATE VIEW IF NOT EXISTS v_T_6251 AS SELECT A FROM T;
|
||||
WITH cte AS (SELECT * FROM T) SELECT * FROM cte;
|
||||
CREATE INDEX IF NOT EXISTS idx_T_4166 ON T(A);
|
||||
SELECT * FROM t1 t1 JOIN (SELECT * FROM t1) AS sub ON t1.b = sub.b;
|
||||
DETACH DATABASE aux1;
|
||||
SELECT * FROM T NATURAL JOIN T;
|
||||
ALTER TABLE T RENAME COLUMN A TO A_r1687;
|
||||
SELECT LAG(d, 1, NULL) OVER (PARTITION BY d ORDER BY d RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM t1;
|
||||
ALTER TABLE t1 DROP COLUMN c;
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
SELECT * FROM T;
|
||||
PRAGMA synchronous = 'NORMAL';
|
||||
WITH a AS NOT MATERIALIZED (SELECT * FROM t1), b AS MATERIALIZED (SELECT * FROM a) SELECT * FROM b;
|
||||
ALTER TABLE t1 RENAME COLUMN c TO c_r9513;
|
||||
|
||||
```
|
||||
|
||||
## 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|2147483646
|
||||
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|2147483646
|
||||
von|20|2
|
||||
Braun|30
|
||||
Wernher|10
|
||||
von|20
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,922 @@
|
||||
## 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
|
||||
ATTACH DATABASE ':memory:' AS aux74;
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b REAL,
|
||||
c REAL
|
||||
);
|
||||
INSERT INTO T VALUES (json_array('`', atan(x'c442')),power(sqlite_compileoption_used(2.0), 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;
|
||||
PRAGMA legacy_alter_table = OFF;
|
||||
PRAGMA legacy_alter_table = ON;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE main.t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh((like('9223372036854775806%', instr(NULL, NULL)) + 0.0)), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE NOT NOT +a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh(1), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh(1), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh(1), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh(1), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
|
||||
WITH cte AS (SELECT a, LAG(a) OVER (ORDER BY a) AS prev FROM t1) SELECT * FROM cte;
|
||||
INSERT INTO t1 VALUES ('x') ON CONFLICT(a) DO UPDATE SET a = excluded.a;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
SELECT * FROM t1 WHERE a IN (SELECT ALL a FROM t1);
|
||||
SELECT SUM(a) FROM t1;
|
||||
SELECT * FROM t1 t1 RIGHT JOIN t1 t2 ON t1.a = (SELECT a FROM t1 WHERE a = t1.a);
|
||||
ANALYZE;
|
||||
CREATE TABLE T1 (
|
||||
a INTEGER,
|
||||
b TEXT
|
||||
);
|
||||
CREATE TABLE T2 (
|
||||
a INTEGER,
|
||||
b TEXT
|
||||
);
|
||||
INSERT INTO T1 VALUES (1,'a'),(2,'b');
|
||||
INSERT INTO T2 VALUES (1,'c'),(1,'d');
|
||||
SELECT T1.b,
|
||||
(
|
||||
SELECT GROUP_CONCAT(b,',')
|
||||
FROM T2
|
||||
WHERE T2.a=T1.a
|
||||
) AS c
|
||||
FROM T1;
|
||||
SELECT 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;
|
||||
PRAGMA page_count;
|
||||
ALTER TABLE T2 ADD COLUMN extra_8536 INT8 DEFAULT CURRENT_TIMESTAMP;
|
||||
SELECT * FROM T2;
|
||||
SELECT NTH_VALUE(a, -1) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM T2;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
PRAGMA vdbe_debug = OFF;
|
||||
INSERT INTO T2 VALUES (NULL, NULL);
|
||||
|
||||
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 AVG(b) FROM T2;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_T1_3200 AS SELECT a FROM T1;
|
||||
VACUUM main;
|
||||
DROP INDEX IF EXISTS t1;
|
||||
SELECT * FROM (SELECT * FROM T2 ORDER BY a) AS sub LIMIT 10;
|
||||
UPDATE T1 SET a = 'x' WHERE a BETWEEN 0 AND 100;
|
||||
SELECT NTILE(4) OVER (PARTITION BY a ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T1;
|
||||
|
||||
SELECT COUNT(*) FROM T1;
|
||||
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<23) SELECT * FROM cnt;
|
||||
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;
|
||||
PRAGMA legacy_alter_table = OFF;
|
||||
PRAGMA legacy_alter_table = ON;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE main.t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh((like('9223372036854775806%', instr(NULL, NULL)) + 0.0)), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE NOT NOT +a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh(1), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh(1), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh(1), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh(1), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
|
||||
WITH cte AS (SELECT a, LAG(a) OVER (ORDER BY a) AS prev FROM t1) SELECT * FROM cte;
|
||||
INSERT INTO t1 VALUES ('x') ON CONFLICT(a) DO UPDATE SET a = excluded.a;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
SELECT * FROM t1 WHERE a IN (SELECT ALL a FROM t1);
|
||||
SELECT SUM(a) FROM t1;
|
||||
SELECT * FROM t1 t1 RIGHT JOIN t1 t2 ON t1.a = (SELECT a FROM t1 WHERE a = t1.a);
|
||||
ANALYZE;
|
||||
CREATE TABLE T1 (
|
||||
a INTEGER,
|
||||
b TEXT
|
||||
);
|
||||
CREATE TABLE T2 (
|
||||
a INTEGER,
|
||||
b TEXT
|
||||
);
|
||||
INSERT INTO T1 VALUES (1,'a'),(2,'b');
|
||||
INSERT INTO T2 VALUES (1,'c'),(1,'d');
|
||||
SELECT T1.b,
|
||||
(
|
||||
SELECT GROUP_CONCAT(b,',')
|
||||
FROM T2
|
||||
WHERE T2.a=T1.a
|
||||
) AS c
|
||||
FROM T1;
|
||||
SELECT 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;
|
||||
PRAGMA page_count;
|
||||
ALTER TABLE T2 ADD COLUMN extra_8536 INT8 DEFAULT CURRENT_TIMESTAMP;
|
||||
SELECT * FROM T2;
|
||||
SELECT NTH_VALUE(a, -1) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM T2;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
PRAGMA vdbe_debug = OFF;
|
||||
INSERT INTO T2 VALUES (NULL, NULL);
|
||||
|
||||
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 AVG(b) FROM T2;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_T1_3200 AS SELECT a FROM T1;
|
||||
VACUUM main;
|
||||
DROP INDEX IF EXISTS t1;
|
||||
SELECT * FROM (SELECT * FROM T2 ORDER BY a) AS sub LIMIT 10;
|
||||
UPDATE T1 SET a = 'x' WHERE a BETWEEN 0 AND 100;
|
||||
SELECT NTILE(4) OVER (PARTITION BY a ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T1;
|
||||
|
||||
SELECT COUNT(*) FROM T1;
|
||||
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<23) SELECT * FROM cnt;
|
||||
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;
|
||||
PRAGMA legacy_alter_table = OFF;
|
||||
PRAGMA legacy_alter_table = ON;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE main.t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh((like('9223372036854775806%', instr(NULL, NULL)) + 0.0)), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE NOT NOT +a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh(1), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh(1), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh(1), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh(1), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
|
||||
WITH cte AS (SELECT a, LAG(a) OVER (ORDER BY a) AS prev FROM t1) SELECT * FROM cte;
|
||||
INSERT INTO t1 VALUES ('x') ON CONFLICT(a) DO UPDATE SET a = excluded.a;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
SELECT * FROM t1 WHERE a IN (SELECT ALL a FROM t1);
|
||||
SELECT SUM(a) FROM t1;
|
||||
SELECT * FROM t1 t1 RIGHT JOIN t1 t2 ON t1.a = (SELECT a FROM t1 WHERE a = t1.a);
|
||||
ANALYZE;
|
||||
CREATE TABLE T1 (
|
||||
a INTEGER,
|
||||
b TEXT
|
||||
);
|
||||
CREATE TABLE T2 (
|
||||
a INTEGER,
|
||||
b TEXT
|
||||
);
|
||||
INSERT INTO T1 VALUES (1,'a'),(2,'b');
|
||||
INSERT INTO T2 VALUES (1,'c'),(1,'d');
|
||||
SELECT T1.b,
|
||||
(
|
||||
SELECT GROUP_CONCAT(b,',')
|
||||
FROM T2
|
||||
WHERE T2.a=T1.a
|
||||
) AS c
|
||||
FROM T1;
|
||||
SELECT 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;
|
||||
PRAGMA page_count;
|
||||
ALTER TABLE T2 ADD COLUMN extra_8536 INT8 DEFAULT CURRENT_TIMESTAMP;
|
||||
SELECT * FROM T2;
|
||||
SELECT NTH_VALUE(a, -1) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM T2;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
PRAGMA vdbe_debug = OFF;
|
||||
INSERT INTO T2 VALUES (NULL, NULL);
|
||||
|
||||
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 AVG(b) FROM T2;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_T1_3200 AS SELECT a FROM T1;
|
||||
VACUUM main;
|
||||
DROP INDEX IF EXISTS t1;
|
||||
SELECT * FROM (SELECT * FROM T2 ORDER BY a) AS sub LIMIT 10;
|
||||
UPDATE T1 SET a = 'x' WHERE a BETWEEN 0 AND 100;
|
||||
SELECT NTILE(4) OVER (PARTITION BY a ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE /**/ GROUP) FROM T1;
|
||||
|
||||
SELECT COUNT(*) FROM T1;
|
||||
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<23) SELECT * FROM cnt;
|
||||
|
||||
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<15) SELECT SUM(x) FROM cnt;
|
||||
SELECT * FROM T2;
|
||||
DETACH DATABASE aux74;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_580 BEFORE DELETE ON t1 FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END;
|
||||
INSERT INTO T2 DEFAULT VALUES;
|
||||
ALTER TABLE t1 RENAME TO t1_r5067;
|
||||
ANALYZE;
|
||||
CREATE INDEX IF NOT EXISTS idx_T_1933 ON T(c COLLATE NOCASE);
|
||||
DROP TRIGGER IF EXISTS T2;
|
||||
SELECT SUM(b) FROM T;
|
||||
|
||||
SELECT COUNT(*) FROM T1;
|
||||
CREATE TABLE T (
|
||||
a TEXT,
|
||||
b TEXT
|
||||
);
|
||||
INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01');
|
||||
SELECT a,
|
||||
CAST(
|
||||
(julianday('now')-julianday(b))/365.25
|
||||
AS INTEGER
|
||||
) AS c
|
||||
FROM T;
|
||||
ALTER TABLE T RENAME COLUMN b TO b_r9279;
|
||||
ALTER TABLE T1 DROP COLUMN a;
|
||||
UPDATE T SET a = '' WHERE a IS NOT NULL;
|
||||
ANALYZE;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_3723 ON T(b);
|
||||
ALTER TABLE T1 DROP COLUMN a;
|
||||
SELECT LEAD(a, 0, 'default') OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T;
|
||||
SELECT * FROM T WHERE a NOT IN (SELECT a FROM T);
|
||||
INSERT INTO T1 VALUES (NULL, NULL);
|
||||
ALTER TABLE T2 RENAME TO T2_r6027;
|
||||
SELECT * FROM t1 AS a INNER JOIN T1 AS b ON a.rowid = b.rowid;
|
||||
INSERT INTO T2 SELECT * FROM T2;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
1|-70.875
|
||||
2|-Inf
|
||||
["`",null]|0.0
|
||||
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
|
||||
WARNING: writing to an imposter table will corrupt the "t1bc" index!
|
||||
Braun|30|3
|
||||
von|20|2
|
||||
Braun|30
|
||||
von|20
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
-vfs unix
|
||||
```
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
## Summary
|
||||
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
|
||||
|
||||
## Minimized query
|
||||
|
||||
```sql
|
||||
PRAGMA max_page_count;
|
||||
PRAGMA case_sensitive_like = OFF;
|
||||
PRAGMA writable_schema = NO;
|
||||
.quit
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1(a int, b int);
|
||||
INSERT INTO t1 VALUES(1,2),(1,18),(2,19);
|
||||
SELECT x, y FROM (SELECT 98 AS x, 99 AS y UNION SELECT a AS x, sum(b) AS y FROM t1 GROUP BY a) AS w WHERE y>=20 ORDER BY +x;
|
||||
SELECT x, y FROM (SELECT a AS x, sum(b) AS y FROM t1 GROUP BY a UNION SELECT 98 AS x, 99 AS y) AS w WHERE y>=20 ORDER BY +x;
|
||||
|
||||
DROP VIEW IF EXISTS t1;
|
||||
INSERT INTO t1 VALUES (NULL, NULL);
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
1073741823
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
4294967294
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
-noheader
|
||||
```
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
## 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 REAL,
|
||||
c REAL
|
||||
);
|
||||
INSERT INTO T VALUES (upper('hello'),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;
|
||||
PRAGMA trusted_schema;
|
||||
PRAGMA defer_foreign_keys;
|
||||
PRAGMA synchronous = 'EXTRA';
|
||||
.nullvalue -(-(2))32327d3-536b-41de-a764-a6301986aeab
|
||||
CREATE TABLE t0(c0);
|
||||
INSERT INTO t0(c0) VALUES (NULL);
|
||||
CREATE INDEX i0 ON t0(1) 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 AND TRUE;
|
||||
|
||||
REINDEX T;
|
||||
ANALYZE;
|
||||
DROP INDEX IF EXISTS t0;
|
||||
PRAGMA wal_autocheckpoint = 1000;
|
||||
UPDATE t0 SET c0 = NULL WHERE c0 IS NOT NULL;
|
||||
ALTER TABLE T RENAME TO T_r6099;
|
||||
CREATE VIEW IF NOT EXISTS v_T_502 AS SELECT c FROM T;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
1|-70.875
|
||||
2|-Inf
|
||||
HELLO|21.0
|
||||
1
|
||||
0
|
||||
1
|
||||
1000
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
1|-70.875
|
||||
2|-Inf
|
||||
HELLO|21.0
|
||||
0
|
||||
0
|
||||
1
|
||||
1
|
||||
1000
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
@@ -0,0 +1,718 @@
|
||||
## 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 aux84;
|
||||
PRAGMA synchronous = '1';
|
||||
ATTACH DATABASE ':memory:' AS aux94;
|
||||
BEGIN;
|
||||
ATTACH DATABASE '' || (':memory:') AS aux85;
|
||||
-- typeof(randomblob(1))
|
||||
|
||||
.auth OFF
|
||||
PRAGMA count_changes = OFF;
|
||||
PRAGMA legacy_alter_table = ON;
|
||||
CREATE TABLE t1(a CHARINT PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (-(-(NULL)), 'Wernher', json_quote(tanh(-(-(NULL)))), -concat_ws('|', 'a', NULL, 'b'));
|
||||
INSERT INTO t1 VALUES (exp(unicode(CAST(x'ec53ac57fa' AS INT))), 'von', sqrt('}'), power(200, 200));
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
BEGIN EXCLUSIVE;
|
||||
CREATE TABLE map_integer (id INT, name);
|
||||
INSERT INTO map_integer VALUES(lower('你好'),'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(3547739615393531126,'abc');
|
||||
INSERT INTO data VALUES('4','xyz');
|
||||
CREATE VIEW idmap as WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (SELECT * FROM map_integer) SELECT * FROM map_text) SELECT * FROM _m UNION SELECT * FROM _m;
|
||||
CREATE TABLE mzed AS SELECT * FROM idmap;
|
||||
PRAGMA automatic_index=ON;
|
||||
SELECT * FROM data JOIN idmap USING(id);
|
||||
SELECT * FROM data AS a LEFT JOIN map_integer AS b ON a.rowid = b.rowid;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_map_integer_6193 AS SELECT name FROM map_integer;
|
||||
CREATE VIEW IF NOT EXISTS v_data_9060 AS SELECT name FROM data;
|
||||
INSERT INTO data SELECT * FROM data;
|
||||
PRAGMA ignore_check_constraints = 0;
|
||||
ALTER TABLE data ADD COLUMN extra_9221 TINYINT DEFAULT '';
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_map_text_5459 AS SELECT name FROM map_text;
|
||||
COMMIT;
|
||||
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;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_map_text_8647 AFTER DELETE ON map_text FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
SELECT NTH_VALUE(id, 0) OVER (PARTITION BY id ORDER BY id ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM map_integer;
|
||||
REINDEX map_integer;
|
||||
DELETE FROM map_integer WHERE NOT NOT (0) ;
|
||||
UPDATE map_text SET id = 'x' WHERE rowid = 1;
|
||||
DELETE FROM map_integer WHERE rowid = 41;
|
||||
CREATE VIEW IF NOT EXISTS v_data_9250 AS SELECT name FROM data;
|
||||
ALTER TABLE data DROP COLUMN id;
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C INTEGER,
|
||||
UNIQUE (B, C)
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -2147483648);
|
||||
INSERT INTO T VALUES ('b', 'q', 700);
|
||||
INSERT INTO T VALUES ('c', 'r', 0);
|
||||
INSERT INTO T VALUES ('d', 's', 2147483647);
|
||||
INSERT INTO T VALUES ('e', 't', -1);
|
||||
INSERT INTO T VALUES ('f', 'u', 1);
|
||||
SELECT * FROM T WHERE C BETWEEN -1000 AND 1000 ORDER BY C ASC;
|
||||
INSERT INTO map_text VALUES (1, 1) ON CONFLICT(id) DO UPDATE SET id = excluded.id, name = excluded.name;
|
||||
PRAGMA foreign_key_list(users);
|
||||
SELECT COUNT(*) FROM data;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_7942 AS SELECT C FROM T;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_map_text_1196 ON map_text(id) WHERE id > 0;
|
||||
SELECT COUNT(C) FROM T;
|
||||
DELETE FROM T WHERE rowid = 20 RETURNING *;
|
||||
INSERT OR REPLACE INTO data VALUES (-8, 'x');
|
||||
SELECT * FROM map_text;
|
||||
WITH a AS (SELECT a FROM T1), b AS (SELECT a FROM a), c AS (SELECT a FROM b) SELECT * FROM c;
|
||||
REINDEX map_text;
|
||||
SELECT SUM(id) OVER (ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM map_text;
|
||||
PRAGMA legacy_alter_table = ON;
|
||||
CREATE TABLE t1(a DOUB PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (-(-(NULL)), 'Wernher', json_quote(123), 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
BEGIN EXCLUSIVE;
|
||||
CREATE TABLE map_integer (id INT, name);
|
||||
INSERT INTO map_integer VALUES(lower('你好'),'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(3547739615393531126,'abc');
|
||||
INSERT INTO data VALUES('4','xyz');
|
||||
CREATE VIEW idmap as WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (SELECT * FROM map_integer) SELECT * FROM map_text) SELECT * FROM _m UNION SELECT * FROM _m;
|
||||
CREATE TABLE mzed AS SELECT * FROM idmap;
|
||||
PRAGMA automatic_index=ON;
|
||||
SELECT * FROM data JOIN idmap USING(id);
|
||||
SELECT * FROM data AS a LEFT JOIN map_integer AS b ON a.rowid = b.rowid;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_map_integer_6193 AS SELECT name FROM map_integer;
|
||||
CREATE VIEW IF NOT EXISTS v_data_9060 AS SELECT name FROM data;
|
||||
INSERT INTO data SELECT * FROM data;
|
||||
PRAGMA ignore_check_constraints = 0;
|
||||
ALTER TABLE data ADD COLUMN extra_9221 TINYINT DEFAULT '';
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_map_text_5459 AS SELECT name FROM map_text;
|
||||
COMMIT;
|
||||
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;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_map_text_8647 AFTER DELETE ON map_text FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
SELECT NTH_VALUE(id, 0) OVER (PARTITION BY id ORDER BY id ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM map_integer;
|
||||
REINDEX map_integer;
|
||||
DELETE FROM map_integer WHERE NOT NOT (0) ;
|
||||
UPDATE map_text SET id = 'x' WHERE rowid = 1;
|
||||
DELETE FROM map_integer WHERE rowid = 41;
|
||||
CREATE VIEW IF NOT EXISTS v_data_9250 AS SELECT name FROM data;
|
||||
ALTER TABLE data DROP COLUMN id;
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C INTEGER,
|
||||
UNIQUE (B, C)
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -2147483648);
|
||||
INSERT INTO T VALUES ('b', 'q', 700);
|
||||
INSERT INTO T VALUES ('c', 'r', 0);
|
||||
INSERT INTO T VALUES ('d', 's', 2147483647);
|
||||
INSERT INTO T VALUES ('e', 't', -1);
|
||||
INSERT INTO T VALUES ('f', 'u', 1);
|
||||
SELECT * FROM T WHERE C BETWEEN -1000 AND 1000 ORDER BY C ASC;
|
||||
INSERT INTO map_text VALUES (1, 1) ON CONFLICT(id) DO UPDATE SET id = excluded.id, name = excluded.name;
|
||||
PRAGMA foreign_key_list(users);
|
||||
SELECT COUNT(*) FROM data;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_7942 AS SELECT C FROM T;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_map_text_1196 ON map_text(id) WHERE id > 0;
|
||||
SELECT COUNT(C) FROM T;
|
||||
DELETE FROM T WHERE rowid = 20 RETURNING *;
|
||||
INSERT OR REPLACE INTO data VALUES (-8, 'x');
|
||||
SELECT * FROM map_text;
|
||||
WITH a AS (SELECT a FROM T1), b AS (SELECT a FROM a), c AS (SELECT a FROM b) SELECT * FROM c;
|
||||
REINDEX map_text;
|
||||
SELECT SUM(id) OVER (ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM map_text;
|
||||
PRAGMA legacy_alter_table = ON;
|
||||
CREATE TABLE t1(a DOUB PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (-(-(NULL)), 'Wernher', json_quote(123), 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
BEGIN EXCLUSIVE;
|
||||
CREATE TABLE map_integer (id INT, name);
|
||||
INSERT INTO map_integer VALUES(lower('你好'),'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(3547739615393531126,'abc');
|
||||
INSERT INTO data VALUES('4','xyz');
|
||||
CREATE VIEW idmap as WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (SELECT * FROM map_integer) SELECT * FROM map_text) SELECT * FROM _m UNION SELECT * FROM _m;
|
||||
CREATE TABLE mzed AS SELECT * FROM idmap;
|
||||
PRAGMA automatic_index=ON;
|
||||
SELECT * FROM data JOIN idmap USING(id);
|
||||
SELECT * FROM data AS a LEFT JOIN map_integer AS b ON a.rowid = b.rowid;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_map_integer_6193 AS SELECT name FROM map_integer;
|
||||
CREATE VIEW IF NOT EXISTS v_data_9060 AS SELECT name FROM data;
|
||||
INSERT INTO data SELECT * FROM data;
|
||||
PRAGMA ignore_check_constraints = 0;
|
||||
ALTER TABLE data ADD COLUMN extra_9221 TINYINT DEFAULT '';
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_map_text_5459 AS SELECT name FROM map_text;
|
||||
COMMIT;
|
||||
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;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_map_text_8647 AFTER DELETE ON map_text FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
SELECT NTH_VALUE(id, 0) OVER (PARTITION BY id ORDER BY id ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM map_integer;
|
||||
REINDEX map_integer;
|
||||
DELETE FROM map_integer WHERE NOT NOT (0) ;
|
||||
UPDATE map_text SET id = 'x' WHERE rowid = 1;
|
||||
DELETE FROM map_integer WHERE rowid = 41;
|
||||
CREATE VIEW IF NOT EXISTS v_data_9250 AS SELECT name FROM data;
|
||||
ALTER TABLE data DROP COLUMN id;
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C INTEGER,
|
||||
UNIQUE (B, C)
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -2147483648);
|
||||
INSERT INTO T VALUES ('b', 'q', 700);
|
||||
INSERT INTO T VALUES ('c', 'r', 0);
|
||||
INSERT INTO T VALUES ('d', 's', 2147483647);
|
||||
INSERT INTO T VALUES ('e', 't', -1);
|
||||
INSERT INTO T VALUES ('f', 'u', 1);
|
||||
SELECT * FROM T WHERE C BETWEEN -1000 AND 1000 ORDER BY C ASC;
|
||||
INSERT INTO map_text VALUES (1, 1) ON CONFLICT(id) DO UPDATE SET id = excluded.id, name = excluded.name;
|
||||
PRAGMA foreign_key_list(users);
|
||||
SELECT COUNT(*) FROM data;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_7942 AS SELECT C FROM T;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_map_text_1196 ON map_text(id) WHERE id > 0;
|
||||
SELECT COUNT(C) FROM T;
|
||||
DELETE FROM T WHERE rowid = 20 RETURNING *;
|
||||
INSERT OR REPLACE INTO data VALUES (-8, 'x');
|
||||
SELECT * FROM map_text;
|
||||
WITH a AS (SELECT a FROM T1), b AS (SELECT a FROM a), c AS (SELECT a FROM b) SELECT * FROM c;
|
||||
REINDEX map_text;
|
||||
SELECT SUM(id) OVER (ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM map_text;
|
||||
PRAGMA legacy_alter_table = ON;
|
||||
CREATE TABLE t1(a DOUB PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (-(-(NULL)), 'Wernher', json_quote(123), 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
BEGIN EXCLUSIVE;
|
||||
CREATE TABLE map_integer (id INT, name);
|
||||
INSERT INTO map_integer VALUES(lower('你好'),'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(3547739615393531126,'abc');
|
||||
INSERT INTO data VALUES('4','xyz');
|
||||
CREATE VIEW idmap as WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (SELECT * FROM map_integer) SELECT * FROM map_text) SELECT * FROM _m UNION SELECT * FROM _m;
|
||||
CREATE TABLE mzed AS SELECT * FROM idmap;
|
||||
PRAGMA automatic_index=ON;
|
||||
SELECT * FROM data JOIN idmap USING(id);
|
||||
SELECT * FROM data AS a LEFT JOIN map_integer AS b ON a.rowid = b.rowid;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_map_integer_6193 AS SELECT name FROM map_integer;
|
||||
CREATE VIEW IF NOT EXISTS v_data_9060 AS SELECT name FROM data;
|
||||
INSERT INTO data SELECT * FROM data;
|
||||
PRAGMA ignore_check_constraints = 0;
|
||||
ALTER TABLE data ADD COLUMN extra_9221 TINYINT DEFAULT '';
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_map_text_5459 AS SELECT name FROM map_text;
|
||||
COMMIT;
|
||||
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;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_map_text_8647 AFTER DELETE ON map_text FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
SELECT NTH_VALUE(id, 0) OVER (PARTITION BY id ORDER BY id ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM map_integer;
|
||||
REINDEX map_integer;
|
||||
DELETE FROM map_integer WHERE NOT NOT (0) ;
|
||||
UPDATE map_text SET id = 'x' WHERE rowid = 1;
|
||||
DELETE FROM map_integer WHERE rowid = 41;
|
||||
CREATE VIEW IF NOT EXISTS v_data_9250 AS SELECT name FROM data;
|
||||
ALTER TABLE data DROP COLUMN id;
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C INTEGER,
|
||||
UNIQUE (B, C)
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -2147483648);
|
||||
INSERT INTO T VALUES ('b', 'q', 700);
|
||||
INSERT INTO T VALUES ('c', 'r', 0);
|
||||
INSERT INTO T VALUES ('d', 's', 2147483647);
|
||||
INSERT INTO T VALUES ('e', 't', -1);
|
||||
INSERT INTO T VALUES ('f', 'u', 1);
|
||||
SELECT * FROM T WHERE C BETWEEN -1000 AND 1000 ORDER BY C ASC;
|
||||
INSERT INTO map_text VALUES (1, 1) ON CONFLICT(id) DO UPDATE SET id = excluded.id, name = excluded.name;
|
||||
PRAGMA foreign_key_list(users);
|
||||
SELECT COUNT(*) FROM data;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_7942 AS SELECT C FROM T;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_map_text_1196 ON map_text(id) WHERE id > 0;
|
||||
SELECT COUNT(C) FROM T;
|
||||
DELETE FROM T WHERE rowid = 20 RETURNING *;
|
||||
INSERT OR REPLACE INTO data VALUES (-8, 'x');
|
||||
SELECT * FROM map_text;
|
||||
WITH a AS (SELECT a FROM T1), b AS (SELECT a FROM a), c AS (SELECT a FROM b) SELECT * FROM c;
|
||||
REINDEX map_text;
|
||||
SELECT SUM(id) OVER (ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM map_text;
|
||||
PRAGMA legacy_alter_table = ON;
|
||||
CREATE TABLE t1(a DOUB PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (-(-(NULL)), 'Wernher', json_quote(123), 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
BEGIN EXCLUSIVE;
|
||||
CREATE TABLE map_integer (id INT, name);
|
||||
INSERT INTO map_integer VALUES(lower('你好'),'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(3547739615393531126,'abc');
|
||||
INSERT INTO data VALUES('4','xyz');
|
||||
CREATE VIEW idmap as WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (SELECT * FROM map_integer) SELECT * FROM map_text) SELECT * FROM _m UNION SELECT * FROM _m;
|
||||
CREATE TABLE mzed AS SELECT * FROM idmap;
|
||||
PRAGMA automatic_index=ON;
|
||||
SELECT * FROM data JOIN idmap USING(id);
|
||||
SELECT * FROM data AS a LEFT JOIN map_integer AS b ON a.rowid = b.rowid;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_map_integer_6193 AS SELECT name FROM map_integer;
|
||||
CREATE VIEW IF NOT EXISTS v_data_9060 AS SELECT name FROM data;
|
||||
INSERT INTO data SELECT * FROM data;
|
||||
PRAGMA ignore_check_constraints = 0;
|
||||
ALTER TABLE data ADD COLUMN extra_9221 TINYINT DEFAULT '';
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_map_text_5459 AS SELECT name FROM map_text;
|
||||
COMMIT;
|
||||
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;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_map_text_8647 AFTER DELETE ON map_text FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
SELECT NTH_VALUE(id, 0) OVER (PARTITION BY id ORDER BY id ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM map_integer;
|
||||
REINDEX map_integer;
|
||||
DELETE FROM map_integer WHERE NOT NOT (0) ;
|
||||
UPDATE map_text SET id = 'x' WHERE rowid = 1;
|
||||
DELETE FROM map_integer WHERE rowid = 41;
|
||||
CREATE VIEW IF NOT EXISTS v_data_9250 AS SELECT name FROM data;
|
||||
ALTER TABLE data DROP COLUMN id;
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C INTEGER,
|
||||
UNIQUE (B, C)
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -2147483648);
|
||||
INSERT INTO T VALUES ('b', 'q', 700);
|
||||
INSERT INTO T VALUES ('c', 'r', 0);
|
||||
INSERT INTO T VALUES ('d', 's', 2147483647);
|
||||
INSERT INTO T VALUES ('e', 't', -1);
|
||||
INSERT INTO T VALUES ('f', 'u', 1);
|
||||
SELECT * FROM T WHERE C BETWEEN -1000 AND 1000 ORDER BY C ASC;
|
||||
INSERT INTO map_text VALUES (1, 1) ON CONFLICT(id) DO UPDATE SET id = excluded.id, name = excluded.name;
|
||||
PRAGMA foreign_key_list(users);
|
||||
SELECT COUNT(*) FROM data;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_7942 AS SELECT C FROM T;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_map_text_1196 ON map_text(id) WHERE id > 0;
|
||||
SELECT COUNT(C) FROM T;
|
||||
DELETE FROM T WHERE rowid = 20 RETURNING *;
|
||||
INSERT OR REPLACE INTO data VALUES (-8, 'x');
|
||||
SELECT * FROM map_text;
|
||||
WITH a AS (SELECT a FROM T1), b AS (SELECT a FROM a), c AS (SELECT a FROM b) SELECT * FROM c;
|
||||
REINDEX map_text;
|
||||
SELECT SUM(id) OVER (ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM map_text;
|
||||
PRAGMA legacy_alter_table = ON;
|
||||
CREATE TABLE t1(a DOUB PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (-(-(NULL)), 'Wernher', json_quote(123), 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
BEGIN EXCLUSIVE;
|
||||
CREATE TABLE map_integer (id INT, name);
|
||||
INSERT INTO map_integer VALUES(lower('你好'),'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(3547739615393531126,'abc');
|
||||
INSERT INTO data VALUES('4','xyz');
|
||||
CREATE VIEW idmap as WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (SELECT * FROM map_integer) SELECT * FROM map_text) SELECT * FROM _m UNION SELECT * FROM _m;
|
||||
CREATE TABLE mzed AS SELECT * FROM idmap;
|
||||
PRAGMA automatic_index=ON;
|
||||
SELECT * FROM data JOIN idmap USING(id);
|
||||
SELECT * FROM data AS a LEFT JOIN map_integer AS b ON a.rowid = b.rowid;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_map_integer_6193 AS SELECT name FROM map_integer;
|
||||
CREATE VIEW IF NOT EXISTS v_data_9060 AS SELECT name FROM data;
|
||||
INSERT INTO data SELECT * FROM data;
|
||||
PRAGMA ignore_check_constraints = 0;
|
||||
ALTER TABLE data ADD COLUMN extra_9221 TINYINT DEFAULT '';
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_map_text_5459 AS SELECT name FROM map_text;
|
||||
COMMIT;
|
||||
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;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_map_text_8647 AFTER DELETE ON map_text FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
SELECT NTH_VALUE(id, 0) OVER (PARTITION BY id ORDER BY id ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM map_integer;
|
||||
REINDEX map_integer;
|
||||
DELETE FROM map_integer WHERE NOT NOT (0) ;
|
||||
UPDATE map_text SET id = 'x' WHERE rowid = 1;
|
||||
DELETE FROM map_integer WHERE rowid = 41;
|
||||
CREATE VIEW IF NOT EXISTS v_data_9250 AS SELECT name FROM data;
|
||||
ALTER TABLE data DROP COLUMN id;
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C INTEGER,
|
||||
UNIQUE (B, C)
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -2147483648);
|
||||
INSERT INTO T VALUES ('b', 'q', 700);
|
||||
INSERT INTO T VALUES ('c', 'r', 0);
|
||||
INSERT INTO T VALUES ('d', 's', 2147483647);
|
||||
INSERT INTO T VALUES ('e', 't', -1);
|
||||
INSERT INTO T VALUES ('f', 'u', 1);
|
||||
SELECT * FROM T WHERE C BETWEEN -1000 AND 1000 ORDER BY C ASC;
|
||||
INSERT INTO map_text VALUES (1, 1) ON CONFLICT(id) DO UPDATE SET id = excluded.id, name = excluded.name;
|
||||
PRAGMA foreign_key_list(users);
|
||||
SELECT COUNT(*) FROM data;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_7942 AS SELECT C FROM T;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_map_text_1196 ON map_text(id) WHERE id > 0;
|
||||
SELECT COUNT(C) FROM T;
|
||||
DELETE FROM T WHERE rowid = 20 RETURNING *;
|
||||
INSERT OR REPLACE INTO data VALUES (-8, 'x');
|
||||
SELECT * FROM map_text;
|
||||
WITH a AS (SELECT a FROM T1), b AS (SELECT a FROM a), c AS (SELECT a FROM b) SELECT * FROM c;
|
||||
REINDEX map_text;
|
||||
SELECT SUM(id) OVER (ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM map_text;
|
||||
PRAGMA legacy_alter_table = ON;
|
||||
CREATE TABLE t1(a DOUB PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (-(-(NULL)), 'Wernher', json_quote(123), 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
BEGIN EXCLUSIVE;
|
||||
CREATE TABLE map_integer (id INT, name);
|
||||
INSERT INTO map_integer VALUES(lower('你好'),'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(3547739615393531126,'abc');
|
||||
INSERT INTO data VALUES('4','xyz');
|
||||
CREATE VIEW idmap as WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (SELECT * FROM map_integer) SELECT * FROM map_text) SELECT * FROM _m UNION SELECT * FROM _m;
|
||||
CREATE TABLE mzed AS SELECT * FROM idmap;
|
||||
PRAGMA automatic_index=ON;
|
||||
SELECT * FROM data JOIN idmap USING(id);
|
||||
SELECT * FROM data AS a LEFT JOIN map_integer AS b ON a.rowid = b.rowid;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_map_integer_6193 AS SELECT name FROM map_integer;
|
||||
CREATE VIEW IF NOT EXISTS v_data_9060 AS SELECT name FROM data;
|
||||
INSERT INTO data SELECT * FROM data;
|
||||
PRAGMA ignore_check_constraints = 0;
|
||||
ALTER TABLE data ADD COLUMN extra_9221 TINYINT DEFAULT '';
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_map_text_5459 AS SELECT name FROM map_text;
|
||||
COMMIT;
|
||||
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;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_map_text_8647 AFTER DELETE ON map_text FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
SELECT NTH_VALUE(id, 0) OVER (PARTITION BY id ORDER BY id ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM map_integer;
|
||||
REINDEX map_integer;
|
||||
DELETE FROM map_integer WHERE NOT NOT (0) ;
|
||||
UPDATE map_text SET id = 'x' WHERE rowid = 1;
|
||||
DELETE FROM map_integer WHERE rowid = 41;
|
||||
CREATE VIEW IF NOT EXISTS v_data_9250 AS SELECT name FROM data;
|
||||
ALTER TABLE data DROP COLUMN id;
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C INTEGER,
|
||||
UNIQUE (B, C)
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -2147483648);
|
||||
INSERT INTO T VALUES ('b', 'q', 700);
|
||||
INSERT INTO T VALUES ('c', 'r', 0);
|
||||
INSERT INTO T VALUES ('d', 's', 2147483647);
|
||||
INSERT INTO T VALUES ('e', 't', -1);
|
||||
INSERT INTO T VALUES ('f', 'u', 1);
|
||||
SELECT * FROM T WHERE C BETWEEN -1000 AND 1000 ORDER BY C ASC;
|
||||
INSERT INTO map_text VALUES (1, 1) ON CONFLICT(id) DO UPDATE SET id = excluded.id, name = excluded.name;
|
||||
PRAGMA foreign_key_list(users);
|
||||
SELECT COUNT(*) FROM data;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_7942 AS SELECT C FROM T;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_map_text_1196 ON map_text(id) WHERE id > 0;
|
||||
SELECT COUNT(C) FROM T;
|
||||
DELETE FROM T WHERE rowid = 20 RETURNING *;
|
||||
INSERT OR REPLACE INTO data VALUES (-8, 'x');
|
||||
SELECT * FROM map_text;
|
||||
WITH a AS (SELECT a FROM T1), b AS (SELECT a FROM a), c AS (SELECT a FROM b) SELECT * FROM c;
|
||||
REINDEX map_text;
|
||||
SELECT SUM(id) OVER (ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM map_text;
|
||||
PRAGMA legacy_alter_table = ON;
|
||||
CREATE TABLE t1(a DOUB PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (-(-(NULL)), 'Wernher', json_quote(123), 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
BEGIN EXCLUSIVE;
|
||||
CREATE TABLE map_integer (id INT, name);
|
||||
INSERT INTO map_integer VALUES(lower('你好'),'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(3547739615393531126,'abc');
|
||||
INSERT INTO data VALUES('4','xyz');
|
||||
CREATE VIEW idmap as WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (SELECT * FROM map_integer) SELECT * FROM map_text) SELECT * FROM _m UNION SELECT * FROM _m;
|
||||
CREATE TABLE mzed AS SELECT * FROM idmap;
|
||||
PRAGMA automatic_index=ON;
|
||||
SELECT * FROM data JOIN idmap USING(id);
|
||||
SELECT * FROM data AS a LEFT JOIN map_integer AS b ON a.rowid = b.rowid;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_map_integer_6193 AS SELECT name FROM map_integer;
|
||||
CREATE VIEW IF NOT EXISTS v_data_9060 AS SELECT name FROM data;
|
||||
INSERT INTO data SELECT * FROM data;
|
||||
PRAGMA ignore_check_constraints = 0;
|
||||
ALTER TABLE data ADD COLUMN extra_9221 TINYINT DEFAULT '';
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_map_text_5459 AS SELECT name FROM map_text;
|
||||
COMMIT;
|
||||
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;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_map_text_8647 AFTER DELETE ON map_text FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
SELECT NTH_VALUE(id, 0) OVER (PARTITION BY id ORDER BY id ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM map_integer;
|
||||
REINDEX map_integer;
|
||||
DELETE FROM map_integer WHERE NOT NOT (0) ;
|
||||
UPDATE map_text SET id = 'x' WHERE rowid = 1;
|
||||
DELETE FROM map_integer WHERE rowid = 41;
|
||||
CREATE VIEW IF NOT EXISTS v_data_9250 AS SELECT name FROM data;
|
||||
ALTER TABLE data DROP COLUMN id;
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C INTEGER,
|
||||
UNIQUE (B, C)
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -2147483648);
|
||||
INSERT INTO T VALUES ('b', 'q', 700);
|
||||
INSERT INTO T VALUES ('c', 'r', 0);
|
||||
INSERT INTO T VALUES ('d', 's', 2147483647);
|
||||
INSERT INTO T VALUES ('e', 't', -1);
|
||||
INSERT INTO T VALUES ('f', 'u', 1);
|
||||
SELECT * FROM T WHERE C BETWEEN -1000 AND 1000 ORDER BY C ASC;
|
||||
INSERT INTO map_text VALUES (1, 1) ON CONFLICT(id) DO UPDATE SET id = excluded.id, name = excluded.name;
|
||||
PRAGMA foreign_key_list(users);
|
||||
SELECT COUNT(*) FROM data;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_7942 AS SELECT C FROM T;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_map_text_1196 ON map_text(id) WHERE id > 0;
|
||||
SELECT COUNT(C) FROM T;
|
||||
DELETE FROM T WHERE rowid = 20 RETURNING *;
|
||||
INSERT OR REPLACE INTO data VALUES (-8, 'x');
|
||||
SELECT * FROM map_text;
|
||||
WITH a AS (SELECT a FROM T1), b AS (SELECT a FROM a), c AS (SELECT a FROM b) SELECT * FROM c;
|
||||
REINDEX map_text;
|
||||
SELECT SUM(id) OVER (ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM map_text;
|
||||
|
||||
PRAGMA foreign_keys = NO;
|
||||
VACUUM main;
|
||||
ALTER TABLE data RENAME TO data_r5580;
|
||||
DETACH DATABASE aux85;
|
||||
INSERT INTO T2 DEFAULT VALUES;
|
||||
ALTER TABLE t1 RENAME COLUMN d TO d_r9282;
|
||||
WITH RECURSIVE pair(a,b) AS (VALUES(0,1) UNION ALL SELECT b, a+b FROM pair WHERE b<100) SELECT * FROM pair;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_T2_5688 AS SELECT a FROM T2;
|
||||
SELECT COUNT(*) FILTER (WHERE name IS NOT NULL), SUM(rowid) FILTER (WHERE name > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(name) FILTER (WHERE name > 0 AND name < 100), COUNT(*) FILTER (WHERE typeof(name) = "text") FROM map_integer;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_map_integer_262 AS SELECT id FROM map_integer;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_map_integer_3732 AFTER DELETE ON map_integer FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_T2_5226 AS SELECT b FROM T2;
|
||||
|
||||
VACUUM;
|
||||
UPDATE map_text SET name = 52 WHERE name BETWEEN 0 AND 100;
|
||||
SELECT name, (SELECT name FROM data LIMIT 1) AS first_val FROM data;
|
||||
COMMIT TRANSACTION;
|
||||
|
||||
SELECT COUNT(*) FROM map_text;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T2_8749 AFTER INSERT ON T2 BEGIN SELECT RAISE(IGNORE); END;
|
||||
DETACH DATABASE aux94;
|
||||
PRAGMA case_sensitive_like = OFF;
|
||||
ALTER TABLE t1 DROP COLUMN d;
|
||||
DROP TRIGGER IF EXISTS T1;
|
||||
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
|
||||
SELECT * FROM t1 WHERE b IN (SELECT b FROM t1 WHERE ROW_NUMBER() OVER (ORDER BY b) = 1);
|
||||
REINDEX map_integer;
|
||||
INSERT INTO t1 VALUES ('x', 'x', NULL, 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
|
||||
ALTER TABLE data ADD COLUMN extra_1045 MEDIUMINT DEFAULT (random());
|
||||
WITH cte AS (SELECT B FROM T INTERSECT SELECT B FROM T) SELECT * FROM cte;
|
||||
VACUUM;
|
||||
SELECT * FROM map_integer AS a JOIN T1 AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T2 AS a RIGHT JOIN data AS b ON a.rowid = b.rowid;
|
||||
VACUUM;
|
||||
SELECT * FROM map_integer WHERE (id) IN (SELECT id FROM map_integer);
|
||||
DETACH DATABASE aux84;
|
||||
ALTER TABLE T ADD COLUMN extra_9789 INTEGER COLLATE NOCASE;
|
||||
DELETE FROM data WHERE 0;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
|
||||
WARNING: writing to an imposter table will corrupt the "t1bc" index!
|
||||
Braun|30|2
|
||||
von||1
|
||||
Braun|30
|
||||
von|
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
@@ -0,0 +1,142 @@
|
||||
## 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 aux1;
|
||||
SAVEPOINT sp9324;
|
||||
.timer on
|
||||
PRAGMA parser_trace = FALSE;
|
||||
ATTACH DATABASE '' || (':memory:') AS aux81;
|
||||
PRAGMA reverse_unordered_selects = ON;
|
||||
PRAGMA max_page_count;
|
||||
PRAGMA case_sensitive_like = OFF;
|
||||
PRAGMA writable_schema = NO;
|
||||
.quit
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1(a int, b int);
|
||||
INSERT INTO t1 VALUES(glob(NULL, NULL),NULL),(CAST(CAST(CAST(log10(if('"', cosh((0 + 5035996954804773676)), 1, 5035996954804773676, 5035996954804773676)) AS CLOB) AS UNSIGNED BIG INT) AS SMALLINT),18),(2,19);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT x, y FROM (SELECT 98 AS x, 99 AS y UNION SELECT a AS x, sum(b) AS y FROM _m GROUP BY /* PRAGMA secure_delete = TRUE; */ a) AS w WHERE NOT y>=20 ORDER BY +x;
|
||||
SELECT x, y FROM (SELECT a AS x, sum(b) AS y FROM t1 GROUP BY a UNION SELECT 98 AS x, 99 AS y) AS w WHERE y>=20 ORDER BY +x;
|
||||
DROP VIEW IF EXISTS t1;
|
||||
INSERT INTO t1 VALUES (NULL, NULL);
|
||||
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 "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;
|
||||
INSERT INTO T2 VALUES (NULL, NULL);
|
||||
ALTER TABLE T2 ADD COLUMN extra_2116 NUMERIC DEFAULT 0;
|
||||
REINDEX;
|
||||
UPDATE T2 SET A = 'x' WHERE A IS NOT NULL RETURNING *;
|
||||
SELECT * FROM (SELECT Y, COUNT(*) FROM T2 GROUP BY Y) AS sub;
|
||||
ALTER TABLE t1 DROP COLUMN b;
|
||||
SELECT LAG(X, 0) OVER (PARTITION BY X ORDER BY X ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T1;
|
||||
SELECT 0x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
SELECT LEAD(X, 1, NULL) OVER (PARTITION BY X ORDER BY X ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T1;
|
||||
PRAGMA vdbe_listing = YES;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_T1_7197 AS SELECT A FROM T1;
|
||||
ALTER TABLE T1 DROP COLUMN A;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_4345 ON T1((X + 1)) WHERE X IS NOT NULL;
|
||||
SELECT * FROM T1;
|
||||
DETACH DATABASE aux81;
|
||||
SELECT * FROM t1 WHERE EXISTS (SELECT 1 FROM t1 WHERE b > 0);
|
||||
VACUUM main;
|
||||
SELECT * FROM T2 WHERE A IN (SELECT A FROM T2 WHERE A IS NOT NULL);
|
||||
ALTER TABLE t1 RENAME TO t1_r6007;
|
||||
ALTER TABLE T1 RENAME TO T1_r5111;
|
||||
SELECT * FROM t1 WHERE EXISTS (SELECT 1 FROM t1 WHERE a = NULL);
|
||||
SELECT COUNT(X) OVER (ORDER BY X RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T1;
|
||||
SELECT NTH_VALUE(b, -1) OVER (ORDER BY b GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t1;
|
||||
ALTER TABLE t1 DROP COLUMN b;
|
||||
INSERT INTO T1 VALUES (NULL, 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
|
||||
SELECT * FROM t1 WHERE b IN (SELECT b FROM t1 WHERE b GLOB "*");
|
||||
INSERT OR FAIL INTO t1 VALUES (0, 0);
|
||||
REINDEX;
|
||||
INSERT INTO T1 VALUES ('x', NULL) ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
|
||||
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;
|
||||
ANALYZE T2;
|
||||
WITH m AS MATERIALIZED (SELECT * FROM T2) SELECT m.A FROM m JOIN m AS m2 ON m.A = m2.A;
|
||||
ALTER TABLE t1 RENAME TO t1_r3665;
|
||||
DELETE FROM T1 WHERE rowid = 99 RETURNING *;
|
||||
WITH RECURSIVE cnt(x) AS (VALUES(0) UNION ALL SELECT x-1 FROM cnt WHERE x>-10) SELECT * FROM cnt;
|
||||
INSERT INTO T1 VALUES (NULL, NULL);
|
||||
REINDEX;
|
||||
ALTER TABLE T2 RENAME TO T2_r3541;
|
||||
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<23) SELECT COUNT(*) FROM cnt;
|
||||
SELECT * FROM T WHERE A NOT IN (SELECT A FROM T);
|
||||
|
||||
SELECT COUNT(*) FROM T1;
|
||||
INSERT INTO T1 VALUES (NULL, 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_2111 AS SELECT a FROM t1;
|
||||
INSERT INTO T1 SELECT * FROM T1;
|
||||
SELECT NTH_VALUE(a, 2) OVER (ORDER BY a) FROM t1;
|
||||
ALTER TABLE t1 RENAME TO t1_r4405;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp9324;
|
||||
RELEASE SAVEPOINT sp9324;
|
||||
INSERT INTO T2 DEFAULT VALUES;
|
||||
DETACH DATABASE aux1;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
REINDEX t1;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
Run Time: real 0.000 user 0.000015 sys 0.000000
|
||||
Run Time: real 0.000 user 0.000033 sys 0.000000
|
||||
Run Time: real 0.000 user 0.000003 sys 0.000000
|
||||
1073741823
|
||||
Run Time: real 0.000 user 0.000008 sys 0.000000
|
||||
Run Time: real 0.000 user 0.000005 sys 0.000000
|
||||
Run Time: real 0.000 user 0.000003 sys 0.000000
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
Run Time: real 0.000003 user 0.000009 sys 0.000000
|
||||
Run Time: real 0.000024 user 0.000024 sys 0.000000
|
||||
Run Time: real 0.000002 user 0.000003 sys 0.000000
|
||||
4294967294
|
||||
Run Time: real 0.000006 user 0.000007 sys 0.000000
|
||||
Run Time: real 0.000004 user 0.000004 sys 0.000000
|
||||
Run Time: real 0.000002 user 0.000003 sys 0.000000
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
@@ -0,0 +1,192 @@
|
||||
## Summary
|
||||
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
|
||||
|
||||
## Minimized query
|
||||
|
||||
```sql
|
||||
.stats
|
||||
ATTACH DATABASE ':memory:' AS aux65;
|
||||
-- PRAGMA pragma_list;
|
||||
|
||||
SAVEPOINT sp5608;
|
||||
.check
|
||||
PRAGMA fullsync = ON;
|
||||
PRAGMA mmap_size;
|
||||
PRAGMA synchronous;
|
||||
.connection close
|
||||
CREATE TABLE t1(a INT, b INT);
|
||||
INSERT INTO t1(a,b) VALUES(NULL,null),(null,null),(x'28b8c864227a',null);
|
||||
CREATE UNIQUE INDEX t1b ON t1(abs(b));
|
||||
SELECT quote(a), quote(b), '|' FROM t1 GROUP BY a, abs(b);
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_5402 AFTER UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
CREATE TABLE [T1] (
|
||||
A VARCHAR(nullif(-(-(sinh(20))), 'same')),
|
||||
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;
|
||||
ALTER TABLE t1 RENAME TO t1_r4147;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
ANALYZE;
|
||||
SELECT * FROM t1 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
PRAGMA legacy_alter_table = TRUE;
|
||||
ALTER TABLE t1 ADD COLUMN extra_7898 DOUBLE PRECISION COLLATE NOCASE;
|
||||
WITH RECURSIVE r AS (SELECT b FROM t1 WHERE b IS NOT NULL UNION ALL SELECT b FROM r WHERE b > 1 LIMIT 10) SELECT * FROM r;
|
||||
SELECT MIN(b) FROM t1;
|
||||
PRAGMA vdbe_listing = YES;
|
||||
SELECT * FROM T2 t1 JOIN (SELECT * FROM T2) AS sub ON t1.Y = sub.Y;
|
||||
ROLLBACK TO sp5608;
|
||||
RELEASE sp5608;
|
||||
CREATE TEMPORARY TABLE t0(x, y, z);
|
||||
SELECT -99999999999999999999999999999999999999999999999999;
|
||||
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
|
||||
DROP TABLE t0;
|
||||
ANALYZE;
|
||||
SAVEPOINT sp5608;
|
||||
.check
|
||||
PRAGMA fullsync = ON;
|
||||
PRAGMA mmap_size;
|
||||
PRAGMA synchronous;
|
||||
.connection close
|
||||
CREATE TABLE t1(a INT, b INT);
|
||||
INSERT INTO t1(a,b) VALUES(NULL,null),(null,null),(x'28b8c864227a',null);
|
||||
CREATE UNIQUE INDEX t1b ON t1(abs(b));
|
||||
SELECT quote(a), quote(b), '|' FROM t1 GROUP BY a, abs(b);
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_5402 AFTER UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
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;
|
||||
ALTER TABLE t1 RENAME TO t1_r4147;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
ANALYZE;
|
||||
SELECT * FROM t1 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
PRAGMA legacy_alter_table = TRUE;
|
||||
ALTER TABLE t1 ADD COLUMN extra_7898 DOUBLE PRECISION COLLATE NOCASE;
|
||||
WITH RECURSIVE r AS (SELECT b FROM t1 WHERE b IS NOT NULL UNION ALL SELECT b FROM r WHERE b > 1 LIMIT 10) SELECT * FROM r;
|
||||
SELECT MIN(b) FROM t1;
|
||||
PRAGMA vdbe_listing = YES;
|
||||
SELECT * FROM T2 t1 JOIN (SELECT * FROM T2) AS sub ON t1.Y = sub.Y;
|
||||
ROLLBACK TO sp5608;
|
||||
RELEASE sp5608;
|
||||
CREATE TEMPORARY TABLE t0(x, y, z);
|
||||
SELECT -99999999999999999999999999999999999999999999999999;
|
||||
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
|
||||
DROP TABLE t0;
|
||||
ANALYZE;
|
||||
SAVEPOINT sp5608;
|
||||
.check
|
||||
PRAGMA fullsync = ON;
|
||||
PRAGMA mmap_size;
|
||||
PRAGMA synchronous;
|
||||
.connection close
|
||||
CREATE TABLE t1(a INT, b INT);
|
||||
INSERT INTO t1(a,b) VALUES(NULL,null),(null,null),(x'28b8c864227a',null);
|
||||
CREATE UNIQUE INDEX t1b ON t1(abs(b));
|
||||
SELECT quote(a), quote(b), '|' FROM t1 GROUP BY a, abs(b);
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_5402 AFTER UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
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;
|
||||
ALTER TABLE t1 RENAME TO t1_r4147;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
ANALYZE;
|
||||
SELECT * FROM t1 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
PRAGMA legacy_alter_table = TRUE;
|
||||
ALTER TABLE t1 ADD COLUMN extra_7898 DOUBLE PRECISION COLLATE NOCASE;
|
||||
WITH RECURSIVE r AS (SELECT b FROM t1 WHERE b IS NOT NULL UNION ALL SELECT b FROM r WHERE b > 1 LIMIT 10) SELECT * FROM r;
|
||||
SELECT MIN(b) FROM t1;
|
||||
PRAGMA vdbe_listing = YES;
|
||||
SELECT * FROM T2 t1 JOIN (SELECT * FROM T2) AS sub ON t1.Y = sub.Y;
|
||||
ROLLBACK TO sp5608;
|
||||
RELEASE sp5608;
|
||||
CREATE TEMPORARY TABLE t0(x, y, z);
|
||||
SELECT -99999999999999999999999999999999999999999999999999;
|
||||
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
|
||||
DROP TABLE t0;
|
||||
ANALYZE;
|
||||
|
||||
DETACH DATABASE aux65;
|
||||
ANALYZE t0;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_664 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(b) VALUES (NULL); END;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
ANALYZE;
|
||||
CREATE VIEW IF NOT EXISTS v_t0_3180 AS SELECT z FROM t0;
|
||||
INSERT INTO T1 VALUES (1, NULL) ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
|
||||
REINDEX t1;
|
||||
INSERT INTO T1 DEFAULT VALUES;
|
||||
INSERT OR FAIL INTO T1 VALUES (-5, '');
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
Memory Used: 0 (max 64) bytes
|
||||
Number of Outstanding Allocations: 0 (max 2)
|
||||
Number of Pcache Overflow Bytes: 0 (max 0) bytes
|
||||
Largest Allocation: 40 bytes
|
||||
Largest Pcache Allocation: 0 bytes
|
||||
Bytes received by read(): 10409
|
||||
Bytes sent to write(): 0
|
||||
Read() system calls: 13
|
||||
Write() system calls: 0
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
Memory Used: 0 (max 56) bytes
|
||||
Number of Outstanding Allocations: 0 (max 2)
|
||||
Number of Pcache Overflow Bytes: 0 (max 0) bytes
|
||||
Largest Allocation: 40 bytes
|
||||
Largest Pcache Allocation: 0 bytes
|
||||
Bytes received by read(): 11185
|
||||
Bytes sent to write(): 0
|
||||
Read() system calls: 14
|
||||
Write() system calls: 0
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
```
|
||||
|
||||
## 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
|
||||
SAVEPOINT sp6973;
|
||||
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
|
||||
SAVEPOINT sp9368;
|
||||
PRAGMA legacy_alter_table = NO;
|
||||
CREATE TABLE T1 (
|
||||
a INTEGER,
|
||||
b REAL
|
||||
);
|
||||
CREATE TABLE `T2` (
|
||||
a INTEGER,
|
||||
b REAL
|
||||
);
|
||||
INSERT INTO T1 VALUES (json_remove(abs(('123' || ''))),-(-(1.0)));
|
||||
INSERT INTO "T2" VALUES (1,-1.0),(2,9e999);
|
||||
INSERT or REPLACE INTO T1
|
||||
SELECT * FROM T2;
|
||||
CREATE TABLE T1 (
|
||||
a INTEGER,
|
||||
b TEXT
|
||||
);
|
||||
CREATE TABLE T2 (
|
||||
a INTEGER,
|
||||
b TEXT
|
||||
);
|
||||
INSERT INTO T1 VALUES (1,'a'),(2,'b');
|
||||
INSERT INTO T2 VALUES (1,'c'),(1,'d');
|
||||
SELECT T1.b,
|
||||
(
|
||||
SELECT GROUP_CONCAT(b,',')
|
||||
FROM T2
|
||||
WHERE T2.a=T1.a
|
||||
) AS c
|
||||
FROM T1;
|
||||
SELECT * FROM T1;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T2_1657 AFTER UPDATE ON T2 BEGIN INSERT INTO T2(a) VALUES (NULL); END;
|
||||
SELECT GROUP_CONCAT(b, '|') FROM T2;
|
||||
SELECT SUM(b) FROM T2;
|
||||
ALTER TABLE T1 DROP COLUMN a;
|
||||
DELETE FROM T1 WHERE b IS NULL;
|
||||
ALTER TABLE T1 RENAME TO T1_r6976;
|
||||
ROLLBACK TO sp9368;
|
||||
RELEASE sp9368;
|
||||
SELECT COUNT(*) FROM T2;
|
||||
ALTER TABLE T1 RENAME TO T1_r6087;
|
||||
SELECT COUNT(b) FILTER (WHERE NULL) OVER (PARTITION BY b ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T2;
|
||||
ANALYZE;
|
||||
INSERT INTO T1 VALUES (NULL, 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
|
||||
SELECT * FROM t1 AS a LEFT JOIN T2 AS b ON a.rowid = b.rowid;
|
||||
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;
|
||||
WITH RECURSIVE r AS (SELECT * FROM T2 LIMIT 1 UNION ALL SELECT t.* FROM T2 t JOIN r ON t.b = r.b LIMIT 10) SELECT * FROM r;
|
||||
INSERT INTO T1 VALUES (NULL, NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
|
||||
RELEASE sp6973;
|
||||
REINDEX;
|
||||
INSERT OR REPLACE INTO T VALUES (0, NULL, '');
|
||||
VACUUM main;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T_3547 BEFORE INSERT ON T BEGIN SELECT RAISE(ABORT, 'abort'); 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!
|
||||
[{"b":"Braun","c":30,"_ROWID_":3},
|
||||
{"b":"Wernher","c":10,"_ROWID_":1},
|
||||
{"b":"von","c":20,"_ROWID_":2}]
|
||||
[{"b":"Braun","c":30},
|
||||
{"b":"Wernher","c":10},
|
||||
{"b":"von","c":20}]
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
|
||||
[{"b":"Braun","c":30,"_ROWID_":3},
|
||||
{"b":"Wernher","c":10,"_ROWID_":1},
|
||||
{"b":"von","c":20,"_ROWID_":2}]
|
||||
[{"b":"Braun","c":30},
|
||||
{"b":"Wernher","c":10},
|
||||
{"b":"von","c":20}]
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
-json
|
||||
```
|
||||
|
||||
@@ -0,0 +1,902 @@
|
||||
## 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 fullsync = ON;
|
||||
PRAGMA locking_mode;
|
||||
PRAGMA synchronous = '1';
|
||||
.stats on
|
||||
CREATE TABLE map_integer (id INT, name);
|
||||
INSERT INTO map_integer VALUES(NULL,'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(2147483648,'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);
|
||||
|
||||
REINDEX map_text;
|
||||
PRAGMA cache_spill = ON;
|
||||
INSERT OR ABORT INTO map_integer VALUES ('', NULL);
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
normal
|
||||
Memory Used: 78880 (max 80432) bytes
|
||||
Number of Outstanding Allocations: 162 (max 176)
|
||||
Number of Pcache Overflow Bytes: 16928 (max 16928) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4360 bytes
|
||||
Lookaside Slots Used: 32 (max 88)
|
||||
Successful lookaside attempts: 171
|
||||
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: 2432 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: 2432
|
||||
Bytes received by read(): 7204
|
||||
Bytes sent to write(): 7
|
||||
Read() system calls: 14
|
||||
Write() system calls: 1
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 76472 (max 82152) bytes
|
||||
Number of Outstanding Allocations: 151 (max 176)
|
||||
Number of Pcache Overflow Bytes: 16928 (max 16928) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4360 bytes
|
||||
Lookaside Slots Used: 39 (max 88)
|
||||
Successful lookaside attempts: 189
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 13592 bytes
|
||||
Page cache hits: 2
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Schema Heap Usage: 1032 bytes
|
||||
Statement Heap/Lookaside Usage: 3040 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 10
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 3040
|
||||
Bytes received by read(): 7298
|
||||
Bytes sent to write(): 1300
|
||||
Read() system calls: 16
|
||||
Write() system calls: 2
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 83488 (max 89168) bytes
|
||||
Number of Outstanding Allocations: 170 (max 185)
|
||||
Number of Pcache Overflow Bytes: 21288 (max 21288) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4360 bytes
|
||||
Lookaside Slots Used: 32 (max 88)
|
||||
Successful lookaside attempts: 264
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 17936 bytes
|
||||
Page cache hits: 4
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Schema Heap Usage: 1280 bytes
|
||||
Statement Heap/Lookaside Usage: 2400 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 28
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 2400
|
||||
Bytes received by read(): 7395
|
||||
Bytes sent to write(): 2596
|
||||
Read() system calls: 18
|
||||
Write() system calls: 3
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 81112 (max 89168) bytes
|
||||
Number of Outstanding Allocations: 159 (max 185)
|
||||
Number of Pcache Overflow Bytes: 21288 (max 21288) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4360 bytes
|
||||
Lookaside Slots Used: 40 (max 88)
|
||||
Successful lookaside attempts: 283
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 17936 bytes
|
||||
Page cache hits: 2
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Schema Heap Usage: 1304 bytes
|
||||
Statement Heap/Lookaside Usage: 3168 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 10
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 3168
|
||||
Bytes received by read(): 7492
|
||||
Bytes sent to write(): 3892
|
||||
Read() system calls: 20
|
||||
Write() system calls: 4
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 88128 (max 93808) bytes
|
||||
Number of Outstanding Allocations: 178 (max 193)
|
||||
Number of Pcache Overflow Bytes: 25648 (max 25648) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4360 bytes
|
||||
Lookaside Slots Used: 32 (max 88)
|
||||
Successful lookaside attempts: 358
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 22280 bytes
|
||||
Page cache hits: 4
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Schema Heap Usage: 1552 bytes
|
||||
Statement Heap/Lookaside Usage: 2400 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 28
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 2400
|
||||
Bytes received by read(): 7589
|
||||
Bytes sent to write(): 5188
|
||||
Read() system calls: 22
|
||||
Write() system calls: 5
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 85752 (max 93808) bytes
|
||||
Number of Outstanding Allocations: 167 (max 193)
|
||||
Number of Pcache Overflow Bytes: 25648 (max 25648) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4360 bytes
|
||||
Lookaside Slots Used: 40 (max 88)
|
||||
Successful lookaside attempts: 378
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 22280 bytes
|
||||
Page cache hits: 2
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Schema Heap Usage: 1576 bytes
|
||||
Statement Heap/Lookaside Usage: 3168 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 10
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 3168
|
||||
Bytes received by read(): 7686
|
||||
Bytes sent to write(): 6484
|
||||
Read() system calls: 24
|
||||
Write() system calls: 6
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 85752 (max 93808) bytes
|
||||
Number of Outstanding Allocations: 167 (max 193)
|
||||
Number of Pcache Overflow Bytes: 25648 (max 25648) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4360 bytes
|
||||
Lookaside Slots Used: 40 (max 88)
|
||||
Successful lookaside attempts: 397
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 22280 bytes
|
||||
Page cache hits: 2
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Schema Heap Usage: 1576 bytes
|
||||
Statement Heap/Lookaside Usage: 3168 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 10
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 3168
|
||||
Bytes received by read(): 7783
|
||||
Bytes sent to write(): 7780
|
||||
Read() system calls: 26
|
||||
Write() system calls: 7
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 89296 (max 95984) bytes
|
||||
Number of Outstanding Allocations: 192 (max 218)
|
||||
Number of Pcache Overflow Bytes: 25648 (max 25648) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4360 bytes
|
||||
Lookaside Slots Used: 32 (max 88)
|
||||
Successful lookaside attempts: 472
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 22280 bytes
|
||||
Page cache hits: 4
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Schema Heap Usage: 2616 bytes
|
||||
Statement Heap/Lookaside Usage: 2496 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 28
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 2496
|
||||
Bytes received by read(): 7880
|
||||
Bytes sent to write(): 9076
|
||||
Read() system calls: 28
|
||||
Write() system calls: 8
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 96536 (max 200616) bytes
|
||||
Number of Outstanding Allocations: 213 (max 254)
|
||||
Number of Pcache Overflow Bytes: 30008 (max 38216) bytes
|
||||
Largest Allocation: 87200 bytes
|
||||
Largest Pcache Allocation: 4360 bytes
|
||||
Lookaside Slots Used: 32 (max 100)
|
||||
Successful lookaside attempts: 560
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 26624 bytes
|
||||
Page cache hits: 7
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Schema Heap Usage: 2952 bytes
|
||||
Statement Heap/Lookaside Usage: 4960 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 82
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 4960
|
||||
Bytes received by read(): 7977
|
||||
Bytes sent to write(): 10372
|
||||
Read() system calls: 30
|
||||
Write() system calls: 9
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 91504 (max 200616) bytes
|
||||
Number of Outstanding Allocations: 190 (max 254)
|
||||
Number of Pcache Overflow Bytes: 30008 (max 38216) bytes
|
||||
Largest Allocation: 87200 bytes
|
||||
Largest Pcache Allocation: 4360 bytes
|
||||
Lookaside Slots Used: 35 (max 100)
|
||||
Successful lookaside attempts: 565
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 26624 bytes
|
||||
Page cache hits: 0
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Schema Heap Usage: 2952 bytes
|
||||
Statement Heap/Lookaside Usage: 2528 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 4
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 2528
|
||||
Bytes received by read(): 8075
|
||||
Bytes sent to write(): 11671
|
||||
Read() system calls: 32
|
||||
Write() system calls: 10
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 95120 (max 302408) bytes
|
||||
Number of Outstanding Allocations: 192 (max 254)
|
||||
Number of Pcache Overflow Bytes: 30008 (max 46424) bytes
|
||||
Largest Allocation: 87200 bytes
|
||||
Largest Pcache Allocation: 4360 bytes
|
||||
Lookaside Slots Used: 59 (max 104)
|
||||
Successful lookaside attempts: 678
|
||||
Lookaside failures due to size: 3
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 26624 bytes
|
||||
Page cache hits: 4
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Schema Heap Usage: 2952 bytes
|
||||
Statement Heap/Lookaside Usage: 8960 bytes
|
||||
Fullscan Steps: 1
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 1
|
||||
Bloom filter bypass taken: 2/2
|
||||
Virtual Machine Steps: 68
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 8960
|
||||
Bytes received by read(): 8174
|
||||
Bytes sent to write(): 12970
|
||||
Read() system calls: 34
|
||||
Write() system calls: 11
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 91504 (max 302408) bytes
|
||||
Number of Outstanding Allocations: 190 (max 254)
|
||||
Number of Pcache Overflow Bytes: 30008 (max 46424) bytes
|
||||
Largest Allocation: 87200 bytes
|
||||
Largest Pcache Allocation: 4360 bytes
|
||||
Lookaside Slots Used: 35 (max 104)
|
||||
Successful lookaside attempts: 683
|
||||
Lookaside failures due to size: 3
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 26624 bytes
|
||||
Page cache hits: 0
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Schema Heap Usage: 2952 bytes
|
||||
Statement Heap/Lookaside Usage: 2528 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 2
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 2528
|
||||
Bytes received by read(): 8273
|
||||
Bytes sent to write(): 14311
|
||||
Read() system calls: 36
|
||||
Write() system calls: 12
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 91504 (max 302408) bytes
|
||||
Number of Outstanding Allocations: 190 (max 254)
|
||||
Number of Pcache Overflow Bytes: 30008 (max 46424) bytes
|
||||
Largest Allocation: 87200 bytes
|
||||
Largest Pcache Allocation: 4360 bytes
|
||||
Lookaside Slots Used: 35 (max 104)
|
||||
Successful lookaside attempts: 688
|
||||
Lookaside failures due to size: 3
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 26624 bytes
|
||||
Page cache hits: 0
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Schema Heap Usage: 2952 bytes
|
||||
Statement Heap/Lookaside Usage: 2528 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 3
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 2528
|
||||
Bytes received by read(): 8372
|
||||
Bytes sent to write(): 15610
|
||||
Read() system calls: 38
|
||||
Write() system calls: 13
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 91504 (max 302408) bytes
|
||||
Number of Outstanding Allocations: 190 (max 254)
|
||||
Number of Pcache Overflow Bytes: 30008 (max 46424) bytes
|
||||
Largest Allocation: 87200 bytes
|
||||
Largest Pcache Allocation: 4360 bytes
|
||||
Lookaside Slots Used: 39 (max 104)
|
||||
Successful lookaside attempts: 706
|
||||
Lookaside failures due to size: 3
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 26624 bytes
|
||||
Page cache hits: 2
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Schema Heap Usage: 2952 bytes
|
||||
Statement Heap/Lookaside Usage: 3040 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 10
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 3040
|
||||
Bytes received by read(): 8471
|
||||
Bytes sent to write(): 16909
|
||||
Read() system calls: 41
|
||||
Write() system calls: 14
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
normal
|
||||
Memory Used: 79448 (max 80984) bytes
|
||||
Number of Outstanding Allocations: 172 (max 186)
|
||||
Number of Pcache Overflow Bytes: 16936 (max 16936) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4368 bytes
|
||||
Lookaside Slots Used: 48 (max 97)
|
||||
Successful lookaside attempts: 175
|
||||
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: 864 bytes
|
||||
Statement Heap/Lookaside Usage: 2336 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: 2336
|
||||
Bytes received by read(): 7724
|
||||
Bytes sent to write(): 7
|
||||
Read() system calls: 14
|
||||
Write() system calls: 1
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 77120 (max 82752) bytes
|
||||
Number of Outstanding Allocations: 161 (max 186)
|
||||
Number of Pcache Overflow Bytes: 16936 (max 16936) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4368 bytes
|
||||
Lookaside Slots Used: 55 (max 97)
|
||||
Successful lookaside attempts: 193
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 13608 bytes
|
||||
Page cache hits: 2
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Temporary data spilled to disk: 0
|
||||
Schema Heap Usage: 872 bytes
|
||||
Statement Heap/Lookaside Usage: 3040 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 10
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 3040
|
||||
Bytes received by read(): 7818
|
||||
Bytes sent to write(): 1338
|
||||
Read() system calls: 16
|
||||
Write() system calls: 2
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 84032 (max 89664) bytes
|
||||
Number of Outstanding Allocations: 180 (max 195)
|
||||
Number of Pcache Overflow Bytes: 21304 (max 21304) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4368 bytes
|
||||
Lookaside Slots Used: 48 (max 97)
|
||||
Successful lookaside attempts: 261
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 17960 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: 1096 bytes
|
||||
Statement Heap/Lookaside Usage: 2320 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 28
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 2320
|
||||
Bytes received by read(): 7915
|
||||
Bytes sent to write(): 2672
|
||||
Read() system calls: 18
|
||||
Write() system calls: 3
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 81720 (max 89664) bytes
|
||||
Number of Outstanding Allocations: 169 (max 195)
|
||||
Number of Pcache Overflow Bytes: 21304 (max 21304) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4368 bytes
|
||||
Lookaside Slots Used: 56 (max 97)
|
||||
Successful lookaside attempts: 280
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 17960 bytes
|
||||
Page cache hits: 2
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Temporary data spilled to disk: 0
|
||||
Schema Heap Usage: 1104 bytes
|
||||
Statement Heap/Lookaside Usage: 3168 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 10
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 3168
|
||||
Bytes received by read(): 8012
|
||||
Bytes sent to write(): 4007
|
||||
Read() system calls: 20
|
||||
Write() system calls: 4
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 88608 (max 94240) bytes
|
||||
Number of Outstanding Allocations: 188 (max 203)
|
||||
Number of Pcache Overflow Bytes: 25672 (max 25672) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4368 bytes
|
||||
Lookaside Slots Used: 48 (max 97)
|
||||
Successful lookaside attempts: 348
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 22312 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: 1320 bytes
|
||||
Statement Heap/Lookaside Usage: 2304 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 28
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 2304
|
||||
Bytes received by read(): 8109
|
||||
Bytes sent to write(): 5342
|
||||
Read() system calls: 22
|
||||
Write() system calls: 5
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 86312 (max 94240) bytes
|
||||
Number of Outstanding Allocations: 177 (max 203)
|
||||
Number of Pcache Overflow Bytes: 25672 (max 25672) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4368 bytes
|
||||
Lookaside Slots Used: 56 (max 97)
|
||||
Successful lookaside attempts: 368
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 22312 bytes
|
||||
Page cache hits: 2
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Temporary data spilled to disk: 0
|
||||
Schema Heap Usage: 1328 bytes
|
||||
Statement Heap/Lookaside Usage: 3168 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 10
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 3168
|
||||
Bytes received by read(): 8206
|
||||
Bytes sent to write(): 6677
|
||||
Read() system calls: 24
|
||||
Write() system calls: 6
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 86312 (max 94240) bytes
|
||||
Number of Outstanding Allocations: 177 (max 203)
|
||||
Number of Pcache Overflow Bytes: 25672 (max 25672) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4368 bytes
|
||||
Lookaside Slots Used: 56 (max 97)
|
||||
Successful lookaside attempts: 387
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 22312 bytes
|
||||
Page cache hits: 2
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Temporary data spilled to disk: 0
|
||||
Schema Heap Usage: 1328 bytes
|
||||
Statement Heap/Lookaside Usage: 3168 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 10
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 3168
|
||||
Bytes received by read(): 8303
|
||||
Bytes sent to write(): 8012
|
||||
Read() system calls: 26
|
||||
Write() system calls: 7
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 89808 (max 96256) bytes
|
||||
Number of Outstanding Allocations: 203 (max 228)
|
||||
Number of Pcache Overflow Bytes: 25672 (max 25672) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4368 bytes
|
||||
Lookaside Slots Used: 48 (max 97)
|
||||
Successful lookaside attempts: 455
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 22312 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: 2440 bytes
|
||||
Statement Heap/Lookaside Usage: 2384 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 28
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 2384
|
||||
Bytes received by read(): 8400
|
||||
Bytes sent to write(): 9347
|
||||
Read() system calls: 28
|
||||
Write() system calls: 8
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 96832 (max 201032) bytes
|
||||
Number of Outstanding Allocations: 220 (max 262)
|
||||
Number of Pcache Overflow Bytes: 30040 (max 38240) bytes
|
||||
Largest Allocation: 87360 bytes
|
||||
Largest Pcache Allocation: 4368 bytes
|
||||
Lookaside Slots Used: 48 (max 109)
|
||||
Successful lookaside attempts: 536
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 26664 bytes
|
||||
Page cache hits: 7
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Temporary data spilled to disk: 0
|
||||
Schema Heap Usage: 2728 bytes
|
||||
Statement Heap/Lookaside Usage: 4688 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 82
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 4688
|
||||
Bytes received by read(): 8497
|
||||
Bytes sent to write(): 10682
|
||||
Read() system calls: 30
|
||||
Write() system calls: 9
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 92080 (max 201032) bytes
|
||||
Number of Outstanding Allocations: 201 (max 262)
|
||||
Number of Pcache Overflow Bytes: 30040 (max 38240) bytes
|
||||
Largest Allocation: 87360 bytes
|
||||
Largest Pcache Allocation: 4368 bytes
|
||||
Lookaside Slots Used: 51 (max 109)
|
||||
Successful lookaside attempts: 541
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 26664 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: 2728 bytes
|
||||
Statement Heap/Lookaside Usage: 2528 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 5
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 2528
|
||||
Bytes received by read(): 8595
|
||||
Bytes sent to write(): 12020
|
||||
Read() system calls: 32
|
||||
Write() system calls: 10
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
4|xyz|e
|
||||
Memory Used: 94448 (max 302016) bytes
|
||||
Number of Outstanding Allocations: 202 (max 262)
|
||||
Number of Pcache Overflow Bytes: 30040 (max 46440) bytes
|
||||
Largest Allocation: 87360 bytes
|
||||
Largest Pcache Allocation: 4368 bytes
|
||||
Lookaside Slots Used: 70 (max 111)
|
||||
Successful lookaside attempts: 654
|
||||
Lookaside failures due to size: 2
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 26664 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: 2728 bytes
|
||||
Statement Heap/Lookaside Usage: 13504 bytes
|
||||
Fullscan Steps: 1
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Bloom filter bypass taken: 0/2
|
||||
Virtual Machine Steps: 74
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 13504
|
||||
Bytes received by read(): 8694
|
||||
Bytes sent to write(): 13358
|
||||
Read() system calls: 34
|
||||
Write() system calls: 11
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 92080 (max 302016) bytes
|
||||
Number of Outstanding Allocations: 201 (max 262)
|
||||
Number of Pcache Overflow Bytes: 30040 (max 46440) bytes
|
||||
Largest Allocation: 87360 bytes
|
||||
Largest Pcache Allocation: 4368 bytes
|
||||
Lookaside Slots Used: 51 (max 111)
|
||||
Successful lookaside attempts: 659
|
||||
Lookaside failures due to size: 2
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 26664 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: 2728 bytes
|
||||
Statement Heap/Lookaside Usage: 2528 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 3
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 2528
|
||||
Bytes received by read(): 8793
|
||||
Bytes sent to write(): 14748
|
||||
Read() system calls: 36
|
||||
Write() system calls: 12
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 92080 (max 302016) bytes
|
||||
Number of Outstanding Allocations: 201 (max 262)
|
||||
Number of Pcache Overflow Bytes: 30040 (max 46440) bytes
|
||||
Largest Allocation: 87360 bytes
|
||||
Largest Pcache Allocation: 4368 bytes
|
||||
Lookaside Slots Used: 51 (max 111)
|
||||
Successful lookaside attempts: 664
|
||||
Lookaside failures due to size: 2
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 26664 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: 2728 bytes
|
||||
Statement Heap/Lookaside Usage: 2528 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 4
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 2528
|
||||
Bytes received by read(): 8892
|
||||
Bytes sent to write(): 16086
|
||||
Read() system calls: 38
|
||||
Write() system calls: 13
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 92080 (max 302016) bytes
|
||||
Number of Outstanding Allocations: 201 (max 262)
|
||||
Number of Pcache Overflow Bytes: 30040 (max 46440) bytes
|
||||
Largest Allocation: 87360 bytes
|
||||
Largest Pcache Allocation: 4368 bytes
|
||||
Lookaside Slots Used: 55 (max 111)
|
||||
Successful lookaside attempts: 682
|
||||
Lookaside failures due to size: 2
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 26664 bytes
|
||||
Page cache hits: 2
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Temporary data spilled to disk: 0
|
||||
Schema Heap Usage: 2728 bytes
|
||||
Statement Heap/Lookaside Usage: 3040 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 10
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 3040
|
||||
Bytes received by read(): 8991
|
||||
Bytes sent to write(): 17424
|
||||
Read() system calls: 41
|
||||
Write() system calls: 14
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,105 @@
|
||||
## 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
|
||||
BEGIN IMMEDIATE;
|
||||
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;
|
||||
.system
|
||||
SAVEPOINT sp1151;
|
||||
CREATE TABLE T (
|
||||
a TEXT,
|
||||
b TEXT,
|
||||
c REAL
|
||||
);
|
||||
INSERT INTO T VALUES ('a','b',load_extension('/nonexistent.so')), ('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;
|
||||
ROLLBACK TO sp1151;
|
||||
RELEASE sp1151;
|
||||
UPDATE T SET a = '' WHERE NOT NOT (rowid = 1) ;
|
||||
SELECT MIN(A) FROM T2;
|
||||
ALTER TABLE T DROP COLUMN a;
|
||||
INSERT INTO T1 VALUES (NULL, NULL);
|
||||
COMMIT TRANSACTION;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
SELECT X, COUNT(*) FROM T2 GROUP BY X HAVING COUNT(*) = (SELECT COUNT(*) FROM T2);
|
||||
ALTER TABLE T2 RENAME COLUMN A TO A_r4135;
|
||||
REINDEX T;
|
||||
SELECT * FROM T1;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
Usage: /home/test/sqlite3-src/build/sqlite3 [OPTIONS] FILENAME [SQL]
|
||||
FILENAME is the name of an SQLite database. A new database is created
|
||||
if the file does not previously exist.
|
||||
OPTIONS include:
|
||||
-append append the database to the end of the file
|
||||
-ascii set output mode to 'ascii'
|
||||
-bail stop after hitting an error
|
||||
-batch force batch I/O
|
||||
-box set output mode to 'box'
|
||||
-column set output mode to 'column'
|
||||
-cmd COMMAND run "COMMAND" before reading stdin
|
||||
-csv set output mode to 'csv'
|
||||
-deserialize open the database using sqlite3_deserialize()
|
||||
-echo print commands before execution
|
||||
-init FILENAME read/process named file
|
||||
-[no]header turn headers on or off
|
||||
-help show this message
|
||||
-html set output mode to HTML
|
||||
-interactive force interactive I/O
|
||||
-json set output mode to 'json'
|
||||
-line set output mode to 'line'
|
||||
-list set output mode to 'list'
|
||||
-lookaside SIZE N use N entries of SZ bytes for lookaside memory
|
||||
-markdown set output mode to 'markdown'
|
||||
-maxsize N maximum size for a --deserialize database
|
||||
-memtrace trace all memory allocations and deallocations
|
||||
-mmap N default mmap size set to N
|
||||
-newline SEP set output row separator. Default: '\n'
|
||||
-nofollow refuse to open symbolic links to database files
|
||||
-nonce STRING set the safe-mode escape nonce
|
||||
-nullvalue TEXT set text string for NULL values. Default ''
|
||||
-pagecache SIZE N use N slots of SZ bytes each for page cache memory
|
||||
-quote set output mode to 'quote'
|
||||
-readonly open the database read-only
|
||||
-safe enable safe-mode
|
||||
-separator SEP set output column separator. Default: '|'
|
||||
-stats print memory stats before each finalize
|
||||
-table set output mode to 'table'
|
||||
-tabs set output mode to 'tabs'
|
||||
-version show SQLite version
|
||||
-vfs NAME use NAME as the default VFS
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
-help
|
||||
```
|
||||
|
||||
@@ -0,0 +1,112 @@
|
||||
## Summary
|
||||
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
|
||||
|
||||
## Minimized query
|
||||
|
||||
```sql
|
||||
.timer 192319231923
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(6.283185307179586),
|
||||
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;
|
||||
PRAGMA vdbe_trace = OFF;
|
||||
SAVEPOINT sp8234;
|
||||
PRAGMA writable_schema = NO;
|
||||
.exit -x'03bbd57489fa9462044f729a39'
|
||||
SELECT x'dd97ef423045a84836eda2'x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('' || ('æçå¤©ä½ æ¯æä¹äº'));
|
||||
SELECT tan(1) >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
PRAGMA full_column_names;
|
||||
PRAGMA cache_spill = FALSE;
|
||||
PRAGMA cache_spill = YES;
|
||||
.import random-json.db main
|
||||
CREATE TABLE A(Name text);
|
||||
CREATE TABLE Items(ItemName text , Name text);
|
||||
INSERT INTO Items VALUES('Item1','Parent');
|
||||
INSERT INTO Items VALUES('Item2','Parent');
|
||||
CREATE TABLE B(Name text);
|
||||
SELECT Items.ItemName FROM Items LEFT JOIN A ON (A.Name = Items.ItemName and Items.ItemName = 'dummy') LEFT JOIN B ON (B.Name = Items.ItemName) WHERE NOT Items.Name = 'Parent' ORDER BY Items.ItemName;
|
||||
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_B_4512 ON B(Name COLLATE NOCASE);
|
||||
ALTER TABLE Items RENAME COLUMN ItemName TO ItemName_r8638;
|
||||
|
||||
SELECT COUNT(*) FROM Items;
|
||||
REINDEX;
|
||||
ALTER TABLE Items DROP COLUMN ItemName;
|
||||
INSERT INTO B DEFAULT VALUES;
|
||||
ROLLBACK TO sp8234;
|
||||
RELEASE sp8234;
|
||||
SELECT * FROM B WHERE Name IN (SELECT Name FROM B LIMIT 0);
|
||||
CREATE TRIGGER IF NOT EXISTS trg_B_4400 BEFORE UPDATE OF Name ON B BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
ANALYZE A;
|
||||
SELECT * FROM A WHERE (Name, Name) IN (SELECT Name, Name FROM A);
|
||||
ALTER TABLE Items RENAME TO Items_r8580;
|
||||
SELECT GROUP_CONCAT(Name, Name) OVER (PARTITION BY Name ORDER BY Name ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM B;
|
||||
UPDATE B SET Name = 84 WHERE Name BETWEEN 0 AND 100;
|
||||
UPDATE B SET Name = json_object('k', Name) WHERE Name IS NOT NULL;
|
||||
SELECT * FROM Items AS a JOIN Items AS b ON a.rowid = b.rowid;
|
||||
INSERT INTO A VALUES (1) ON CONFLICT(Name) DO UPDATE SET Name = excluded.Name;
|
||||
ALTER TABLE A RENAME COLUMN Name TO Name_r3639;
|
||||
DELETE FROM A WHERE 1 RETURNING *;
|
||||
INSERT INTO A DEFAULT VALUES;
|
||||
SELECT * FROM B;
|
||||
REINDEX B;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_B_3829 AS SELECT Name FROM B;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
Run Time: real 0.000 user 0.000314 sys 0.000000
|
||||
Run Time: real 0.000 user 0.000025 sys 0.000000
|
||||
Run Time: real 0.000 user 0.000012 sys 0.000000
|
||||
Run Time: real 0.000 user 0.000010 sys 0.000000
|
||||
Run Time: real 0.001 user 0.000009 sys 0.000000
|
||||
Run Time: real 0.000 user 0.000009 sys 0.000000
|
||||
Run Time: real 0.000 user 0.000010 sys 0.000000
|
||||
q|2
|
||||
r|2
|
||||
p|1
|
||||
t|1
|
||||
Run Time: real 0.000 user 0.000126 sys 0.000000
|
||||
Run Time: real 0.000 user 0.000007 sys 0.000000
|
||||
Run Time: real 0.000 user 0.000004 sys 0.000000
|
||||
Run Time: real 0.000 user 0.000004 sys 0.000000
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
Run Time: real 0.000125 user 0.000000 sys 0.000134
|
||||
Run Time: real 0.000012 user 0.000000 sys 0.000012
|
||||
Run Time: real 0.000005 user 0.000000 sys 0.000006
|
||||
Run Time: real 0.000004 user 0.000000 sys 0.000004
|
||||
Run Time: real 0.000003 user 0.000000 sys 0.000003
|
||||
Run Time: real 0.000003 user 0.000000 sys 0.000004
|
||||
Run Time: real 0.000003 user 0.000000 sys 0.000004
|
||||
q|2
|
||||
r|2
|
||||
p|1
|
||||
t|1
|
||||
Run Time: real 0.000070 user 0.000000 sys 0.000070
|
||||
Run Time: real 0.000003 user 0.000000 sys 0.000004
|
||||
Run Time: real 0.000001 user 0.000000 sys 0.000002
|
||||
Run Time: real 0.000002 user 0.000000 sys 0.000003
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
@@ -0,0 +1,938 @@
|
||||
## 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
|
||||
ATTACH DATABASE ':memory:' AS aux74;
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b REAL,
|
||||
c REAL
|
||||
);
|
||||
INSERT INTO T VALUES (json_array('`', atan(x'c442')),power(sqlite_compileoption_used(2.0), 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;
|
||||
PRAGMA legacy_alter_table = OFF;
|
||||
PRAGMA legacy_alter_table = ON;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE main.t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh((like('9223372036854775806%', instr(NULL, NULL)) + 0.0)), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE NOT NOT +a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh(1), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh(1), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh(1), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh(1), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
|
||||
WITH cte AS (SELECT a, LAG(a) OVER (ORDER BY a) AS prev FROM t1) SELECT * FROM cte;
|
||||
INSERT INTO t1 VALUES ('x') ON CONFLICT(a) DO UPDATE SET a = excluded.a;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
SELECT * FROM t1 WHERE a IN (SELECT ALL a FROM t1);
|
||||
SELECT SUM(a) FROM t1;
|
||||
SELECT * FROM t1 t1 RIGHT JOIN t1 t2 ON t1.a = (SELECT a FROM t1 WHERE a = t1.a);
|
||||
ANALYZE;
|
||||
CREATE TABLE T1 (
|
||||
a INTEGER,
|
||||
b TEXT
|
||||
);
|
||||
CREATE TABLE T2 (
|
||||
a INTEGER,
|
||||
b TEXT
|
||||
);
|
||||
INSERT INTO T1 VALUES (1,'a'),(2,'b');
|
||||
INSERT INTO T2 VALUES (1,'c'),(1,'d');
|
||||
SELECT T1.b,
|
||||
(
|
||||
SELECT GROUP_CONCAT(b,',')
|
||||
FROM T2
|
||||
WHERE T2.a=T1.a
|
||||
) AS c
|
||||
FROM T1;
|
||||
SELECT 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;
|
||||
PRAGMA page_count;
|
||||
ALTER TABLE T2 ADD COLUMN extra_8536 INT8 DEFAULT CURRENT_TIMESTAMP;
|
||||
SELECT * FROM T2;
|
||||
SELECT NTH_VALUE(a, -1) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM T2;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
PRAGMA vdbe_debug = OFF;
|
||||
INSERT INTO T2 VALUES (NULL, NULL);
|
||||
|
||||
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 AVG(b) FROM T2;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_T1_3200 AS SELECT a FROM T1;
|
||||
VACUUM main;
|
||||
DROP INDEX IF EXISTS t1;
|
||||
SELECT * FROM (SELECT * FROM T2 ORDER BY a) AS sub LIMIT 10;
|
||||
UPDATE T1 SET a = 'x' WHERE a BETWEEN 0 AND 100;
|
||||
SELECT NTILE(4) OVER (PARTITION BY a ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T1;
|
||||
|
||||
SELECT COUNT(*) FROM T1;
|
||||
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<23) SELECT * FROM cnt;
|
||||
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;
|
||||
PRAGMA legacy_alter_table = OFF;
|
||||
PRAGMA legacy_alter_table = ON;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE main.t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh((like('9223372036854775806%', instr(NULL, NULL)) + 0.0)), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE NOT NOT +a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh(1), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh(1), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh(1), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh(1), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
|
||||
WITH cte AS (SELECT a, LAG(a) OVER (ORDER BY a) AS prev FROM t1) SELECT * FROM cte;
|
||||
INSERT INTO t1 VALUES ('x') ON CONFLICT(a) DO UPDATE SET a = excluded.a;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
SELECT * FROM t1 WHERE a IN (SELECT ALL a FROM t1);
|
||||
SELECT SUM(a) FROM t1;
|
||||
SELECT * FROM t1 t1 RIGHT JOIN t1 t2 ON t1.a = (SELECT a FROM t1 WHERE a = t1.a);
|
||||
ANALYZE;
|
||||
CREATE TABLE T1 (
|
||||
a INTEGER,
|
||||
b TEXT
|
||||
);
|
||||
CREATE TABLE T2 (
|
||||
a INTEGER,
|
||||
b TEXT
|
||||
);
|
||||
INSERT INTO T1 VALUES (1,'a'),(2,'b');
|
||||
INSERT INTO T2 VALUES (1,'c'),(1,'d');
|
||||
SELECT T1.b,
|
||||
(
|
||||
SELECT GROUP_CONCAT(b,',')
|
||||
FROM T2
|
||||
WHERE T2.a=T1.a
|
||||
) AS c
|
||||
FROM T1;
|
||||
SELECT 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;
|
||||
PRAGMA page_count;
|
||||
ALTER TABLE T2 ADD COLUMN extra_8536 INT8 DEFAULT CURRENT_TIMESTAMP;
|
||||
SELECT * FROM T2;
|
||||
SELECT NTH_VALUE(a, -1) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM T2;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
PRAGMA vdbe_debug = OFF;
|
||||
INSERT INTO T2 VALUES (NULL, NULL);
|
||||
|
||||
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 AVG(b) FROM T2;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_T1_3200 AS SELECT a FROM T1;
|
||||
VACUUM main;
|
||||
DROP INDEX IF EXISTS t1;
|
||||
SELECT * FROM (SELECT * FROM T2 ORDER BY a) AS sub LIMIT 10;
|
||||
UPDATE T1 SET a = 'x' WHERE a BETWEEN 0 AND 100;
|
||||
SELECT NTILE(4) OVER (PARTITION BY a ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T1;
|
||||
|
||||
SELECT COUNT(*) FROM T1;
|
||||
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<23) SELECT * FROM cnt;
|
||||
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;
|
||||
PRAGMA legacy_alter_table = OFF;
|
||||
PRAGMA legacy_alter_table = ON;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE main.t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh((like('9223372036854775806%', instr(NULL, NULL)) + 0.0)), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE NOT NOT +a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh(1), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh(1), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh(1), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh(1), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
|
||||
WITH cte AS (SELECT a, LAG(a) OVER (ORDER BY a) AS prev FROM t1) SELECT * FROM cte;
|
||||
INSERT INTO t1 VALUES ('x') ON CONFLICT(a) DO UPDATE SET a = excluded.a;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
SELECT * FROM t1 WHERE a IN (SELECT ALL a FROM t1);
|
||||
SELECT SUM(a) FROM t1;
|
||||
SELECT * FROM t1 t1 RIGHT JOIN t1 t2 ON t1.a = (SELECT a FROM t1 WHERE a = t1.a);
|
||||
ANALYZE;
|
||||
CREATE TABLE T1 (
|
||||
a INTEGER,
|
||||
b TEXT
|
||||
);
|
||||
CREATE TABLE T2 (
|
||||
a INTEGER,
|
||||
b TEXT
|
||||
);
|
||||
INSERT INTO T1 VALUES (1,'a'),(2,'b');
|
||||
INSERT INTO T2 VALUES (1,'c'),(1,'d');
|
||||
SELECT T1.b,
|
||||
(
|
||||
SELECT GROUP_CONCAT(b,',')
|
||||
FROM T2
|
||||
WHERE T2.a=T1.a
|
||||
) AS c
|
||||
FROM T1;
|
||||
SELECT 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;
|
||||
PRAGMA page_count;
|
||||
ALTER TABLE T2 ADD COLUMN extra_8536 INT8 DEFAULT CURRENT_TIMESTAMP;
|
||||
SELECT * FROM T2;
|
||||
SELECT NTH_VALUE(a, -1) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM T2;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
PRAGMA vdbe_debug = OFF;
|
||||
INSERT INTO T2 VALUES (NULL, NULL);
|
||||
|
||||
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 AVG(b) FROM T2;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_T1_3200 AS SELECT a FROM T1;
|
||||
VACUUM main;
|
||||
DROP INDEX IF EXISTS t1;
|
||||
SELECT * FROM (SELECT * FROM T2 ORDER BY a) AS sub LIMIT 10;
|
||||
UPDATE T1 SET a = 'x' WHERE a BETWEEN 0 AND 100;
|
||||
SELECT NTILE(4) OVER (PARTITION BY a ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE /**/ GROUP) FROM T1;
|
||||
|
||||
SELECT COUNT(*) FROM T1;
|
||||
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<23) SELECT * FROM cnt;
|
||||
|
||||
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<15) SELECT SUM(x) FROM cnt;
|
||||
SELECT * FROM T2;
|
||||
DETACH DATABASE aux74;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_580 BEFORE DELETE ON t1 FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END;
|
||||
INSERT INTO T2 DEFAULT VALUES;
|
||||
ALTER TABLE t1 RENAME TO t1_r5067;
|
||||
ANALYZE;
|
||||
CREATE INDEX IF NOT EXISTS idx_T_1933 ON T(c COLLATE NOCASE);
|
||||
DROP TRIGGER IF EXISTS T2;
|
||||
SELECT SUM(b) FROM T;
|
||||
|
||||
SELECT COUNT(*) FROM T1;
|
||||
CREATE TABLE T (
|
||||
a TEXT,
|
||||
b TEXT
|
||||
);
|
||||
INSERT INTO T VALUES ('a','2020-01-01'), ('b','2026-01-01');
|
||||
SELECT a,
|
||||
CAST(
|
||||
(julianday('now')-julianday(b))/365.25
|
||||
AS INTEGER
|
||||
) AS c
|
||||
FROM T;
|
||||
ALTER TABLE T RENAME COLUMN b TO b_r9279;
|
||||
ALTER TABLE T1 DROP COLUMN a;
|
||||
UPDATE T SET a = '' WHERE a IS NOT NULL;
|
||||
ANALYZE;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_3723 ON T(b);
|
||||
ALTER TABLE T1 DROP COLUMN a;
|
||||
SELECT LEAD(a, 0, 'default') OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T;
|
||||
SELECT * FROM T WHERE a NOT IN (SELECT a FROM T);
|
||||
INSERT INTO T1 VALUES (NULL, NULL);
|
||||
ALTER TABLE T2 RENAME TO T2_r6027;
|
||||
SELECT * FROM t1 AS a INNER JOIN T1 AS b ON a.rowid = b.rowid;
|
||||
INSERT INTO T2 SELECT * FROM T2;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
<TR><TD>1</TD>
|
||||
<TD>-70.875</TD>
|
||||
</TR>
|
||||
<TR><TD>2</TD>
|
||||
<TD>-Inf</TD>
|
||||
</TR>
|
||||
<TR><TD>["`",null]</TD>
|
||||
<TD>0.0</TD>
|
||||
</TR>
|
||||
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
|
||||
WARNING: writing to an imposter table will corrupt the "t1bc" index!
|
||||
<TR><TD>Braun</TD>
|
||||
<TD>30</TD>
|
||||
<TD>3</TD>
|
||||
</TR>
|
||||
<TR><TD>von</TD>
|
||||
<TD>20</TD>
|
||||
<TD>2</TD>
|
||||
</TR>
|
||||
<TR><TD>Braun</TD>
|
||||
<TD>30</TD>
|
||||
</TR>
|
||||
<TR><TD>von</TD>
|
||||
<TD>20</TD>
|
||||
</TR>
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
-html
|
||||
```
|
||||
|
||||
@@ -0,0 +1,260 @@
|
||||
## Summary
|
||||
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
|
||||
|
||||
## Minimized query
|
||||
|
||||
```sql
|
||||
ATTACH DATABASE ':memory:' AS aux49;
|
||||
CREATE TABLE T1 (
|
||||
A VARCHAR(julianday(10 -> '$[0]')) 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 NOT NOT T2.A = T1.A AND T1.C >= 0;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
PRAGMA optimize(0x00002);
|
||||
.connection
|
||||
ATTACH DATABASE ':memory:' AS aux10;
|
||||
PRAGMA secure_delete = FALSE;
|
||||
.check
|
||||
PRAGMA freelist_count;
|
||||
ATTACH DATABASE ':memory:' AS aux47; /* hex('hello') */ PRAGMA index_list(users);
|
||||
PRAGMA table_info(users);
|
||||
PRAGMA application_id;
|
||||
PRAGMA optimize;
|
||||
.stats on
|
||||
CREATE TABLE [t1](n ANY, log int);
|
||||
BEGIN;
|
||||
INSERT INTO t1 VALUES(((log10(round(-format(NULL, CAST(NULL AS MEDIUMINT)), jsonb_extract(length(randomblob(inf)), '$.key'))) + -(-(NULL))) - CAST(pi() AS BIGINT)), 1);
|
||||
INSERT INTO t1 VALUES(3, 1);
|
||||
INSERT INTO t1 VALUES(4, 1);
|
||||
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;
|
||||
INSERT INTO t1 VALUES(4, 3);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT min(n),min(log),max(n),max(log),sum(n),sum(log),avg(n),avg(log) FROM _m;
|
||||
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;
|
||||
DETACH DATABASE aux47;
|
||||
INSERT INTO t1 VALUES (NULL, NULL);
|
||||
SELECT COUNT(*) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN extra_5120 DATETIME;
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
DELETE FROM t1 WHERE NOT NOT +log > (SELECT AVG(log) FROM t1) RETURNING *;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_3311 AS SELECT log FROM t1;
|
||||
PRAGMA vdbe_trace = /* PRAGMA checkpoint_fullsync = NO; */ 1;
|
||||
SELECT * FROM t1;
|
||||
ALTER TABLE t1 RENAME COLUMN n TO n_r4471;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_t1_1086 AS /* COUNT({c}) FILTER (WHERE NULL) */ SELECT log FROM t1;
|
||||
CREATE INDEX IF NOT EXISTS idx_t1_9719 ON t1(lower(log)) WHERE log IS NOT NULL;
|
||||
ALTER TABLE t1 RENAME COLUMN log TO log_r6203;
|
||||
DROP INDEX IF EXISTS t1;
|
||||
SELECT COUNT(n) FROM t1;
|
||||
PRAGMA query_only = FALSE;
|
||||
SELECT * FROM t1 CROSS JOIN t1;
|
||||
DELETE FROM t1 WHERE 0;
|
||||
DETACH DATABASE aux10;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_7740 ON T(a) WHERE a IS NOT NULL;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_T_342 AS SELECT b FROM T;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
INSERT INTO T VALUES (NULL, NULL);
|
||||
COMMIT;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_149 ON T(lower(a)) WHERE a IS NOT NULL;
|
||||
INSERT INTO T VALUES (NULL, 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
|
||||
ALTER TABLE T DROP COLUMN b;
|
||||
ANALYZE T;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
PRAGMA optimize(0x00002);
|
||||
.connection
|
||||
ATTACH DATABASE ':memory:' AS aux10;
|
||||
PRAGMA secure_delete = FALSE;
|
||||
.check
|
||||
PRAGMA freelist_count;
|
||||
ATTACH DATABASE ':memory:' AS aux47; /* hex('hello') */ PRAGMA index_list(users);
|
||||
PRAGMA table_info(users);
|
||||
PRAGMA application_id;
|
||||
PRAGMA optimize;
|
||||
.stats on
|
||||
CREATE TABLE [t1](n ANY, log int);
|
||||
BEGIN;
|
||||
INSERT INTO t1 VALUES(((log10(round(-format(NULL, CAST(NULL AS MEDIUMINT)), jsonb_extract(length(randomblob(inf)), '$.key'))) + -(-(NULL))) - CAST(pi() AS BIGINT)), 1);
|
||||
INSERT INTO t1 VALUES(3, 1);
|
||||
INSERT INTO t1 VALUES(4, 1);
|
||||
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;
|
||||
INSERT INTO t1 VALUES(4, 3);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT min(n),min(log),max(n),max(log),sum(n),sum(log),avg(n),avg(log) FROM _m;
|
||||
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;
|
||||
DETACH DATABASE aux47;
|
||||
INSERT INTO t1 VALUES (NULL, NULL);
|
||||
SELECT COUNT(*) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN extra_5120 DATETIME;
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
DELETE FROM t1 WHERE NOT NOT +log > (SELECT AVG(log) FROM t1) RETURNING *;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_3311 AS SELECT log FROM t1;
|
||||
PRAGMA vdbe_trace = /* PRAGMA checkpoint_fullsync = NO; */ 1;
|
||||
SELECT * FROM t1;
|
||||
ALTER TABLE t1 RENAME COLUMN n TO n_r4471;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_t1_1086 AS /* COUNT({c}) FILTER (WHERE NULL) */ SELECT log FROM t1;
|
||||
CREATE INDEX IF NOT EXISTS idx_t1_9719 ON t1(lower(log)) WHERE log IS NOT NULL;
|
||||
ALTER TABLE t1 RENAME COLUMN log TO log_r6203;
|
||||
DROP INDEX IF EXISTS t1;
|
||||
SELECT COUNT(n) FROM t1;
|
||||
PRAGMA query_only = FALSE;
|
||||
SELECT * FROM t1 CROSS JOIN t1;
|
||||
DELETE FROM t1 WHERE 0;
|
||||
DETACH DATABASE aux10;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_7740 ON T(a) WHERE a IS NOT NULL;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_T_342 AS SELECT b FROM T;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
INSERT INTO T VALUES (NULL, NULL);
|
||||
COMMIT;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_149 ON T(lower(a)) WHERE a IS NOT NULL;
|
||||
INSERT INTO T VALUES (NULL, 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
|
||||
ALTER TABLE T DROP COLUMN b;
|
||||
ANALYZE T;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
PRAGMA optimize(0x00002);
|
||||
.connection
|
||||
ATTACH DATABASE ':memory:' AS aux10;
|
||||
PRAGMA secure_delete = FALSE;
|
||||
.check
|
||||
PRAGMA freelist_count;
|
||||
ATTACH DATABASE ':memory:' AS aux47; /* hex('hello') */ PRAGMA index_list(users);
|
||||
PRAGMA table_info(users);
|
||||
PRAGMA application_id;
|
||||
PRAGMA optimize;
|
||||
.stats on
|
||||
CREATE TABLE [t1](n ANY, log int);
|
||||
BEGIN;
|
||||
INSERT INTO t1 VALUES(((log10(round(-format(NULL, CAST(NULL AS MEDIUMINT)), jsonb_extract(length(randomblob(inf)), '$.key'))) + -(-(NULL))) - CAST(pi() AS BIGINT)), 1);
|
||||
INSERT INTO t1 VALUES(3, 1);
|
||||
INSERT INTO t1 VALUES(4, 1);
|
||||
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;
|
||||
INSERT INTO t1 VALUES(4, 3);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT min(n),min(log),max(n),max(log),sum(n),sum(log),avg(n),avg(log) FROM _m;
|
||||
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;
|
||||
DETACH DATABASE aux47;
|
||||
INSERT INTO t1 VALUES (NULL, NULL);
|
||||
SELECT COUNT(*) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN extra_5120 DATETIME;
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
DELETE FROM t1 WHERE NOT NOT +log > (SELECT AVG(log) FROM t1) RETURNING *;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_3311 AS SELECT log FROM t1;
|
||||
PRAGMA vdbe_trace = /* PRAGMA checkpoint_fullsync = NO; */ 1;
|
||||
SELECT * FROM t1;
|
||||
ALTER TABLE t1 RENAME COLUMN n TO n_r4471;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_t1_1086 AS /* COUNT({c}) FILTER (WHERE NULL) */ SELECT log FROM t1;
|
||||
CREATE INDEX IF NOT EXISTS idx_t1_9719 ON t1(lower(log)) WHERE log IS NOT NULL;
|
||||
ALTER TABLE t1 RENAME COLUMN log TO log_r6203;
|
||||
DROP INDEX IF EXISTS t1;
|
||||
SELECT COUNT(n) FROM t1;
|
||||
PRAGMA query_only = FALSE;
|
||||
SELECT * FROM t1 CROSS JOIN t1;
|
||||
DELETE FROM t1 WHERE 0;
|
||||
DETACH DATABASE aux10;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_7740 ON T(a) WHERE a IS NOT NULL;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_T_342 AS SELECT b FROM T;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
INSERT INTO T VALUES (NULL, NULL);
|
||||
COMMIT;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_149 ON T(lower(a)) WHERE a IS NOT NULL;
|
||||
INSERT INTO T VALUES (NULL, 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
|
||||
ALTER TABLE T DROP COLUMN b;
|
||||
ANALYZE T;
|
||||
|
||||
INSERT INTO T1 SELECT * FROM T1;
|
||||
WITH cte AS (SELECT A FROM T2 WHERE A IS NULL) SELECT * FROM cte;
|
||||
SELECT LAST_VALUE(X) OVER (ORDER BY X RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM T2;
|
||||
ANALYZE;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_7338 ON T(a COLLATE NOCASE);
|
||||
DETACH DATABASE aux49;
|
||||
```
|
||||
|
||||
## 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,57 @@
|
||||
## 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 schema_version;
|
||||
.progress NULL
|
||||
.timer 192319231923
|
||||
PRAGMA /* NTH_VALUE({c}, 1) */ automatic_index = FALSE;
|
||||
SAVEPOINT sp9691;
|
||||
PRAGMA cell_size_check = YES;
|
||||
SELECT json_pretty(atan2((0 * 1), 0), '' || (' '))x0ACB29BM205381;
|
||||
-- PRAGMA analysis_limit = 50;
|
||||
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp9691;
|
||||
RELEASE SAVEPOINT sp9691;
|
||||
VACUUM;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
0
|
||||
Run Time: real 0.000 user 0.000013 sys 0.000000
|
||||
Run Time: real 0.000 user 0.000003 sys 0.000000
|
||||
Run Time: real 0.000 user 0.000002 sys 0.000000
|
||||
Run Time: real 0.000 user 0.000033 sys 0.000000
|
||||
0
|
||||
Run Time: real 0.000 user 0.000026 sys 0.000000
|
||||
0
|
||||
Run Time: real 0.000 user 0.000012 sys 0.000000
|
||||
ATOMIC_INTRINSICS=1
|
||||
Run Time: real 0.000 user 0.000055 sys 0.000000
|
||||
3.39.0
|
||||
Run Time: real 0.000 user 0.000005 sys 0.000000
|
||||
Run Time: real 0.000 user 0.000003 sys 0.000000
|
||||
Run Time: real 0.000 user 0.000002 sys 0.000000
|
||||
Run Time: real 0.000 user 0.000152 sys 0.000000
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
@@ -0,0 +1,525 @@
|
||||
## 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 = FALSE;
|
||||
.once log.txt
|
||||
PRAGMA synchronous = '0';
|
||||
-- rtrim({v}, 'xyz')
|
||||
|
||||
-- 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
|
||||
ATTACH DATABASE ':memory:' AS aux98;
|
||||
PRAGMA writable_schema = YES;
|
||||
PRAGMA short_column_names = OFF;
|
||||
PRAGMA vdbe_trace = YES;
|
||||
ATTACH DATABASE '' || (':memory:') AS aux22;
|
||||
BEGIN DEFERRED;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
InsErt INTO t1 VALUES (json_valid(ln(-json_set(sinh(x'01'), '$.key', (log(-(-(iif(NULL, (CAST(log(CAST(2147483646 AS CHAR(10)), 2147483646) AS NUMERIC) -> '$' + 0.0), 9223372036854775809)))) * 1))), 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM T1) SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
DROP TABLE IF EXISTS t1;
|
||||
DROP TABLE IF EXISTS t2;
|
||||
CREATE TABLE t1(x);
|
||||
INSERT INTO t1 VALUES(-2147483649);
|
||||
CREATE TABLE t2(y,z);
|
||||
INSERT INTO t2 VALUES(2,3);
|
||||
CREATE INDEX t2y ON t2(y);
|
||||
SELECT * FROM t1,(SELECT * FROM t2 WHERE NOT NOT (NOT NOT (NOT NOT (y=2))) ORDER BY y,z);
|
||||
|
||||
SELECT GROUP_CONCAT(x, '.') OVER (PARTITION BY x ORDER BY x ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1;
|
||||
INSERT OR ABORT INTO t2 VALUES (0, 'x');
|
||||
END;
|
||||
ANALYZE;
|
||||
REINDEX;
|
||||
SELECT * FROM t2;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_t2_6543 ON t2(y COLLATE NOCASE) WHERE +y > 0;
|
||||
SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DROP INDEX IF EXISTS t2;
|
||||
DETACH DATABASE aux22;
|
||||
INSERT INTO t2 VALUES (NULL, NULL);
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_9456 AFTER UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
DROP TRIGGER IF EXISTS t2;
|
||||
CREATE TABLE _m (
|
||||
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;
|
||||
|
||||
SELECT COUNT(*) FROM T2;
|
||||
ALTER TABLE t1 ADD COLUMN extra_7517 FLOA DEFAULT (abs(random()) % 1000);
|
||||
DROP TABLE IF EXISTS T1;
|
||||
|
||||
SELECT COUNT(*) FROM T1;
|
||||
VACUUM;
|
||||
ALTER TABLE T1 RENAME TO T1_r4172;
|
||||
INSERT INTO T1 VALUES (NULL, NULL, NULL) ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
|
||||
SELECT GROUP_CONCAT(y, '|') FROM t2;
|
||||
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;
|
||||
ALTER TABLE T1 ADD COLUMN extra_7361 BOOLEAN DEFAULT (random());
|
||||
ALTER TABLE t1 RENAME TO t1_r8174;
|
||||
DROP TABLE IF EXISTS T2;
|
||||
PRAGMA reverse_unordered_selects;
|
||||
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;
|
||||
SELECT LAG(A, 1, NULL) OVER (PARTITION BY A ORDER BY A) FROM T2;
|
||||
WITH RECURSIVE pair(a,b) AS (VALUES(0,1) UNION ALL SELECT b, a+b FROM pair WHERE b<100) SELECT * FROM pair;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T2_9819 AFTER DELETE ON T2 BEGIN INSERT INTO T2(A) VALUES (NULL); END;
|
||||
SELECT * FROM T1 AS a LEFT OUTER JOIN T1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE x > (SELECT AVG(x) FROM t1);
|
||||
INSERT INTO T2 VALUES (NULL, 'x') ON CONFLICT(X) DO UPDATE SET X = excluded.X, A = excluded.A;
|
||||
PRAGMA checkpoint_fullsync = NO;
|
||||
CREATE TABLE main."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;
|
||||
DETACH DATABASE aux98;
|
||||
ATTACH DATABASE ':memory:' AS aux98;
|
||||
PRAGMA writable_schema = YES;
|
||||
PRAGMA short_column_names = OFF;
|
||||
PRAGMA vdbe_trace = YES;
|
||||
ATTACH DATABASE '' || (':memory:') AS aux22;
|
||||
BEGIN DEFERRED;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
InsErt INTO t1 VALUES (json_valid(ln(-json_set(sinh(x'01'), '$.key', (log(-(-(9223372036854775809))) * 1))), 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
DROP TABLE IF EXISTS t1;
|
||||
DROP TABLE IF EXISTS t2;
|
||||
CREATE TABLE t1(x);
|
||||
INSERT INTO t1 VALUES(-2147483649);
|
||||
CREATE TABLE t2(y,z);
|
||||
INSERT INTO t2 VALUES(2,3);
|
||||
CREATE INDEX t2y ON t2(y);
|
||||
SELECT * FROM t1,(SELECT * FROM t2 WHERE NOT NOT (NOT NOT (y=2)) ORDER BY y,z);
|
||||
|
||||
SELECT GROUP_CONCAT(x, '.') OVER (PARTITION BY x ORDER BY x ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1;
|
||||
INSERT OR ABORT INTO t2 VALUES (0, 'x');
|
||||
END;
|
||||
ANALYZE;
|
||||
REINDEX;
|
||||
SELECT * FROM t2;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_t2_6543 ON t2(y COLLATE NOCASE) WHERE y > 0;
|
||||
SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DROP INDEX IF EXISTS t2;
|
||||
DETACH DATABASE aux22;
|
||||
INSERT INTO t2 VALUES (NULL, NULL);
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_9456 AFTER UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
DROP TRIGGER IF EXISTS t2;
|
||||
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;
|
||||
|
||||
SELECT COUNT(*) FROM T2;
|
||||
ALTER TABLE t1 ADD COLUMN extra_7517 FLOA DEFAULT (abs(random()) % 1000);
|
||||
DROP TABLE IF EXISTS T1;
|
||||
|
||||
SELECT COUNT(*) FROM T1;
|
||||
VACUUM;
|
||||
ALTER TABLE T1 RENAME TO T1_r4172;
|
||||
INSERT INTO T1 VALUES (NULL, NULL, NULL) ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
|
||||
SELECT GROUP_CONCAT(y, '|') FROM t2;
|
||||
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;
|
||||
ALTER TABLE T1 ADD COLUMN extra_7361 BOOLEAN DEFAULT (random());
|
||||
ALTER TABLE t1 RENAME TO t1_r8174;
|
||||
DROP TABLE IF EXISTS T2;
|
||||
PRAGMA reverse_unordered_selects;
|
||||
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;
|
||||
SELECT LAG(A, 1, NULL) OVER (PARTITION BY A ORDER BY A) FROM T2;
|
||||
WITH RECURSIVE pair(a,b) AS (VALUES(0,1) UNION ALL SELECT b, a+b FROM pair WHERE b<100) SELECT * FROM pair;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T2_9819 AFTER DELETE ON T2 BEGIN INSERT INTO T2(A) VALUES (NULL); END;
|
||||
SELECT * FROM T1 AS a LEFT OUTER JOIN T1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE x > (SELECT AVG(x) FROM t1);
|
||||
INSERT INTO T2 VALUES (NULL, 'x') ON CONFLICT(X) DO UPDATE SET X = excluded.X, A = excluded.A;
|
||||
PRAGMA checkpoint_fullsync = NO;
|
||||
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;
|
||||
DETACH DATABASE aux98;
|
||||
ATTACH DATABASE ':memory:' AS aux98;
|
||||
PRAGMA writable_schema = YES;
|
||||
PRAGMA short_column_names = OFF;
|
||||
PRAGMA vdbe_trace = YES;
|
||||
ATTACH DATABASE '' || (':memory:') AS aux22;
|
||||
BEGIN DEFERRED;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
InsErt INTO t1 VALUES (json_valid(ln(-json_set(sinh(x'01'), '$.key', (log(-(-(9223372036854775809))) * 1))), 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
DROP TABLE IF EXISTS t1;
|
||||
DROP TABLE IF EXISTS t2;
|
||||
CREATE TABLE t1(x);
|
||||
INSERT INTO t1 VALUES(-2147483649);
|
||||
CREATE TABLE t2(y,z);
|
||||
INSERT INTO t2 VALUES(2,3);
|
||||
CREATE INDEX t2y ON t2(y);
|
||||
SELECT * FROM t1,(SELECT * FROM t2 WHERE NOT NOT (NOT NOT (y=2)) ORDER BY y,z);
|
||||
|
||||
SELECT GROUP_CONCAT(x, '.') OVER (PARTITION BY x ORDER BY x ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1;
|
||||
INSERT OR ABORT INTO t2 VALUES (0, 'x');
|
||||
END;
|
||||
ANALYZE;
|
||||
REINDEX;
|
||||
SELECT * FROM t2;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_t2_6543 ON t2(y COLLATE NOCASE) WHERE y > 0;
|
||||
SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DROP INDEX IF EXISTS t2;
|
||||
DETACH DATABASE aux22;
|
||||
INSERT INTO t2 VALUES (NULL, NULL);
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_9456 AFTER UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
DROP TRIGGER IF EXISTS t2;
|
||||
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;
|
||||
|
||||
SELECT COUNT(*) FROM T2;
|
||||
ALTER TABLE t1 ADD COLUMN extra_7517 FLOA DEFAULT (abs(random()) % 1000);
|
||||
DROP TABLE IF EXISTS T1;
|
||||
|
||||
SELECT COUNT(*) FROM T1;
|
||||
VACUUM;
|
||||
ALTER TABLE T1 RENAME TO T1_r4172;
|
||||
INSERT INTO T1 VALUES (NULL, NULL, NULL) ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
|
||||
SELECT GROUP_CONCAT(y, '|') FROM t2;
|
||||
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;
|
||||
ALTER TABLE T1 ADD COLUMN extra_7361 BOOLEAN DEFAULT (random());
|
||||
ALTER TABLE t1 RENAME TO t1_r8174;
|
||||
DROP TABLE IF EXISTS T2;
|
||||
PRAGMA reverse_unordered_selects;
|
||||
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;
|
||||
SELECT LAG(A, 1, NULL) OVER (PARTITION BY A ORDER BY A) FROM T2;
|
||||
WITH RECURSIVE pair(a,b) AS (VALUES(0,1) UNION ALL SELECT b, a+b FROM pair WHERE b<100) SELECT * FROM pair;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T2_9819 AFTER DELETE ON T2 BEGIN INSERT INTO T2(A) VALUES (NULL); END;
|
||||
SELECT * FROM T1 AS a LEFT OUTER JOIN T1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE x > (SELECT AVG(x) FROM t1);
|
||||
INSERT INTO T2 VALUES (NULL, 'x') ON CONFLICT(X) DO UPDATE SET X = excluded.X, A = excluded.A;
|
||||
PRAGMA checkpoint_fullsync = NO;
|
||||
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;
|
||||
DETACH DATABASE aux98;
|
||||
ATTACH DATABASE ':memory:' AS aux98;
|
||||
PRAGMA writable_schema = YES;
|
||||
PRAGMA short_column_names = OFF;
|
||||
PRAGMA vdbe_trace = YES;
|
||||
ATTACH DATABASE '' || (':memory:') AS aux22;
|
||||
BEGIN DEFERRED;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
InsErt INTO t1 VALUES (json_valid(ln(-json_set(sinh(x'01'), '$.key', (log(-(-(9223372036854775809))) * 1))), 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
DROP TABLE IF EXISTS t1;
|
||||
DROP TABLE IF EXISTS t2;
|
||||
CREATE TABLE t1(x);
|
||||
INSERT INTO t1 VALUES(-2147483649);
|
||||
CREATE TABLE t2(y,z);
|
||||
INSERT INTO t2 VALUES(2,3);
|
||||
CREATE INDEX t2y ON t2(y);
|
||||
SELECT * FROM t1,(SELECT * FROM t2 WHERE NOT NOT (NOT NOT (y=2)) ORDER BY y,z);
|
||||
|
||||
SELECT GROUP_CONCAT(x, '.') OVER (PARTITION BY x ORDER BY x ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1;
|
||||
INSERT OR ABORT INTO t2 VALUES (0, 'x');
|
||||
END;
|
||||
ANALYZE;
|
||||
REINDEX;
|
||||
SELECT * FROM t2;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_t2_6543 ON t2(y COLLATE NOCASE) WHERE y > 0;
|
||||
SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DROP INDEX IF EXISTS t2;
|
||||
DETACH DATABASE aux22;
|
||||
INSERT INTO t2 VALUES (NULL, NULL);
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_9456 AFTER UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
DROP TRIGGER IF EXISTS t2;
|
||||
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;
|
||||
|
||||
SELECT COUNT(*) FROM T2;
|
||||
ALTER TABLE t1 ADD COLUMN extra_7517 FLOA DEFAULT (abs(random()) % 1000);
|
||||
DROP TABLE IF EXISTS T1;
|
||||
|
||||
SELECT COUNT(*) FROM T1;
|
||||
VACUUM;
|
||||
ALTER TABLE T1 RENAME TO T1_r4172;
|
||||
INSERT INTO T1 VALUES (NULL, NULL, NULL) ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
|
||||
SELECT GROUP_CONCAT(y, '|') FROM t2;
|
||||
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;
|
||||
ALTER TABLE T1 ADD COLUMN extra_7361 BOOLEAN DEFAULT (random());
|
||||
ALTER TABLE t1 RENAME TO t1_r8174;
|
||||
DROP TABLE IF EXISTS T2;
|
||||
PRAGMA reverse_unordered_selects;
|
||||
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;
|
||||
SELECT LAG(A, 1, NULL) OVER (PARTITION BY A ORDER BY A) FROM T2;
|
||||
WITH RECURSIVE pair(a,b) AS (VALUES(0,1) UNION ALL SELECT b, a+b FROM pair WHERE b<100) SELECT * FROM pair;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T2_9819 AFTER DELETE ON T2 BEGIN INSERT INTO T2(A) VALUES (NULL); END;
|
||||
SELECT * FROM T1 AS a LEFT OUTER JOIN T1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE x > (SELECT AVG(x) FROM t1);
|
||||
INSERT INTO T2 VALUES (NULL, 'x') ON CONFLICT(X) DO UPDATE SET X = excluded.X, A = excluded.A;
|
||||
PRAGMA checkpoint_fullsync = NO;
|
||||
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;
|
||||
DETACH DATABASE aux98;
|
||||
ATTACH DATABASE ':memory:' AS aux98;
|
||||
PRAGMA writable_schema = YES;
|
||||
PRAGMA short_column_names = OFF;
|
||||
PRAGMA vdbe_trace = YES;
|
||||
ATTACH DATABASE '' || (':memory:') AS aux22;
|
||||
BEGIN DEFERRED;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
InsErt INTO t1 VALUES (json_valid(ln(-json_set(sinh(x'01'), '$.key', (log(-(-(9223372036854775809))) * 1))), 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
DROP TABLE IF EXISTS t1;
|
||||
DROP TABLE IF EXISTS t2;
|
||||
CREATE TABLE t1(x);
|
||||
INSERT INTO t1 VALUES(-2147483649);
|
||||
CREATE TABLE t2(y,z);
|
||||
INSERT INTO t2 VALUES(2,3);
|
||||
CREATE INDEX t2y ON t2(y);
|
||||
SELECT * FROM t1,(SELECT * FROM t2 WHERE NOT NOT (NOT NOT (y=2)) ORDER BY y,z);
|
||||
|
||||
SELECT GROUP_CONCAT(x, '.') OVER (PARTITION BY x ORDER BY x ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1;
|
||||
INSERT OR ABORT INTO t2 VALUES (0, 'x');
|
||||
END;
|
||||
ANALYZE;
|
||||
REINDEX;
|
||||
SELECT * FROM t2;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_t2_6543 ON t2(y COLLATE NOCASE) WHERE y > 0;
|
||||
SELECT * FROM t2 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DROP INDEX IF EXISTS t2;
|
||||
DETACH DATABASE aux22;
|
||||
INSERT INTO t2 VALUES (NULL, NULL);
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_9456 AFTER UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
DROP TRIGGER IF EXISTS t2;
|
||||
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;
|
||||
|
||||
SELECT COUNT(*) FROM T2;
|
||||
ALTER TABLE t1 ADD COLUMN extra_7517 FLOA DEFAULT (abs(random()) % 1000);
|
||||
DROP TABLE IF EXISTS T1;
|
||||
|
||||
SELECT COUNT(*) FROM T1;
|
||||
VACUUM;
|
||||
ALTER TABLE T1 RENAME TO T1_r4172;
|
||||
INSERT INTO T1 VALUES (NULL, NULL, NULL) ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
|
||||
SELECT GROUP_CONCAT(y, '|') FROM t2;
|
||||
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;
|
||||
ALTER TABLE T1 ADD COLUMN extra_7361 BOOLEAN DEFAULT (random());
|
||||
ALTER TABLE t1 RENAME TO t1_r8174;
|
||||
DROP TABLE IF EXISTS T2;
|
||||
PRAGMA reverse_unordered_selects;
|
||||
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;
|
||||
SELECT LAG(A, 1, NULL) OVER (PARTITION BY A ORDER BY A) FROM T2;
|
||||
WITH RECURSIVE pair(a,b) AS (VALUES(0,1) UNION ALL SELECT b, a+b FROM pair WHERE b<100) SELECT * FROM pair;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T2_9819 AFTER DELETE ON T2 BEGIN INSERT INTO T2(A) VALUES (NULL); END;
|
||||
SELECT * FROM T1 AS a LEFT OUTER JOIN T1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE x > (SELECT AVG(x) FROM t1);
|
||||
INSERT INTO T2 VALUES (NULL, 'x') ON CONFLICT(X) DO UPDATE SET X = excluded.X, A = excluded.A;
|
||||
PRAGMA checkpoint_fullsync = NO;
|
||||
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;
|
||||
DETACH DATABASE aux98;
|
||||
|
||||
UPDATE t1 SET x = json_object('k', x) WHERE x BETWEEN 0 AND 100;
|
||||
ALTER TABLE t1 RENAME TO t1_r3577;
|
||||
SELECT MAX(x) FROM t1;
|
||||
INSERT INTO T1 VALUES (1, 'x', 'x') ON CONFLICT(A) DO UPDATE SET A = excluded.A, B = excluded.B, C = excluded.C;
|
||||
SELECT AVG(B) FROM T1;
|
||||
INSERT INTO T2 SELECT * FROM T2;
|
||||
REINDEX t1;
|
||||
WITH RECURSIVE pair(a,b) AS (VALUES(0,1) UNION ALL SELECT b, a+b FROM pair WHERE b<100) SELECT * FROM pair;
|
||||
SELECT * FROM T1 AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
DROP TRIGGER IF EXISTS t2;
|
||||
|
||||
SELECT COUNT(*) FROM T2;
|
||||
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;
|
||||
PRAGMA encoding = 'UTF-16be';
|
||||
ALTER TABLE T ADD COLUMN extra_362 NCHAR(55) DEFAULT 0;
|
||||
REINDEX;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_t2_9827 AS SELECT y FROM t2;
|
||||
INSERT OR REPLACE INTO t1 VALUES ('');
|
||||
SELECT * FROM t1;
|
||||
SELECT SUM(a) FROM T;
|
||||
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<67) SELECT MAX(x) FROM cnt;
|
||||
UPDATE T1 SET A = NULL WHERE 1;
|
||||
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 SUM(x) FILTER (WHERE 1=0) OVER (PARTITION BY x ORDER BY x ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1;
|
||||
WITH cte AS (SELECT * FROM T) SELECT * FROM cte;
|
||||
REINDEX;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_7703 AFTER INSERT ON t1 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
DELETE FROM t2 WHERE rowid = 15;
|
||||
INSERT INTO T2 DEFAULT VALUES;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
REINDEX T2;
|
||||
SELECT MIN(z) FROM t2;
|
||||
PRAGMA encoding = 'UTF-16le';
|
||||
INSERT INTO t2 SELECT * FROM t2;
|
||||
DELETE FROM t1 WHERE x > (SELECT AVG(x) FROM 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
|
||||
von|20|2
|
||||
Braun|30
|
||||
von|20
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
@@ -0,0 +1,119 @@
|
||||
## Summary
|
||||
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
|
||||
|
||||
## Minimized query
|
||||
|
||||
```sql
|
||||
PRAGMA trusted_schema;
|
||||
ATTACH DATABASE ':memory:' AS aux17;
|
||||
PRAGMA count_changes = OFF;
|
||||
ATTACH DATABASE ('' || '') || (':memory:') AS aux67;
|
||||
.check
|
||||
CREATE TABLE `T` (
|
||||
A VARCHAR(CAST(like(json_array(-trunc(json_quote('true'))), '') AS NUMERIC)) PRIMARY KEY,
|
||||
B VARCHAR(-(hex('') + 9223372036854775807)),
|
||||
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);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM T) SELEC_m /* .filectrl */ B, COUNT(*) AS D, SUM(C) AS E, AVG(C) AS F FROM T GROUP BY B HAVING SUM(C) > 0;
|
||||
DELETE FROM T WHERE 0 RETURNING *;
|
||||
DELETE FROM T WHERE +A > (SELECT AVG(A) FROM T);
|
||||
ANALYZE;
|
||||
DROP TABLE IF EXISTS T;
|
||||
SELECT * FROM (SELECT * FROM T) AS sub;
|
||||
UPDATE T SET A = NULL WHERE A BETWEEN 0 AND 100 RETURNING *;
|
||||
ANALYZE T;
|
||||
DETACH DATABASE aux67;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL);
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL);
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
PRAGMA temp_store = '1';
|
||||
PRAGMA temp_store = 'FILE';
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL);
|
||||
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;
|
||||
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;
|
||||
SELECT COUNT(*) FROM T;
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
SELECT COUNT(*) FROM T;
|
||||
SELECT * FROM T WHERE A = (SELECT MAX(A) FROM T WHERE A = (SELECT MAX(A) FROM T));
|
||||
PRAGMA synchronous;
|
||||
DETACH DATABASE aux17;
|
||||
DELETE FROM T WHERE 0 RETURNING *;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T_1028 BEFORE UPDATE OF C ON T FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA parser_trace = TRUE;
|
||||
WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM T WHERE C IN (SELECT x FROM cte);
|
||||
UPDATE T SET c = json_object('k', c) WHERE c IS NOT NULL;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_8093 AS SELECT a FROM 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;
|
||||
VACUUM;
|
||||
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;
|
||||
ALTER TABLE T RENAME TO T_r2091;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL);
|
||||
PRAGMA defer_foreign_keys = YES;
|
||||
DROP TRIGGER IF EXISTS T;
|
||||
UPDATE T SET a = CURRENT_TIMESTAMP WHERE a BETWEEN 0 AND 100;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T t2 WHERE t2.b = T.b);
|
||||
CREATE VIEW IF NOT EXISTS v_T_7910 AS SELECT a FROM T;
|
||||
WITH a AS (SELECT b FROM T), b AS (SELECT b FROM a), c AS (SELECT b FROM b) SELECT * FROM c;
|
||||
REINDEX;
|
||||
REINDEX T;
|
||||
VACUUM main;
|
||||
ALTER TABLE T DROP COLUMN c;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
SELECT * FROM T WHERE a < ALL (SELECT a FROM T);
|
||||
SELECT * FROM T;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
1
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
0
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
@@ -0,0 +1,380 @@
|
||||
## 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 sp1773;
|
||||
SELECT jsonb_replace(strftime('%s', x'70a97cbb0559ebbd833714e4067873'), '$.key', 0)x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
PRAGMA schema_version = 5;
|
||||
SELECT jsonb_replace(strftime('%s', 0), '$.key', 0)x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
PRAGMA schema_version = 5;
|
||||
SELECT jsonb_replace(strftime('%s', 0), '$.key', 0)x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº'); /**/ SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
PRAGMA schema_version = 5;
|
||||
SELECT jsonb_replace(strftime('%s', 0), '$.key', 0)x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
PRAGMA schema_version = 5;
|
||||
SELECT jsonb_replace(strftime('%s', 0), '$.key', 0)x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
PRAGMA schema_version = 5;
|
||||
SELECT jsonb_replace(strftime('%s', 0), '$.key', 0)x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
PRAGMA schema_version = 5;
|
||||
SELECT jsonb_replace(strftime('%s', 0), '$.key', 0)x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
PRAGMA schema_version = 5;
|
||||
|
||||
SELECT jsonb_replace(strftime('%s', 0), '$.key', 0)x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
PRAGMA schema_version = 5;
|
||||
SELECT jsonb_replace(strftime('%s', 0), '$.key', 0)x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
PRAGMA schema_version = 5;
|
||||
SELECT jsonb_replace(strftime('%s', 0), '$.key', 0)x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº'); /**/ SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
PRAGMA schema_version = 5;
|
||||
SELECT jsonb_replace(strftime('%s', 0), '$.key', 0)x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
PRAGMA schema_version = 5;
|
||||
SELECT jsonb_replace(strftime('%s', 0), '$.key', 0)x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
PRAGMA schema_version = 5;
|
||||
SELECT jsonb_replace(strftime('%s', 0), '$.key', 0)x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
PRAGMA schema_version = 5;
|
||||
SELECT jsonb_replace(strftime('%s', 0), '$.key', 0)x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
PRAGMA schema_version = 5;
|
||||
|
||||
SELECT jsonb_replace(strftime('%s', 0), '$.key', 0)x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
PRAGMA schema_version = 5;
|
||||
SELECT jsonb_replace(strftime('%s', 0), '$.key', 0)x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
PRAGMA schema_version = 5;
|
||||
SELECT jsonb_replace(strftime('%s', 0), '$.key', 0)x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº'); /**/ SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
PRAGMA schema_version = 5;
|
||||
SELECT jsonb_replace(strftime('%s', 0), '$.key', 0)x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
PRAGMA schema_version = 5;
|
||||
SELECT jsonb_replace(strftime('%s', 0), '$.key', 0)x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
PRAGMA schema_version = 5;
|
||||
SELECT jsonb_replace(strftime('%s', 0), '$.key', 0)x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
PRAGMA schema_version = 5;
|
||||
SELECT jsonb_replace(strftime('%s', 0), '$.key', 0)x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
PRAGMA schema_version = 5;
|
||||
|
||||
SELECT jsonb_replace(strftime('%s', 0), '$.key', 0)x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
PRAGMA schema_version = 5;
|
||||
SELECT jsonb_replace(strftime('%s', 0), '$.key', 0)x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
PRAGMA schema_version = 5;
|
||||
SELECT jsonb_replace(strftime('%s', 0), '$.key', 0)x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº'); /**/ SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
PRAGMA schema_version = 5;
|
||||
SELECT jsonb_replace(strftime('%s', 0), '$.key', 0)x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
PRAGMA schema_version = 5;
|
||||
SELECT jsonb_replace(strftime('%s', 0), '$.key', 0)x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
PRAGMA schema_version = 5;
|
||||
SELECT jsonb_replace(strftime('%s', 0), '$.key', 0)x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
PRAGMA schema_version = 5;
|
||||
SELECT jsonb_replace(strftime('%s', 0), '$.key', 0)x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
PRAGMA schema_version = 5;
|
||||
|
||||
SELECT jsonb_replace(strftime('%s', 0), '$.key', 0)x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
PRAGMA schema_version = 5;
|
||||
SELECT jsonb_replace(strftime('%s', 0), '$.key', 0)x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
PRAGMA schema_version = 5;
|
||||
SELECT jsonb_replace(strftime('%s', 0), '$.key', 0)x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº'); /**/ SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
PRAGMA schema_version = 5;
|
||||
SELECT jsonb_replace(strftime('%s', 0), '$.key', 0)x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
PRAGMA schema_version = 5;
|
||||
SELECT jsonb_replace(strftime('%s', 0), '$.key', 0)x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
PRAGMA schema_version = 5;
|
||||
SELECT jsonb_replace(strftime('%s', 0), '$.key', 0)x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
PRAGMA schema_version = 5;
|
||||
SELECT jsonb_replace(strftime('%s', 0), '$.key', 0)x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
PRAGMA schema_version = 5;
|
||||
|
||||
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp1773;
|
||||
RELEASE SAVEPOINT sp1773;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
1
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
-cmd "SELECT 1;"
|
||||
```
|
||||
|
||||
@@ -0,0 +1,613 @@
|
||||
## 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
|
||||
SAVEPOINT sp279;
|
||||
SAVEPOINT sp9047;
|
||||
.echo on
|
||||
SAVEPOINT sp6832;
|
||||
.stats
|
||||
ATTACH DATABASE ':memory:' AS aux65;
|
||||
-- PRAGMA pragma_list;
|
||||
SAVEPOINT sp5608;
|
||||
.check
|
||||
PRAGMA fullsync = ON;
|
||||
PRAGMA mmap_size;
|
||||
PRAGMA synchronous;
|
||||
.connection close
|
||||
CREATE TABLE t1(a INT, b INT);
|
||||
INSERT INTO t1(a,b) VALUES(NULL,null),(null,null),(x'28b8c864227a',null);
|
||||
CREATE UNIQUE INDEX t1b ON t1(abs(b));
|
||||
SELECT quote(a), quote(b), '|' FROM t1 GROUP BY a, abs(b);
|
||||
CREATE TRIGGER IF NOt EXISTS trg_t1_5402 AFTER UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
CREATE TABLE [T1] (
|
||||
A VARCHAR(nullif(-(-(sinh(-(-(abs(-unistr(-(-(NULL))))))))), 'same')),
|
||||
X VARCHAR(cosh(julianday(lower(x'f4fdf1540342803d217b120f')))),
|
||||
PRIMARY KEY (A, X),
|
||||
UNIQUE (X)
|
||||
);
|
||||
CREATE TABLE T2 (
|
||||
A VARCHAR(date(20, 'start of month')),
|
||||
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;
|
||||
ALTER TABLE t1 RENAME TO t1_r4147;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
ANALYZE;
|
||||
SELECT * FROM t1 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
PRAGMA legacy_alter_table = TRUE;
|
||||
ALTER TABLE t1 ADD COLUMN extra_7898 DOUBLE PRECISION COLLATE NOCASE;
|
||||
WITH RECURSIVE r AS (SELECT b FROM t1 WHERE b IS NOT NULL UNION ALL SELECT b FROM r WHERE +b > 1 LIMIT 10) SELECT * FROM r;
|
||||
SELECT MIN(b) FROM t1;
|
||||
PRAGMA vdbe_listing = YES;
|
||||
SELECT * FROM T2 t1 JOIN (SELECT * FROM T2) AS sub ON t1.Y = sub.Y;
|
||||
ROLLBACK TO sp5608;
|
||||
RELEASE sp5608;
|
||||
CREATE TEMPORARY TABLE t0(x, y, z);
|
||||
SELECT -99999999999999999999999999999999999999999999999999;
|
||||
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
|
||||
DROP TABLE t0;
|
||||
ANALYZE;
|
||||
SAVEPOINT sp5608;
|
||||
.check
|
||||
PRAGMA fullsync = ON;
|
||||
PRAGMA mmap_size;
|
||||
PRAGMA synchronous;
|
||||
.connection close
|
||||
CREATE TABLE t1(a INT, b INT);
|
||||
INSERT INTO t1(a,b) VALUES(NULL,null),(null,null),(x'28b8c864227a',null);
|
||||
CREATE UNIQUE INDEX t1b ON t1(abs(b));
|
||||
SELECT quote(a), quote(b), '|' FROM t1 GROUP BY a, abs(b);
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_5402 AFTER UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
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;
|
||||
ALTER TABLE t1 RENAME TO t1_r4147;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
ANALYZE;
|
||||
SELECT * FROM t1 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
PRAGMA legacy_alter_table = TRUE;
|
||||
ALTER TABLE t1 ADD COLUMN extra_7898 DOUBLE PRECISION COLLATE NOCASE;
|
||||
WITH RECURSIVE r AS (SELECT b FROM t1 WHERE b IS NOT NULL UNION ALL SELECT b FROM r WHERE +b > 1 LIMIT 10) SELECT * FROM r;
|
||||
SELECT MIN(b) FROM t1;
|
||||
PRAGMA vdbe_listing = YES;
|
||||
SELECT * FROM T2 t1 JOIN (SELECT * FROM T2) AS sub ON t1.Y = sub.Y;
|
||||
ROLLBACK TO sp5608;
|
||||
RELEASE sp5608;
|
||||
CREATE TEMPORARY TABLE t0(x, y, z);
|
||||
SELECT -99999999999999999999999999999999999999999999999999;
|
||||
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
|
||||
DROP TABLE t0;
|
||||
ANALYZE;
|
||||
SAVEPOINT sp5608;
|
||||
.check
|
||||
PRAGMA fullsync = ON;
|
||||
PRAGMA mmap_size;
|
||||
PRAGMA synchronous;
|
||||
.connection close
|
||||
CREATE TABLE t1(a INT, b INT);
|
||||
INSERT INTO t1(a,b) VALUES(NULL,null),(null,null),(x'28b8c864227a',null);
|
||||
CREATE UNIQUE INDEX t1b ON t1(abs(b));
|
||||
SELECT quote(a), quote(b), '|' FROM t1 GROUP BY a, abs(b);
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_5402 AFTER UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
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;
|
||||
ALTER TABLE t1 RENAME TO t1_r4147;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
ANALYZE;
|
||||
SELECT * FROM t1 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
PRAGMA legacy_alter_table = TRUE;
|
||||
ALTER TABLE t1 ADD COLUMN extra_7898 DOUBLE PRECISION COLLATE NOCASE;
|
||||
WITH RECURSIVE r AS (SELECT b FROM t1 WHERE b IS NOT NULL UNION ALL SELECT b FROM r WHERE b > 1 LIMIT 10) SELECT * FROM r;
|
||||
SELECT MIN(b) FROM t1;
|
||||
PRAGMA vdbe_listing = YES;
|
||||
SELECT * FROM T2 t1 JOIN (SELECT * FROM T2) AS sub ON t1.Y = sub.Y;
|
||||
ROLLBACK TO sp5608;
|
||||
RELEASE sp5608;
|
||||
CREATE TEMPORARY TABLE t0(x, y, z);
|
||||
SELECT -99999999999999999999999999999999999999999999999999;
|
||||
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
|
||||
DROP TABLE t0;
|
||||
ANALYZE;
|
||||
DETACH DATABASE aux65;
|
||||
ANALYZE t0;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_664 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(b) VALUES (NULL); END;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
ANALYZE;
|
||||
CREATE VIEW IF NOT EXISTS v_t0_3180 AS SELECT z FROM t0;
|
||||
INSERT INTO T1 VALUES (1, NULL) ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
|
||||
REINDEX t1;
|
||||
INSERT INTO T1 DEFAULT VALUES;
|
||||
INSERT OR FAIL INTO T1 VALUES (-5, '');
|
||||
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;
|
||||
SELECT SUM(b) FROM t1;
|
||||
WITH a AS (SELECT a FROM t1), b AS (SELECT a FROM a), c AS (SELECT a FROM b) SELECT * FROM c;
|
||||
INSERT INTO T2 SELECT * FROM T2;
|
||||
INSERT INTO T1 VALUES (NULL, 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
|
||||
UPDATE T2 SET Y = json_object('k', Y) WHERE rowid = 1;
|
||||
ALTER TABLE T1 DROP COLUMN A;
|
||||
SELECT * FROM t0 AS a JOIN T2 AS b ON a.rowid = b.rowid;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp6832;
|
||||
RELEASE SAVEPOINT sp6832;
|
||||
SELECT * FROM T2 WHERE Y IN (SELECT Y FROM T2 WHERE 1/0 = 0);SELECT * FROM T2 WHERE Y IN (SELECT Y FROM T2 LIMIT -1);
|
||||
INSERT INTO T1 SELECT * FROM T1;
|
||||
INSERT INTO T2 DEFAULT VALUES;
|
||||
INSERT INTO T1 VALUES (NULL, NULL);
|
||||
ALTER TABLE t1 ADD COLUMN extra_3291 DATETIME DEFAULT '';
|
||||
SAVEPOINT sp6832;
|
||||
.stats
|
||||
ATTACH DATABASE ':memory:' AS aux65;
|
||||
-- PRAGMA pragma_list;
|
||||
SAVEPOINT sp5608;
|
||||
.check
|
||||
PRAGMA fullsync = ON;
|
||||
PRAGMA mmap_size;
|
||||
PRAGMA synchronous;
|
||||
.connection close
|
||||
CREATE TABLE t1(a INT, b INT);
|
||||
INSERT INTO t1(a,b) VALUES(NULL,null),(null,null),(x'28b8c864227a',null);
|
||||
CREATE UNIQUE INDEX t1b ON t1(abs(b));
|
||||
SELECT quote(a), quote(b), '|' FROM t1 GROUP BY a, abs(b);
|
||||
CREATE TRIGGER IF NOt EXISTS trg_t1_5402 AFTER UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
CREATE TABLE [T1] (
|
||||
A VARCHAR(nullif(-(-(sinh(-(-(abs(-9223372036854775807)))))), 'same')),
|
||||
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;
|
||||
ALTER TABLE t1 RENAME TO t1_r4147;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
ANALYZE;
|
||||
SELECT * FROM t1 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
PRAGMA legacy_alter_table = TRUE;
|
||||
ALTER TABLE t1 ADD COLUMN extra_7898 DOUBLE PRECISION COLLATE NOCASE;
|
||||
WITH RECURSIVE r AS (SELECT b FROM t1 WHERE b IS NOT NULL UNION ALL SELECT b FROM r WHERE b > 1 LIMIT 10) SELECT * FROM r;
|
||||
SELECT MIN(b) FROM t1;
|
||||
PRAGMA vdbe_listing = YES;
|
||||
SELECT * FROM T2 t1 JOIN (SELECT * FROM T2) AS sub ON t1.Y = sub.Y;
|
||||
ROLLBACK TO sp5608;
|
||||
RELEASE sp5608;
|
||||
CREATE TEMPORARY TABLE t0(x, y, z);
|
||||
SELECT -99999999999999999999999999999999999999999999999999;
|
||||
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
|
||||
DROP TABLE t0;
|
||||
ANALYZE;
|
||||
SAVEPOINT sp5608;
|
||||
.check
|
||||
PRAGMA fullsync = ON;
|
||||
PRAGMA mmap_size;
|
||||
PRAGMA synchronous;
|
||||
.connection close
|
||||
CREATE TABLE t1(a INT, b INT);
|
||||
INSERT INTO t1(a,b) VALUES(NULL,null),(null,null),(x'28b8c864227a',null);
|
||||
CREATE UNIQUE INDEX t1b ON t1(abs(b));
|
||||
SELECT quote(a), quote(b), '|' FROM t1 GROUP BY a, abs(b);
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_5402 AFTER UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
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;
|
||||
ALTER TABLE t1 RENAME TO t1_r4147;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
ANALYZE;
|
||||
SELECT * FROM t1 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
PRAGMA legacy_alter_table = TRUE;
|
||||
ALTER TABLE t1 ADD COLUMN extra_7898 DOUBLE PRECISION COLLATE NOCASE;
|
||||
WITH RECURSIVE r AS (SELECT b FROM t1 WHERE b IS NOT NULL UNION ALL SELECT b FROM r WHERE b > 1 LIMIT 10) SELECT * FROM r;
|
||||
SELECT MIN(b) FROM t1;
|
||||
PRAGMA vdbe_listing = YES;
|
||||
SELECT * FROM T2 t1 JOIN (SELECT * FROM T2) AS sub ON t1.Y = sub.Y;
|
||||
ROLLBACK TO sp5608;
|
||||
RELEASE sp5608;
|
||||
CREATE TEMPORARY TABLE t0(x, y, z);
|
||||
SELECT -99999999999999999999999999999999999999999999999999;
|
||||
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
|
||||
DROP TABLE t0;
|
||||
ANALYZE;
|
||||
SAVEPOINT sp5608;
|
||||
.check
|
||||
PRAGMA fullsync = ON;
|
||||
PRAGMA mmap_size;
|
||||
PRAGMA synchronous;
|
||||
.connection close
|
||||
CREATE TABLE t1(a INT, b INT);
|
||||
INSERT INTO t1(a,b) VALUES(NULL,null),(null,null),(x'28b8c864227a',null);
|
||||
CREATE UNIQUE INDEX t1b ON t1(abs(b));
|
||||
SELECT quote(a), quote(b), '|' FROM t1 GROUP BY a, abs(b);
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_5402 AFTER UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
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;
|
||||
ALTER TABLE t1 RENAME TO t1_r4147;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
ANALYZE;
|
||||
SELECT * FROM t1 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
PRAGMA legacy_alter_table = TRUE;
|
||||
ALTER TABLE t1 ADD COLUMN extra_7898 DOUBLE PRECISION COLLATE NOCASE;
|
||||
WITH RECURSIVE r AS (SELECT b FROM t1 WHERE b IS NOT NULL UNION ALL SELECT b FROM r WHERE b > 1 LIMIT 10) SELECT * FROM r;
|
||||
SELECT MIN(b) FROM t1;
|
||||
PRAGMA vdbe_listing = YES;
|
||||
SELECT * FROM T2 t1 JOIN (SELECT * FROM T2) AS sub ON t1.Y = sub.Y;
|
||||
ROLLBACK TO sp5608;
|
||||
RELEASE sp5608;
|
||||
CREATE TEMPORARY TABLE t0(x, y, z);
|
||||
SELECT -99999999999999999999999999999999999999999999999999;
|
||||
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
|
||||
DROP TABLE t0;
|
||||
ANALYZE;
|
||||
DETACH DATABASE aux65;
|
||||
ANALYZE t0;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_664 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(b) VALUES (NULL); END;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
ANALYZE;
|
||||
CREATE VIEW IF NOT EXISTS v_t0_3180 AS SELECT z FROM t0;
|
||||
INSERT INTO T1 VALUES (1, NULL) ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
|
||||
REINDEX t1;
|
||||
INSERT INTO T1 DEFAULT VALUES;
|
||||
INSERT OR FAIL INTO T1 VALUES (-5, '');
|
||||
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;
|
||||
SELECT SUM(b) FROM t1;
|
||||
WITH a AS (SELECT a FROM t1), b AS (SELECT a FROM a), c AS (SELECT a FROM b) SELECT * FROM c;
|
||||
INSERT INTO T2 SELECT * FROM T2;
|
||||
INSERT INTO T1 VALUES (NULL, 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
|
||||
UPDATE T2 SET Y = json_object('k', Y) WHERE rowid = 1;
|
||||
ALTER TABLE T1 DROP COLUMN A;
|
||||
SELECT * FROM t0 AS a JOIN T2 AS b ON a.rowid = b.rowid;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp6832;
|
||||
RELEASE SAVEPOINT sp6832;
|
||||
SELECT * FROM T2 WHERE Y IN (SELECT Y FROM T2 WHERE 1/0 = 0);SELECT * FROM T2 WHERE Y IN (SELECT Y FROM T2 LIMIT -1);
|
||||
INSERT INTO T1 SELECT * FROM T1;
|
||||
INSERT INTO T2 DEFAULT VALUES;
|
||||
INSERT INTO T1 VALUES (NULL, NULL);
|
||||
ALTER TABLE t1 ADD COLUMN extra_3291 DATETIME DEFAULT '';
|
||||
SAVEPOINT sp6832;
|
||||
.stats
|
||||
ATTACH DATABASE ':memory:' AS aux65;
|
||||
-- PRAGMA pragma_list;
|
||||
SAVEPOINT sp5608;
|
||||
.check
|
||||
PRAGMA fullsync = ON;
|
||||
PRAGMA mmap_size;
|
||||
PRAGMA synchronous;
|
||||
.connection close
|
||||
CREATE TABLE t1(a INT, b INT);
|
||||
INSERT INTO t1(a,b) VALUES(NULL,null),(null,null),(x'28b8c864227a',null);
|
||||
CREATE UNIQUE INDEX t1b ON t1(abs(b));
|
||||
SELECT quote(a), quote(b), '|' FROM t1 GROUP BY a, abs(b);
|
||||
CREATE TRIGGER IF NOt EXISTS trg_t1_5402 AFTER UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
CREATE TABLE [T1] (
|
||||
A VARCHAR(nullif(-(-(sinh(-(-(abs(-9223372036854775807)))))), 'same')),
|
||||
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;
|
||||
ALTER TABLE t1 RENAME TO t1_r4147;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
ANALYZE;
|
||||
SELECT * FROM t1 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
PRAGMA legacy_alter_table = TRUE;
|
||||
ALTER TABLE t1 ADD COLUMN extra_7898 DOUBLE PRECISION COLLATE NOCASE;
|
||||
WITH RECURSIVE r AS (SELECT b FROM t1 WHERE b IS NOT NULL UNION ALL SELECT b FROM r WHERE b > 1 LIMIT 10) SELECT * FROM r;
|
||||
SELECT MIN(b) FROM t1;
|
||||
PRAGMA vdbe_listing = YES;
|
||||
SELECT * FROM T2 t1 JOIN (SELECT * FROM T2) AS sub ON t1.Y = sub.Y;
|
||||
ROLLBACK TO sp5608;
|
||||
RELEASE sp5608;
|
||||
CREATE TEMPORARY TABLE t0(x, y, z);
|
||||
SELECT -99999999999999999999999999999999999999999999999999;
|
||||
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
|
||||
DROP TABLE t0;
|
||||
ANALYZE;
|
||||
SAVEPOINT sp5608;
|
||||
.check
|
||||
PRAGMA fullsync = ON;
|
||||
PRAGMA mmap_size;
|
||||
PRAGMA synchronous;
|
||||
.connection close
|
||||
CREATE TABLE t1(a INT, b INT);
|
||||
INSERT INTO t1(a,b) VALUES(NULL,null),(null,null),(x'28b8c864227a',null);
|
||||
CREATE UNIQUE INDEX t1b ON t1(abs(b));
|
||||
SELECT quote(a), quote(b), '|' FROM t1 GROUP BY a, abs(b);
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_5402 AFTER UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
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;
|
||||
ALTER TABLE t1 RENAME TO t1_r4147;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
ANALYZE;
|
||||
SELECT * FROM t1 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
PRAGMA legacy_alter_table = TRUE;
|
||||
ALTER TABLE t1 ADD COLUMN extra_7898 DOUBLE PRECISION COLLATE NOCASE;
|
||||
WITH RECURSIVE r AS (SELECT b FROM t1 WHERE b IS NOT NULL UNION ALL SELECT b FROM r WHERE b > 1 LIMIT 10) SELECT * FROM r;
|
||||
SELECT MIN(b) FROM t1;
|
||||
PRAGMA vdbe_listing = YES;
|
||||
SELECT * FROM T2 t1 JOIN (SELECT * FROM T2) AS sub ON t1.Y = sub.Y;
|
||||
ROLLBACK TO sp5608;
|
||||
RELEASE sp5608;
|
||||
CREATE TEMPORARY TABLE t0(x, y, z);
|
||||
SELECT -99999999999999999999999999999999999999999999999999;
|
||||
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
|
||||
DROP TABLE t0;
|
||||
ANALYZE;
|
||||
SAVEPOINT sp5608;
|
||||
.check
|
||||
PRAGMA fullsync = ON;
|
||||
PRAGMA mmap_size;
|
||||
PRAGMA synchronous;
|
||||
.connection close
|
||||
CREATE TABLE t1(a INT, b INT);
|
||||
INSERT INTO t1(a,b) VALUES(NULL,null),(null,null),(x'28b8c864227a',null);
|
||||
CREATE UNIQUE INDEX t1b ON t1(abs(b));
|
||||
SELECT quote(a), quote(b), '|' FROM t1 GROUP BY a, abs(b);
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_5402 AFTER UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
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;
|
||||
ALTER TABLE t1 RENAME TO t1_r4147;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
ANALYZE;
|
||||
SELECT * FROM t1 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
PRAGMA legacy_alter_table = TRUE;
|
||||
ALTER TABLE t1 ADD COLUMN extra_7898 DOUBLE PRECISION COLLATE NOCASE;
|
||||
WITH RECURSIVE r AS (SELECT b FROM t1 WHERE b IS NOT NULL UNION ALL SELECT b FROM r WHERE b > 1 LIMIT 10) SELECT * FROM r;
|
||||
SELECT MIN(b) FROM t1;
|
||||
PRAGMA vdbe_listing = YES;
|
||||
SELECT * FROM T2 t1 JOIN (SELECT * FROM T2) AS sub ON t1.Y = sub.Y;
|
||||
ROLLBACK TO sp5608;
|
||||
RELEASE sp5608;
|
||||
CREATE TEMPORARY TABLE t0(x, y, z);
|
||||
SELECT -99999999999999999999999999999999999999999999999999;
|
||||
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
|
||||
DROP TABLE t0;
|
||||
ANALYZE;
|
||||
DETACH DATABASE aux65;
|
||||
ANALYZE t0;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_664 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(b) VALUES (NULL); END;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
ANALYZE;
|
||||
CREATE VIEW IF NOT EXISTS v_t0_3180 AS SELECT z FROM t0;
|
||||
INSERT INTO T1 VALUES (1, NULL) ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
|
||||
REINDEX t1;
|
||||
INSERT INTO T1 DEFAULT VALUES;
|
||||
INSERT OR FAIL INTO T1 VALUES (-5, '');
|
||||
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;
|
||||
SELECT SUM(b) FROM t1;
|
||||
WITH a AS (SELECT a FROM t1), b AS (SELECT a FROM a), c AS (SELECT a FROM b) SELECT * FROM c;
|
||||
INSERT INTO T2 SELECT * FROM T2;
|
||||
INSERT INTO T1 VALUES (NULL, 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
|
||||
UPDATE T2 SET Y = json_object('k', Y) WHERE rowid = 1;
|
||||
ALTER TABLE T1 DROP COLUMN A;
|
||||
SELECT * FROM t0 AS a JOIN T2 AS b ON a.rowid = b.rowid;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp6832;
|
||||
RELEASE SAVEPOINT sp6832;
|
||||
SELECT * FROM T2 WHERE Y IN (SELECT Y FROM T2 WHERE 1/0 = 0);SELECT * FROM T2 WHERE Y IN (SELECT Y FROM T2 LIMIT -1);
|
||||
INSERT INTO T1 SELECT * FROM T1;
|
||||
INSERT INTO T2 DEFAULT VALUES;
|
||||
INSERT INTO T1 VALUES (NULL, NULL);
|
||||
ALTER TABLE t1 ADD COLUMN extra_3291 DATETIME DEFAULT '';
|
||||
|
||||
ALTER TABLE t0 DROP COLUMN y;
|
||||
ROLLBACK TO sp9047;
|
||||
RELEASE sp9047;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp279;
|
||||
RELEASE SAVEPOINT sp279;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_t0_9813 AS SELECT z FROM t0;
|
||||
ANALYZE T2;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T_6213 AFTER DELETE ON T BEGIN INSERT INTO T(a) VALUES (NULL); END;
|
||||
INSERT INTO t1 VALUES (NULL, NULL);
|
||||
ALTER TABLE t0 ADD COLUMN extra_179 CHARACTER(20) COLLATE NOCASE;
|
||||
ALTER TABLE t0 ADD COLUMN extra_7080 FLOA DEFAULT (random());
|
||||
CREATE INDEX IF NOT EXISTS idx_t0_8326 ON t0((z + 1)) WHERE z IS NOT NULL;
|
||||
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 TEMPORARY VIEW IF NOT EXISTS v_T_7120 AS SELECT a FROM T;
|
||||
SELECT * FROM t0 WHERE y = (SELECT MAX(y) FROM t0 WHERE y = (SELECT MAX(y) FROM t0));
|
||||
DROP TRIGGER IF EXISTS T2;
|
||||
PRAGMA threads;
|
||||
INSERT INTO t0 VALUES ('x', NULL, 1) ON CONFLICT(x) DO UPDATE SET x = excluded.x, y = excluded.y, z = excluded.z;
|
||||
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;
|
||||
CREATE VIEW IF NOT EXISTS v_T1_7206 AS SELECT X FROM T1;
|
||||
INSERT OR FAIL INTO T1 VALUES ('x', 0);
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_7792 BEFORE INSERT ON t1 FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
INSERT OR IGNORE INTO T1 VALUES (NULL, 'x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T_1524 BEFORE UPDATE OF b ON T FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
VACUUM;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
SAVEPOINT sp6832;
|
||||
.stats
|
||||
Memory Used: 62592 (max 62592) 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: 35 (max 39)
|
||||
Successful lookaside attempts: 47
|
||||
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: 0 bytes
|
||||
Bytes received by read(): 10409
|
||||
Bytes sent to write(): 18
|
||||
Read() system calls: 13
|
||||
Write() system calls: 1
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
ATTACH DATABASE ':memory:' AS aux65;
|
||||
-- PRAGMA pragma_list;
|
||||
SAVEPOINT sp5608;
|
||||
.check
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
SAVEPOINT sp6832;
|
||||
.stats
|
||||
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: 51 (max 55)
|
||||
Successful lookaside attempts: 63
|
||||
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: 0 bytes
|
||||
Bytes received by read(): 11185
|
||||
Bytes sent to write(): 25
|
||||
Read() system calls: 14
|
||||
Write() system calls: 2
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
ATTACH DATABASE ':memory:' AS aux65;
|
||||
-- PRAGMA pragma_list;
|
||||
SAVEPOINT sp5608;
|
||||
.check
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
@@ -0,0 +1,116 @@
|
||||
## 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(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;
|
||||
.import
|
||||
CREATE TABLE "T" (
|
||||
a BIGINT,
|
||||
b TEXT,
|
||||
c REAL
|
||||
);
|
||||
INSERT INTO T VALUES (time(trunc(1)),'a',1.25), (2,'b',-3.5), (3,'c',9e999);
|
||||
WITH d AS (SELECT * FROM T) SELECT * FROM d WHERE c > 0;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
PRAGMA recursive_triggers = TRUE;
|
||||
CREATE TABLE T /* PRAGMA vdbe_addoptrace = NO; */ (
|
||||
a CHARINT,
|
||||
b REAL,
|
||||
c REAL
|
||||
);
|
||||
INSERT INTO T VALUES (sqlite_compileoption_get(-1),1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
|
||||
SELECT * FROM T WHERE NOT b < 2.0 ORDER BY b;
|
||||
SELECT COUNT(*) FROM T;
|
||||
WITH cte AS (SELECT a, SUM(a) AS total FROM T GROUP BY a) SELECT * FROM cte ORDER BY total DESC;
|
||||
DROP TRIGGER IF EXISTS T;
|
||||
SELECT * FROM T;
|
||||
INSERT OR ABORT INTO T VALUES ('', -4, '');
|
||||
VACUUM main;
|
||||
PRAGMA module_list;
|
||||
ALTER TABLE T ADD COLUMN extra_2054 INT2 DEFAULT (random());
|
||||
SELECT * FROM T;
|
||||
ALTER TABLE T RENAME TO T_r7253;
|
||||
DROP INDEX IF EXISTS T;
|
||||
SELECT LAG(c) OVER (ORDER BY c RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM T;
|
||||
PRAGMA secure_delete = 'FAST';
|
||||
INSERT OR ABORT INTO T VALUES (NULL, -8, NULL);
|
||||
ALTER TABLE T RENAME TO T_r9317;
|
||||
PRAGMA cache_spill = YES;
|
||||
DELETE FROM T1 WHERE A IS NULL RETURNING *;
|
||||
ALTER TABLE T ADD COLUMN extra_1960 TINYINT;
|
||||
```
|
||||
|
||||
## 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,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
|
||||
BEGIN IMMEDIATE TRANSACTION;
|
||||
ATTACH DATABASE ':memory:' AS aux86;
|
||||
ATTACH DATABASE ':memory:' AS aux45;
|
||||
CREATE TABLE t1(c1);
|
||||
INSERT INTO t1 VALUES(CAST(ceil((1 - 0).7976931348623157e+308) AS DOUB)),(123),(1234),(NULL),('abc');
|
||||
CREATE TABLE t2(c2);
|
||||
CREATE TABLE T (
|
||||
a TEXT, /**/ b TEXT,
|
||||
c REAL
|
||||
);
|
||||
INSERT INTO T VALUES ('a','b',5.0), ('a','c',5.0), ('b','d',-8.25);
|
||||
SELECT a,b,c,
|
||||
RANK() OVER (PARTITION BY a ORDER BY c DESC) AS d FROM T;
|
||||
INSERT INTO t2 VALUES(44),(55),(123);
|
||||
CREATE TABLE t3(c3,c4);
|
||||
INSERT INTO /* abs(-9223372036854775808) */ 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 TOTAL(c1) FROM t1;
|
||||
DETACH DATABASE aux45;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
ALTER TABLE t3 ADD COLUMN extra_3424 NONE NOT NULL DEFAULT 0;
|
||||
DROP TABLE IF EXISTS t3;
|
||||
DETACH DATABASE aux86;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
DELETE FROM t2 WHERE 0;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_T_1288 AS SELECT a FROM T;
|
||||
SELECT * FROM T WHERE a < (SELECT AVG(a) FROM T);
|
||||
SELECT MIN(c1) FROM t1;
|
||||
ANALYZE;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
INSERT OR IGNORE INTO t3 VALUES (4, NULL);
|
||||
INSERT INTO t2 DEFAULT VALUES;
|
||||
ROLLBACK;
|
||||
```
|
||||
|
||||
## 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,79 @@
|
||||
## 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 aux69;
|
||||
ATTACH DATABASE ':memory:' AS aux57;
|
||||
.progress if((concat(NULL) + (CAST(soundex('Robert') AS BLOB) * 1)), 9999, 0, 9999, 0, 9999)
|
||||
ATTACH DATABASE ':memory:' AS aux40;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE T (
|
||||
a TEXT,
|
||||
b TEXT,
|
||||
c REAL
|
||||
);
|
||||
INSERT INTO T VALUES ('a','b',quote(date(if(pi(), NULL, -10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)))), ('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 INDEX IF NOT EXISTS idx_T_6101 ON T(a COLLATE NOCASE) WHERE NOT a IS NOT NULL;
|
||||
END TRANSACTION;
|
||||
INSERT OR FAIL INTO T VALUES (NULL, NULL, 'x');
|
||||
WITH cte AS (SELECT * FROM T) SELECT * FROM cte JOIN T ON cte.b = T.b;
|
||||
DETACH DATABASE aux40;
|
||||
DELETE FROM T WHERE 1 RETURNING *;
|
||||
VACUUM;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL);
|
||||
CREATE INDEX IF NOT EXISTS idx_T_6375 ON T(b);
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_T_413 ON T((a + 1)) WHERE a IS NOT NULL;
|
||||
ANALYZE T;
|
||||
PRAGMA parser_trace = NO;
|
||||
REINDEX T;
|
||||
SELECT * FROM T;
|
||||
DETACH DATABASE aux57;
|
||||
SELECT TOTAL(b) FROM T;
|
||||
DETACH DATABASE aux69;
|
||||
DROP TRIGGER IF EXISTS T;
|
||||
WITH a AS MATERIALIZED (SELECT * FROM T), b AS NOT MATERIALIZED (SELECT * FROM a) SELECT * FROM b;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
<TR><TD></TD>
|
||||
<TD></TD>
|
||||
<TD>x</TD>
|
||||
</TR>
|
||||
<TR><TD>1</TD>
|
||||
</TR>
|
||||
<TR><TD></TD>
|
||||
<TD></TD>
|
||||
<TD></TD>
|
||||
</TR>
|
||||
<TR><TD>0.0</TD>
|
||||
</TR>
|
||||
<TR><TD></TD>
|
||||
<TD></TD>
|
||||
<TD></TD>
|
||||
</TR>
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
-html
|
||||
```
|
||||
|
||||
@@ -0,0 +1,723 @@
|
||||
## 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 aux79;
|
||||
ATTACH DATABASE ':memory:' AS aux15;
|
||||
.print https://yewtu.be/watch?v=dQw4w9WgXcQ
|
||||
PRAGMA vdbe_listing = 2147483648;
|
||||
PRAGMA short_column_names = YES;
|
||||
SAVEPOINT sp5958;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (concat(1, 1, 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
BEGIN;
|
||||
create TABLE main.abc(a, b, c, PRIMARY KEY(a, b));
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c REAL,
|
||||
d REAL
|
||||
);
|
||||
INSERT INTO T VALUES (json_valid(1, 4),'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C DOUBLE PRECISION
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('b', 'q', -0.000000001);
|
||||
INSERT INTO T VALUES ('c', 'r', 0.0);
|
||||
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
|
||||
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('f', 't', 750.25);
|
||||
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) AS F FROM T GROUP BY B;
|
||||
SELECT b FROM T WHERE NOT NOT (ABS(c) > 5 OR ABS(d) > 5) ;
|
||||
INSERT INTO abc VALUES(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;
|
||||
ALTER TABLE T RENAME TO T_r2547;
|
||||
SELECT b, (SELECT AVG(b) FROM abc) AS avg_val FROM abc;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL, NULL);
|
||||
SELECT AVG(B) FROM T;
|
||||
SELECT * FROM t1 WHERE c < ANY (SELECT c FROM t1);
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_7090 AFTER INSERT ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp5958;
|
||||
RELEASE SAVEPOINT sp5958;
|
||||
UPDATE abc SET a = NULL WHERE a IS NOT NULL RETURNING *;
|
||||
DROP VIEW IF EXISTS abc;
|
||||
DELETE FROM t1 WHERE rowid = 76;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
UPDATE T SET A = NULL WHERE 1;
|
||||
ALTER TABLE T RENAME TO T_r3110;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
ALTER TABLE abc DROP COLUMN a;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_1503 BEFORE UPDATE OF a ON abc FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_abc_3299 ON abc(lower(b)) WHERE b IS NOT NULL;
|
||||
WITH cte AS (SELECT "123" AS x) SELECT x + 0 FROM cte;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_3167 BEFORE UPDATE OF c ON abc FOR EACH ROW BEGIN INSERT INTO abc(c) VALUES (NULL); END;
|
||||
SELECT STRING_AGG(C) FROM T;
|
||||
INSERT OR IGNORE INTO abc VALUES (NULL, 9, 'x');
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT * 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 T;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR IGNORE INTO t1 VALUES (3, '', 0, -10);
|
||||
CREATE VIEW IF NOT EXISTS v_T_8516 AS SELECT C FROM T;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_t1_5754 AS SELECT b FROM t1;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T WHERE B IN (SELECT B FROM T LIMIT 0);
|
||||
DETACH DATABASE aux15;
|
||||
WITH cte AS (SELECT * FROM abc LIMIT 1) DELETE FROM abc WHERE a IN (SELECT a FROM cte) AND 1=0;
|
||||
WITH RECURSIVE vals(x) AS (SELECT C FROM T WHERE C IS NOT NULL UNION ALL SELECT C FROM T WHERE C IS NOT NULL LIMIT 10) SELECT * FROM vals;
|
||||
ALTER TABLE t1 RENAME COLUMN c TO c_r3776;
|
||||
DETACH DATABASE aux79;
|
||||
SELECT * FROM T t1 RIGHT JOIN T t2 ON t1.A = (SELECT A FROM T WHERE A = t1.A);
|
||||
INSERT OR ABORT INTO T VALUES ('x', 0, NULL);
|
||||
SELECT GROUP_CONCAT(c, '.') OVER (PARTITION BY c ORDER BY c ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
|
||||
ATTACH DATABASE ':memory:' AS aux79;
|
||||
ATTACH DATABASE ':memory:' AS aux15;
|
||||
.print https://yewtu.be/watch?v=dQw4w9WgXcQ
|
||||
PRAGMA vdbe_listing = 2147483648;
|
||||
PRAGMA short_column_names = YES;
|
||||
SAVEPOINT sp5958;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (concat(1, 1, 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
BEGIN;
|
||||
create TABLE main.abc(a, b, c, PRIMARY KEY(a, b));
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c REAL,
|
||||
d REAL
|
||||
);
|
||||
INSERT INTO T VALUES (json_valid(1, 4),'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C DOUBLE PRECISION
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('b', 'q', -0.000000001);
|
||||
INSERT INTO T VALUES ('c', 'r', 0.0);
|
||||
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
|
||||
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('f', 't', 750.25);
|
||||
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) AS F FROM T GROUP BY B;
|
||||
SELECT b FROM T WHERE NOT NOT (ABS(c) > 5 OR ABS(d) > 5) ;
|
||||
INSERT INTO abc VALUES(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;
|
||||
ALTER TABLE T RENAME TO T_r2547;
|
||||
SELECT b, (SELECT AVG(b) FROM abc) AS avg_val FROM abc;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL, NULL);
|
||||
SELECT AVG(B) FROM T;
|
||||
SELECT * FROM t1 WHERE c < ANY (SELECT c FROM t1);
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_7090 AFTER INSERT ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp5958;
|
||||
RELEASE SAVEPOINT sp5958;
|
||||
UPDATE abc SET a = NULL WHERE a IS NOT NULL RETURNING *;
|
||||
DROP VIEW IF EXISTS abc;
|
||||
DELETE FROM t1 WHERE rowid = 76;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
UPDATE T SET A = NULL WHERE 1;
|
||||
ALTER TABLE T RENAME TO T_r3110;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
ALTER TABLE abc DROP COLUMN a;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_1503 BEFORE UPDATE OF a ON abc FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_abc_3299 ON abc(lower(b)) WHERE b IS NOT NULL;
|
||||
WITH cte AS (SELECT "123" AS x) SELECT x + 0 FROM cte;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_3167 BEFORE UPDATE OF c ON abc FOR EACH ROW BEGIN INSERT INTO abc(c) VALUES (NULL); END;
|
||||
SELECT STRING_AGG(C) FROM T;
|
||||
INSERT OR IGNORE INTO abc VALUES (NULL, 9, 'x');
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT * 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 T;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR IGNORE INTO t1 VALUES (3, '', 0, -10);
|
||||
CREATE VIEW IF NOT EXISTS v_T_8516 AS SELECT C FROM T;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_t1_5754 AS SELECT b FROM t1;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T WHERE B IN (SELECT B FROM T LIMIT 0);
|
||||
DETACH DATABASE aux15;
|
||||
WITH cte AS (SELECT * FROM abc LIMIT 1) DELETE FROM abc WHERE a IN (SELECT a FROM cte) AND 1=0;
|
||||
WITH RECURSIVE vals(x) AS (SELECT C FROM T WHERE C IS NOT NULL UNION ALL SELECT C FROM T WHERE C IS NOT NULL LIMIT 10) SELECT * FROM vals;
|
||||
ALTER TABLE t1 RENAME COLUMN c TO c_r3776;
|
||||
DETACH DATABASE aux79;
|
||||
SELECT * FROM T t1 RIGHT JOIN T t2 ON t1.A = (SELECT A FROM T WHERE A = t1.A);
|
||||
INSERT OR ABORT INTO T VALUES ('x', 0, NULL);
|
||||
SELECT GROUP_CONCAT(c, '.') OVER (PARTITION BY c ORDER BY c ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
|
||||
ATTACH DATABASE ':memory:' AS aux79;
|
||||
ATTACH DATABASE ':memory:' AS aux15;
|
||||
.print https://yewtu.be/watch?v=dQw4w9WgXcQ
|
||||
PRAGMA vdbe_listing = 2147483648;
|
||||
PRAGMA short_column_names = YES;
|
||||
SAVEPOINT sp5958;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (concat(1, 1, 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
BEGIN;
|
||||
create TABLE main.abc(a, b, c, PRIMARY KEY(a, b));
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c REAL,
|
||||
d REAL
|
||||
);
|
||||
INSERT INTO T VALUES (json_valid(1, 4),'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C DOUBLE PRECISION
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('b', 'q', -0.000000001);
|
||||
INSERT INTO T VALUES ('c', 'r', 0.0);
|
||||
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
|
||||
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('f', 't', 750.25);
|
||||
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) AS F FROM T GROUP BY B;
|
||||
SELECT b FROM T WHERE NOT NOT (ABS(c) > 5 OR ABS(d) > 5) ;
|
||||
INSERT INTO abc VALUES(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;
|
||||
ALTER TABLE T RENAME TO T_r2547;
|
||||
SELECT b, (SELECT AVG(b) FROM abc) AS avg_val FROM abc;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL, NULL);
|
||||
SELECT AVG(B) FROM T;
|
||||
SELECT * FROM t1 WHERE c < ANY (SELECT c FROM t1);
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_7090 AFTER INSERT ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp5958;
|
||||
RELEASE SAVEPOINT sp5958;
|
||||
UPDATE abc SET a = NULL WHERE a IS NOT NULL RETURNING *;
|
||||
DROP VIEW IF EXISTS abc;
|
||||
DELETE FROM t1 WHERE rowid = 76;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
UPDATE T SET A = NULL WHERE 1;
|
||||
ALTER TABLE T RENAME TO T_r3110;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
ALTER TABLE abc DROP COLUMN a;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_1503 BEFORE UPDATE OF a ON abc FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_abc_3299 ON abc(lower(b)) WHERE b IS NOT NULL;
|
||||
WITH cte AS (SELECT "123" AS x) SELECT x + 0 FROM cte;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_3167 BEFORE UPDATE OF c ON abc FOR EACH ROW BEGIN INSERT INTO abc(c) VALUES (NULL); END;
|
||||
SELECT STRING_AGG(C) FROM T;
|
||||
INSERT OR IGNORE INTO abc VALUES (NULL, 9, 'x');
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT * 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 T;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR IGNORE INTO t1 VALUES (3, '', 0, -10);
|
||||
CREATE VIEW IF NOT EXISTS v_T_8516 AS SELECT C FROM T;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_t1_5754 AS SELECT b FROM t1;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T WHERE B IN (SELECT B FROM T LIMIT 0);
|
||||
DETACH DATABASE aux15;
|
||||
WITH cte AS (SELECT * FROM abc LIMIT 1) DELETE FROM abc WHERE a IN (SELECT a FROM cte) AND 1=0;
|
||||
WITH RECURSIVE vals(x) AS (SELECT C FROM T WHERE C IS NOT NULL UNION ALL SELECT C FROM T WHERE C IS NOT NULL LIMIT 10) SELECT * FROM vals;
|
||||
ALTER TABLE t1 RENAME COLUMN c TO c_r3776;
|
||||
DETACH DATABASE aux79;
|
||||
SELECT * FROM T t1 RIGHT JOIN T t2 ON t1.A = (SELECT A FROM T WHERE A = t1.A);
|
||||
INSERT OR ABORT INTO T VALUES ('x', 0, NULL);
|
||||
SELECT GROUP_CONCAT(c, '.') OVER (PARTITION BY c ORDER BY c ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
|
||||
ATTACH DATABASE ':memory:' AS aux79;
|
||||
ATTACH DATABASE ':memory:' AS aux15;
|
||||
.print https://yewtu.be/watch?v=dQw4w9WgXcQ
|
||||
PRAGMA vdbe_listing = 2147483648;
|
||||
PRAGMA short_column_names = YES;
|
||||
SAVEPOINT sp5958;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (concat(1, 1, 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
BEGIN;
|
||||
create TABLE main.abc(a, b, c, PRIMARY KEY(a, b));
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c REAL,
|
||||
d REAL
|
||||
);
|
||||
INSERT INTO T VALUES (json_valid(1, 4),'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C DOUBLE PRECISION
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('b', 'q', -0.000000001);
|
||||
INSERT INTO T VALUES ('c', 'r', 0.0);
|
||||
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
|
||||
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('f', 't', 750.25);
|
||||
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) AS F FROM T GROUP BY B;
|
||||
SELECT b FROM T WHERE NOT NOT (ABS(c) > 5 OR ABS(d) > 5) ;
|
||||
INSERT INTO abc VALUES(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;
|
||||
ALTER TABLE T RENAME TO T_r2547;
|
||||
SELECT b, (SELECT AVG(b) FROM abc) AS avg_val FROM abc;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL, NULL);
|
||||
SELECT AVG(B) FROM T;
|
||||
SELECT * FROM t1 WHERE c < ANY (SELECT c FROM t1);
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_7090 AFTER INSERT ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp5958;
|
||||
RELEASE SAVEPOINT sp5958;
|
||||
UPDATE abc SET a = NULL WHERE a IS NOT NULL RETURNING *;
|
||||
DROP VIEW IF EXISTS abc;
|
||||
DELETE FROM t1 WHERE rowid = 76;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
UPDATE T SET A = NULL WHERE 1;
|
||||
ALTER TABLE T RENAME TO T_r3110;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
ALTER TABLE abc DROP COLUMN a;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_1503 BEFORE UPDATE OF a ON abc FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_abc_3299 ON abc(lower(b)) WHERE b IS NOT NULL;
|
||||
WITH cte AS (SELECT "123" AS x) SELECT x + 0 FROM cte;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_3167 BEFORE UPDATE OF c ON abc FOR EACH ROW BEGIN INSERT INTO abc(c) VALUES (NULL); END;
|
||||
SELECT STRING_AGG(C) FROM T;
|
||||
INSERT OR IGNORE INTO abc VALUES (NULL, 9, 'x');
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT * 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 T;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR IGNORE INTO t1 VALUES (3, '', 0, -10);
|
||||
CREATE VIEW IF NOT EXISTS v_T_8516 AS SELECT C FROM T;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_t1_5754 AS SELECT b FROM t1;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T WHERE B IN (SELECT B FROM T LIMIT 0);
|
||||
DETACH DATABASE aux15;
|
||||
WITH cte AS (SELECT * FROM abc LIMIT 1) DELETE FROM abc WHERE a IN (SELECT a FROM cte) AND 1=0;
|
||||
WITH RECURSIVE vals(x) AS (SELECT C FROM T WHERE C IS NOT NULL UNION ALL SELECT C FROM T WHERE C IS NOT NULL LIMIT 10) SELECT * FROM vals;
|
||||
ALTER TABLE t1 RENAME COLUMN c TO c_r3776;
|
||||
DETACH DATABASE aux79;
|
||||
SELECT * FROM T t1 RIGHT JOIN T t2 ON t1.A = (SELECT A FROM T WHERE A = t1.A);
|
||||
INSERT OR ABORT INTO T VALUES ('x', 0, NULL);
|
||||
SELECT GROUP_CONCAT(c, '.') OVER (PARTITION BY c ORDER BY c ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
|
||||
ATTACH DATABASE ':memory:' AS aux79;
|
||||
ATTACH DATABASE ':memory:' AS aux15;
|
||||
.print https://yewtu.be/watch?v=dQw4w9WgXcQ
|
||||
PRAGMA vdbe_listing = 2147483648;
|
||||
PRAGMA short_column_names = YES;
|
||||
SAVEPOINT sp5958;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (concat(1, 1, 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
BEGIN;
|
||||
create TABLE main.abc(a, b, c, PRIMARY KEY(a, b));
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c REAL,
|
||||
d REAL
|
||||
);
|
||||
INSERT INTO T VALUES (json_valid(1, 4),'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C DOUBLE PRECISION
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('b', 'q', -0.000000001);
|
||||
INSERT INTO T VALUES ('c', 'r', 0.0);
|
||||
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
|
||||
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('f', 't', 750.25);
|
||||
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) AS F FROM T GROUP BY B;
|
||||
SELECT b FROM T WHERE NOT NOT (ABS(c) > 5 OR ABS(d) > 5) ;
|
||||
INSERT INTO abc VALUES(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;
|
||||
ALTER TABLE T RENAME TO T_r2547;
|
||||
SELECT b, (SELECT AVG(b) FROM abc) AS avg_val FROM abc;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL, NULL);
|
||||
SELECT AVG(B) FROM T;
|
||||
SELECT * FROM t1 WHERE c < ANY (SELECT c FROM t1);
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_7090 AFTER INSERT ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp5958;
|
||||
RELEASE SAVEPOINT sp5958;
|
||||
UPDATE abc SET a = NULL WHERE a IS NOT NULL RETURNING *;
|
||||
DROP VIEW IF EXISTS abc;
|
||||
DELETE FROM t1 WHERE rowid = 76;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
UPDATE T SET A = NULL WHERE 1;
|
||||
ALTER TABLE T RENAME TO T_r3110;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
ALTER TABLE abc DROP COLUMN a;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_1503 BEFORE UPDATE OF a ON abc FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_abc_3299 ON abc(lower(b)) WHERE b IS NOT NULL;
|
||||
WITH cte AS (SELECT "123" AS x) SELECT x + 0 FROM cte;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_3167 BEFORE UPDATE OF c ON abc FOR EACH ROW BEGIN INSERT INTO abc(c) VALUES (NULL); END;
|
||||
SELECT STRING_AGG(C) FROM T;
|
||||
INSERT OR IGNORE INTO abc VALUES (NULL, 9, 'x');
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT * 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 T;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR IGNORE INTO t1 VALUES (3, '', 0, -10);
|
||||
CREATE VIEW IF NOT EXISTS v_T_8516 AS SELECT C FROM T;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_t1_5754 AS SELECT b FROM t1;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T WHERE B IN (SELECT B FROM T LIMIT 0);
|
||||
DETACH DATABASE aux15;
|
||||
WITH cte AS (SELECT * FROM abc LIMIT 1) DELETE FROM abc WHERE a IN (SELECT a FROM cte) AND 1=0;
|
||||
WITH RECURSIVE vals(x) AS (SELECT C FROM T WHERE C IS NOT NULL UNION ALL SELECT C FROM T WHERE C IS NOT NULL LIMIT 10) SELECT * FROM vals;
|
||||
ALTER TABLE t1 RENAME COLUMN c TO c_r3776;
|
||||
DETACH DATABASE aux79;
|
||||
SELECT * FROM T t1 RIGHT JOIN T t2 ON t1.A = (SELECT A FROM T WHERE A = t1.A);
|
||||
INSERT OR ABORT INTO T VALUES ('x', 0, NULL);
|
||||
SELECT GROUP_CONCAT(c, '.') OVER (PARTITION BY c ORDER BY c ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
|
||||
ATTACH DATABASE ':memory:' AS aux79;
|
||||
ATTACH DATABASE ':memory:' AS aux15;
|
||||
.print https://yewtu.be/watch?v=dQw4w9WgXcQ
|
||||
PRAGMA vdbe_listing = 2147483648;
|
||||
PRAGMA short_column_names = YES;
|
||||
SAVEPOINT sp5958;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (concat(1, 1, 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
BEGIN;
|
||||
create TABLE main.abc(a, b, c, PRIMARY KEY(a, b));
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c REAL,
|
||||
d REAL
|
||||
);
|
||||
INSERT INTO T VALUES (json_valid(1, 4),'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C DOUBLE PRECISION
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('b', 'q', -0.000000001);
|
||||
INSERT INTO T VALUES ('c', 'r', 0.0);
|
||||
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
|
||||
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('f', 't', 750.25);
|
||||
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) AS F FROM T GROUP BY B;
|
||||
SELECT b FROM T WHERE NOT NOT (ABS(c) > 5 OR ABS(d) > 5) ;
|
||||
INSERT INTO abc VALUES(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;
|
||||
ALTER TABLE T RENAME TO T_r2547;
|
||||
SELECT b, (SELECT AVG(b) FROM abc) AS avg_val FROM abc;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL, NULL);
|
||||
SELECT AVG(B) FROM T;
|
||||
SELECT * FROM t1 WHERE c < ANY (SELECT c FROM t1);
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_7090 AFTER INSERT ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp5958;
|
||||
RELEASE SAVEPOINT sp5958;
|
||||
UPDATE abc SET a = NULL WHERE a IS NOT NULL RETURNING *;
|
||||
DROP VIEW IF EXISTS abc;
|
||||
DELETE FROM t1 WHERE rowid = 76;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
UPDATE T SET A = NULL WHERE 1;
|
||||
ALTER TABLE T RENAME TO T_r3110;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
ALTER TABLE abc DROP COLUMN a;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_1503 BEFORE UPDATE OF a ON abc FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_abc_3299 ON abc(lower(b)) WHERE b IS NOT NULL;
|
||||
WITH cte AS (SELECT "123" AS x) SELECT x + 0 FROM cte;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_3167 BEFORE UPDATE OF c ON abc FOR EACH ROW BEGIN INSERT INTO abc(c) VALUES (NULL); END;
|
||||
SELECT STRING_AGG(C) FROM T;
|
||||
INSERT OR IGNORE INTO abc VALUES (NULL, 9, 'x');
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT * 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 T;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR IGNORE INTO t1 VALUES (3, '', 0, -10);
|
||||
CREATE VIEW IF NOT EXISTS v_T_8516 AS SELECT C FROM T;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_t1_5754 AS SELECT b FROM t1;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T WHERE B IN (SELECT B FROM T LIMIT 0);
|
||||
DETACH DATABASE aux15;
|
||||
WITH cte AS (SELECT * FROM abc LIMIT 1) DELETE FROM abc WHERE a IN (SELECT a FROM cte) AND 1=0;
|
||||
WITH RECURSIVE vals(x) AS (SELECT C FROM T WHERE C IS NOT NULL UNION ALL SELECT C FROM T WHERE C IS NOT NULL LIMIT 10) SELECT * FROM vals;
|
||||
ALTER TABLE t1 RENAME COLUMN c TO c_r3776;
|
||||
DETACH DATABASE aux79;
|
||||
SELECT * FROM T t1 RIGHT JOIN T t2 ON t1.A = (SELECT A FROM T WHERE A = t1.A);
|
||||
INSERT OR ABORT INTO T VALUES ('x', 0, NULL);
|
||||
SELECT GROUP_CONCAT(c, '.') OVER (PARTITION BY c ORDER BY c ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
|
||||
ATTACH DATABASE ':memory:' AS aux79;
|
||||
ATTACH DATABASE ':memory:' AS aux15;
|
||||
.print https://yewtu.be/watch?v=dQw4w9WgXcQ
|
||||
PRAGMA vdbe_listing = 2147483648;
|
||||
PRAGMA short_column_names = YES;
|
||||
SAVEPOINT sp5958;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (concat(1, 1, 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
BEGIN;
|
||||
create TABLE main.abc(a, b, c, PRIMARY KEY(a, b));
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c REAL,
|
||||
d REAL
|
||||
);
|
||||
INSERT INTO T VALUES (json_valid(1, 4),'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C DOUBLE PRECISION
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('b', 'q', -0.000000001);
|
||||
INSERT INTO T VALUES ('c', 'r', 0.0);
|
||||
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
|
||||
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('f', 't', 750.25);
|
||||
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) AS F FROM T GROUP BY B;
|
||||
SELECT b FROM T WHERE NOT NOT (ABS(c) > 5 OR ABS(d) > 5) ;
|
||||
INSERT INTO abc VALUES(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;
|
||||
ALTER TABLE T RENAME TO T_r2547;
|
||||
SELECT b, (SELECT AVG(b) FROM abc) AS avg_val FROM abc;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL, NULL);
|
||||
SELECT AVG(B) FROM T;
|
||||
SELECT * FROM t1 WHERE c < ANY (SELECT c FROM t1);
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_7090 AFTER INSERT ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp5958;
|
||||
RELEASE SAVEPOINT sp5958;
|
||||
UPDATE abc SET a = NULL WHERE a IS NOT NULL RETURNING *;
|
||||
DROP VIEW IF EXISTS abc;
|
||||
DELETE FROM t1 WHERE rowid = 76;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
UPDATE T SET A = NULL WHERE 1;
|
||||
ALTER TABLE T RENAME TO T_r3110;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
ALTER TABLE abc DROP COLUMN a;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_1503 BEFORE UPDATE OF a ON abc FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
SELECT COUNT(*) FILTER (WHERE d IS NOT NULL), SUM(rowid) FILTER (WHERE d > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(d) FILTER (WHERE d > 0 AND d < 100), COUNT(*) FILTER (WHERE typeof(d) = "text") FROM t1;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_abc_3299 ON abc(lower(b)) WHERE b IS NOT NULL;
|
||||
WITH cte AS (SELECT "123" AS x) SELECT x + 0 FROM cte;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_abc_3167 BEFORE UPDATE OF c ON abc FOR EACH ROW BEGIN INSERT INTO abc(c) VALUES (NULL); END;
|
||||
SELECT STRING_AGG(C) FROM T;
|
||||
INSERT OR IGNORE INTO abc VALUES (NULL, 9, 'x');
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT * 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 T;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR IGNORE INTO t1 VALUES (3, '', 0, -10);
|
||||
CREATE VIEW IF NOT EXISTS v_T_8516 AS SELECT C FROM T;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_t1_5754 AS SELECT b FROM t1;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T WHERE B IN (SELECT B FROM T LIMIT 0);
|
||||
DETACH DATABASE aux15;
|
||||
WITH cte AS (SELECT * FROM abc LIMIT 1) DELETE FROM abc WHERE a IN (SELECT a FROM cte) AND 1=0;
|
||||
WITH RECURSIVE vals(x) AS (SELECT C FROM T WHERE C IS NOT NULL UNION ALL SELECT C FROM T WHERE C IS NOT NULL LIMIT 10) SELECT * FROM vals;
|
||||
ALTER TABLE t1 RENAME COLUMN c TO c_r3776;
|
||||
DETACH DATABASE aux79;
|
||||
SELECT * FROM T t1 RIGHT JOIN T t2 ON t1.A = (SELECT A FROM T WHERE A = t1.A);
|
||||
INSERT OR ABORT INTO T VALUES ('x', 0, NULL);
|
||||
SELECT GROUP_CONCAT(c, '.') OVER (PARTITION BY c ORDER BY c ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
|
||||
|
||||
SELECT * FROM T t1 JOIN (SELECT * FROM T) AS sub ON t1.B = sub.B;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
PRAGMA vdbe_trace = OFF;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
https://yewtu.be/watch?v=dQw4w9WgXcQ
|
||||
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,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
|
||||
.stats
|
||||
ATTACH DATABASE ':memory:' AS aux65;
|
||||
-- PRAGMA pragma_list;
|
||||
|
||||
SAVEPOINT sp5608;
|
||||
.check
|
||||
PRAGMA fullsync = ON;
|
||||
PRAGMA mmap_size;
|
||||
PRAGMA synchronous;
|
||||
.connection close
|
||||
CREATE TABLE t1(a INT, b INT);
|
||||
INSERT INTO t1(a,b) VALUES(NULL,null),(null,null),(x'28b8c864227a',null);
|
||||
CREATE UNIQUE INDEX t1b ON t1(abs(b));
|
||||
SELECT quote(a), quote(b), '|' FROM t1 GROUP BY a, abs(b);
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_5402 AFTER UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
CREATE TABLE [T1] (
|
||||
A VARCHAR(nullif(-(-(sinh(-(-(20))))), 'same')),
|
||||
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;
|
||||
ALTER TABLE t1 RENAME TO t1_r4147;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
ANALYZE;
|
||||
SELECT * FROM t1 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
PRAGMA legacy_alter_table = TRUE;
|
||||
ALTER TABLE t1 ADD COLUMN extra_7898 DOUBLE PRECISION COLLATE NOCASE;
|
||||
WITH RECURSIVE r AS (SELECT b FROM t1 WHERE b IS NOT NULL UNION ALL SELECT b FROM r WHERE b > 1 LIMIT 10) SELECT * FROM r;
|
||||
SELECT MIN(b) FROM t1;
|
||||
PRAGMA vdbe_listing = YES;
|
||||
SELECT * FROM T2 t1 JOIN (SELECT * FROM T2) AS sub ON t1.Y = sub.Y;
|
||||
ROLLBACK TO sp5608;
|
||||
RELEASE sp5608;
|
||||
CREATE TEMPORARY TABLE t0(x, y, z);
|
||||
SELECT -99999999999999999999999999999999999999999999999999;
|
||||
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
|
||||
DROP TABLE t0;
|
||||
ANALYZE;
|
||||
SAVEPOINT sp5608;
|
||||
.check
|
||||
PRAGMA fullsync = ON;
|
||||
PRAGMA mmap_size;
|
||||
PRAGMA synchronous;
|
||||
.connection close
|
||||
CREATE TABLE t1(a INT, b INT);
|
||||
INSERT INTO t1(a,b) VALUES(NULL,null),(null,null),(x'28b8c864227a',null);
|
||||
CREATE UNIQUE INDEX t1b ON t1(abs(b));
|
||||
SELECT quote(a), quote(b), '|' FROM t1 GROUP BY a, abs(b);
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_5402 AFTER UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
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;
|
||||
ALTER TABLE t1 RENAME TO t1_r4147;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
ANALYZE;
|
||||
SELECT * FROM t1 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
PRAGMA legacy_alter_table = TRUE;
|
||||
ALTER TABLE t1 ADD COLUMN extra_7898 DOUBLE PRECISION COLLATE NOCASE;
|
||||
WITH RECURSIVE r AS (SELECT b FROM t1 WHERE b IS NOT NULL UNION ALL SELECT b FROM r WHERE b > 1 LIMIT 10) SELECT * FROM r;
|
||||
SELECT MIN(b) FROM t1;
|
||||
PRAGMA vdbe_listing = YES;
|
||||
SELECT * FROM T2 t1 JOIN (SELECT * FROM T2) AS sub ON t1.Y = sub.Y;
|
||||
ROLLBACK TO sp5608;
|
||||
RELEASE sp5608;
|
||||
CREATE TEMPORARY TABLE t0(x, y, z);
|
||||
SELECT -99999999999999999999999999999999999999999999999999;
|
||||
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
|
||||
DROP TABLE t0;
|
||||
ANALYZE;
|
||||
SAVEPOINT sp5608;
|
||||
.check
|
||||
PRAGMA fullsync = ON;
|
||||
PRAGMA mmap_size;
|
||||
PRAGMA synchronous;
|
||||
.connection close
|
||||
CREATE TABLE t1(a INT, b INT);
|
||||
INSERT INTO t1(a,b) VALUES(NULL,null),(null,null),(x'28b8c864227a',null);
|
||||
CREATE UNIQUE INDEX t1b ON t1(abs(b));
|
||||
SELECT quote(a), quote(b), '|' FROM t1 GROUP BY a, abs(b);
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_5402 AFTER UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
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;
|
||||
ALTER TABLE t1 RENAME TO t1_r4147;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
ANALYZE;
|
||||
SELECT * FROM t1 AS a INNER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
PRAGMA legacy_alter_table = TRUE;
|
||||
ALTER TABLE t1 ADD COLUMN extra_7898 DOUBLE PRECISION COLLATE NOCASE;
|
||||
WITH RECURSIVE r AS (SELECT b FROM t1 WHERE b IS NOT NULL UNION ALL SELECT b FROM r WHERE b > 1 LIMIT 10) SELECT * FROM r;
|
||||
SELECT MIN(b) FROM t1;
|
||||
PRAGMA vdbe_listing = YES;
|
||||
SELECT * FROM T2 t1 JOIN (SELECT * FROM T2) AS sub ON t1.Y = sub.Y;
|
||||
ROLLBACK TO sp5608;
|
||||
RELEASE sp5608;
|
||||
CREATE TEMPORARY TABLE t0(x, y, z);
|
||||
SELECT -99999999999999999999999999999999999999999999999999;
|
||||
SELECT * FROM sqlite_temp_master WHERE sql GLOB '000[]***';
|
||||
DROP TABLE t0;
|
||||
ANALYZE;
|
||||
|
||||
DETACH DATABASE aux65;
|
||||
ANALYZE t0;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_664 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(b) VALUES (NULL); END;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
ANALYZE;
|
||||
CREATE VIEW IF NOT EXISTS v_t0_3180 AS SELECT z FROM t0;
|
||||
INSERT INTO T1 VALUES (1, NULL) ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
|
||||
REINDEX t1;
|
||||
INSERT INTO T1 DEFAULT VALUES;
|
||||
INSERT OR FAIL INTO T1 VALUES (-5, '');
|
||||
SELECT SUM(b) FROM t1;
|
||||
WITH a AS (SELECT a FROM t1), b AS (SELECT a FROM a), c AS (SELECT a FROM b) SELECT * FROM c;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
Memory Used: 0 (max 64) bytes
|
||||
Number of Outstanding Allocations: 0 (max 2)
|
||||
Number of Pcache Overflow Bytes: 0 (max 0) bytes
|
||||
Largest Allocation: 40 bytes
|
||||
Largest Pcache Allocation: 0 bytes
|
||||
Bytes received by read(): 10409
|
||||
Bytes sent to write(): 0
|
||||
Read() system calls: 13
|
||||
Write() system calls: 0
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
Memory Used: 0 (max 56) bytes
|
||||
Number of Outstanding Allocations: 0 (max 2)
|
||||
Number of Pcache Overflow Bytes: 0 (max 0) bytes
|
||||
Largest Allocation: 40 bytes
|
||||
Largest Pcache Allocation: 0 bytes
|
||||
Bytes received by read(): 11185
|
||||
Bytes sent to write(): 0
|
||||
Read() system calls: 14
|
||||
Write() system calls: 0
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,297 @@
|
||||
## 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 aux97;
|
||||
PRAGMA read_uncommitted = 1;
|
||||
ATTACH DATABASE ':memory:' AS aux72;
|
||||
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;
|
||||
PRAGMA empty_result_callbacks = ON;
|
||||
BEGIN DEFERRED;
|
||||
ATTACH DATABASE ':memory:' AS aux78;
|
||||
ATTACH DATABASE ':memory:' AS aux16;
|
||||
ATTACH DATABASE ':memory:' AS aux83;
|
||||
PRAGMA short_column_names = OFF;
|
||||
SAVEPOINT sp7579;
|
||||
CREATE TABLE t1(a NUMERIC PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((-(-(jsonb_array(-(-(unlikely(like('2147483646?*', NULL))))))) + jsonb_insert(-(-(x'')), '$.key', -json_quote(glob('*helium*', 9223372036854775808)))), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
sElect * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
ALTER TABLE t1 RENAME COLUMN d TO d_r9880;
|
||||
ROLLBACK TO sp7579;
|
||||
RELEASE sp7579;
|
||||
INSERT OR ABORT INTO t1 VALUES /**/ ('', '', 'x', 0);
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
PRAGMA short_column_names = OFF;
|
||||
SAVEPOINT sp7579;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((0 + 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
sElect * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
ALTER TABLE t1 RENAME COLUMN d TO d_r9880;
|
||||
ROLLBACK TO sp7579;
|
||||
RELEASE sp7579;
|
||||
INSERT AND ABORT INTO t1 VALUES /**/ ('', '', 'x', 0);
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
PRAGMA short_column_names = OFF;
|
||||
SAVEPOINT sp7579;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((0 + 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;
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM T) SELEC_m b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
ALTER TABLE t1 RENAME COLUMN d TO d_r9880;
|
||||
ROLLBACK TO sp7579;
|
||||
CREATE TABLE main.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;
|
||||
RELEASE sp7579;
|
||||
INSERT AND ABORT INTO t1 VALUES /**/ ('', '', 'x', 0);
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
CREATE TABLE T (
|
||||
a TEXT,
|
||||
b TEXT,
|
||||
c REAL
|
||||
);
|
||||
INSERT INTO T VALUES ('a','b',5.0), ('a','c',5.0), ('b','d',-8.25);
|
||||
SELECT a,b,c,
|
||||
RANK() OVER (PARTITION BY a ORDER BY c DESC) AS d FROM T;
|
||||
PRAGMA short_column_names = OFF;
|
||||
SAVEPOINT sp7579;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((0 + 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
sElect * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
ALTER TABLE t1 RENAME COLUMN d TO d_r9880;
|
||||
ROLLBACK TO sp7579;
|
||||
RELEASE sp7579;
|
||||
INSERT AND ABORT INTO t1 VALUES /**/ ('', '', 'x', 0);
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
DETACH DATABASE aux83;
|
||||
UPDATE t1 SET a = CURRENT_TIMESTAMP WHERE a IS NOT NULL;
|
||||
REINDEX T;
|
||||
DELETE FROM t1 WHERE 1;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T_4302 AFTER UPDATE OF c ON T BEGIN INSERT INTO T(c) 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 T;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_8442 ON t1(a) WHERE a IS NOT NULL;
|
||||
ATTACH DATABASE ':memory:' AS aux83;
|
||||
PRAGMA short_column_names = OFF;
|
||||
SAVEPOINT sp7579;
|
||||
CREATE TABLE t1(a DATE PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((-(-(jsonb_array(2147483646))) + 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
sElect * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
ALTER TABLE t1 RENAME COLUMN d TO d_r9880;
|
||||
ROLLBACK TO sp7579;
|
||||
RELEASE sp7579;
|
||||
INSERT AND ABORT INTO t1 VALUES /**/ ('', '', 'x', 0);
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
PRAGMA short_column_names = OFF;
|
||||
SAVEPOINT sp7579;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((0 + 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
sElect * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
ALTER TABLE t1 RENAME COLUMN d TO d_r9880;
|
||||
ROLLBACK TO sp7579;
|
||||
RELEASE sp7579;
|
||||
INSERT AND ABORT INTO t1 VALUES /**/ ('', '', 'x', 0);
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
PRAGMA short_column_names = OFF;
|
||||
SAVEPOINT sp7579;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((0 + 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
sElect * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
ALTER TABLE t1 RENAME COLUMN d TO d_r9880;
|
||||
ROLLBACK TO sp7579;
|
||||
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;
|
||||
RELEASE sp7579;
|
||||
INSERT AND ABORT INTO t1 VALUES /**/ ('', '', 'x', 0);
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
CREATE TABLE T (
|
||||
a TEXT,
|
||||
b TEXT,
|
||||
c REAL
|
||||
);
|
||||
INSERT INTO T VALUES ('a','b',5.0), ('a','c',5.0), ('b','d',-8.25);
|
||||
SELECT a,b,c,
|
||||
RANK() OVER (PARTITION BY a ORDER BY c DESC) AS d FROM T;
|
||||
PRAGMA short_column_names = OFF;
|
||||
SAVEPOINT sp7579;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((0 + 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
sElect * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
ALTER TABLE t1 RENAME COLUMN d TO d_r9880;
|
||||
ROLLBACK TO sp7579;
|
||||
RELEASE sp7579;
|
||||
INSERT AND ABORT INTO t1 VALUES /**/ ('', '', 'x', 0);
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
DETACH DATABASE aux83;
|
||||
UPDATE t1 SET a = CURRENT_TIMESTAMP WHERE a IS NOT NULL;
|
||||
REINDEX T;
|
||||
DELETE FROM t1 WHERE 1;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T_4302 AFTER UPDATE OF c ON T BEGIN INSERT INTO T(c) 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 T;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_8442 ON t1(a) WHERE a IS NOT NULL;
|
||||
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;
|
||||
DETACH DATABASE aux16;
|
||||
DELETE FROM T WHERE 1;
|
||||
WITH RECURSIVE vals(x) AS (SELECT a FROM t1 WHERE a IS NOT NULL UNION ALL SELECT a FROM t1 WHERE a IS NOT NULL LIMIT 10) SELECT * FROM vals;
|
||||
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T WHERE 1 = 0);
|
||||
DETACH DATABASE aux78;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT * FROM T;
|
||||
SELECT COUNT(*) FROM T;
|
||||
SELECT a FROM T WHERE a = (SELECT MAX(a) FROM T);
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
SELECT * FROM T;
|
||||
REINDEX t1;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T_2166 AFTER DELETE ON T BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(20),
|
||||
B VARCHAR(10),
|
||||
C INTEGER,
|
||||
PRIMARY KEY (A, B)
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -2147483648);
|
||||
INSERT INTO T VALUES ('b', 'q', 100);
|
||||
INSERT INTO T VALUES ('b', 'r', 200);
|
||||
INSERT INTO T VALUES ('c', 's', 300);
|
||||
INSERT INTO T VALUES ('d', 't', 2147483647);
|
||||
INSERT INTO T VALUES ('b', 't', 50);
|
||||
SELECT A, COUNT(*) AS D, SUM(C) AS E FROM T GROUP BY A HAVING COUNT(*) > 1;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_t1_9643 AS SELECT d FROM t1;
|
||||
VACUUM;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_T_6699 AS SELECT B FROM T;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
SELECT GROUP_CONCAT(c, '.') OVER (ORDER BY c ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1;
|
||||
VACUUM main;
|
||||
END;
|
||||
ALTER TABLE T ADD COLUMN extra_9586 INT DEFAULT (abs(random()) % 1000);
|
||||
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;
|
||||
ALTER TABLE T RENAME COLUMN A TO A_r250;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
ALTER TABLE t1 RENAME COLUMN d TO d_r4327;
|
||||
PRAGMA recursive_triggers = NO;
|
||||
ALTER TABLE t1 RENAME COLUMN d TO d_r6731;
|
||||
INSERT OR ROLLBACK INTO t1 VALUES (0, NULL, 0, 0);
|
||||
WITH RECURSIVE pair(a,b) AS (VALUES(0,1) UNION ALL SELECT b, a+b FROM pair WHERE b<100) SELECT * FROM pair;
|
||||
DELETE FROM t1 WHERE rowid = 79;
|
||||
SELECT * FROM t1 WHERE EXISTS (SELECT 1 FROM t1 WHERE d < 0);
|
||||
DETACH DATABASE aux72;
|
||||
SELECT * FROM T AS a LEFT JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T WHERE B IN (SELECT B FROM T LIMIT 0);
|
||||
SELECT * FROM T WHERE B >= ALL (SELECT B FROM T);
|
||||
DETACH DATABASE aux97;
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
2|-7.25
|
||||
3|0.0
|
||||
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
|
||||
WARNING: writing to an imposter table will corrupt the "t1bc" index!
|
||||
Braun|30|2
|
||||
von|20|1
|
||||
Braun|30
|
||||
von|20
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,56 @@
|
||||
## Summary
|
||||
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
|
||||
|
||||
## Minimized query
|
||||
|
||||
```sql
|
||||
ATTACH DATABASE ':memory:' AS aux73;
|
||||
CREATE TABLE T (
|
||||
a
|
||||
INTEGER,
|
||||
b REAL,
|
||||
c REAL
|
||||
);
|
||||
INSERT INTO T VALUES (upper('hello'),unistr(NULL),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;
|
||||
PRAGMA trusted_schema;
|
||||
PRAGMA defer_foreign_keys;
|
||||
PRAGMA synchronous = 'EXTRA';
|
||||
.nullvalue -(-(2))32327d3-536b-41de-a764-a6301986aeab
|
||||
CREATE TABLE t0(c0);
|
||||
INSERT INTO t0(c0) VALUES (NULL);
|
||||
CREATE INDEX i0 ON t0(1) 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 AND TRUE;
|
||||
|
||||
REINDEX T;
|
||||
ANALYZE;
|
||||
DROP INDEX IF EXISTS t0;
|
||||
PRAGMA wal_autocheckpoint = 1000;
|
||||
UPDATE t0 SET c0 = NULL WHERE c0 IS NOT NULL;
|
||||
ALTER TABLE T RENAME TO T_r6099;
|
||||
CREATE VIEW IF NOT EXISTS v_T_502 AS SELECT c FROM T;
|
||||
DETACH DATABASE aux73;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
1
|
||||
0
|
||||
1
|
||||
1000
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
-batch
|
||||
```
|
||||
|
||||
@@ -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
|
||||
PRAGMA vdbe_trace = YES;
|
||||
ATTACH DATABASE ':memory:' AS aux22;
|
||||
BEGIN DEFERRED;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (json_valid(ln(-9223372036854775809), 1), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
DROP TABLE IF EXISTS t1;
|
||||
DROP TABLE IF EXISTS t2;
|
||||
CREATE TABLE t1(x);
|
||||
INSERT INTO t1 VALUES(-2147483649);
|
||||
CREATE TABLE t2(y,z);
|
||||
INSERT INTO t2 VALUES(2,3);
|
||||
CREATE INDEX t2y ON t2(y);
|
||||
SELECT * FROM t1,(SELECT * FROM t2 WHERE y=2 ORDER BY y,z);
|
||||
|
||||
SELECT GROUP_CONCAT(x, '.') OVER (PARTITION BY x ORDER BY x ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1;
|
||||
INSERT OR ABORT INTO t2 VALUES (0, 'x');
|
||||
END;
|
||||
ANALYZE;
|
||||
REINDEX;
|
||||
SELECT * FROM t2;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_t2_6543 ON t2(y COLLATE NOCASE) WHERE y > 0;
|
||||
SELECT * FROM t2 AS a LEFT OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DROP INDEX IF EXISTS t2;
|
||||
DETACH DATABASE aux22;
|
||||
INSERT INTO t2 VALUES (NULL, NULL);
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_9456 AFTER UPDATE ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
DROP TRIGGER IF EXISTS t2;
|
||||
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;
|
||||
|
||||
SELECT COUNT(*) FROM T2;
|
||||
ALTER TABLE t1 ADD COLUMN extra_7517 FLOA DEFAULT (abs(random()) % 1000);
|
||||
```
|
||||
|
||||
## 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,464 @@
|
||||
## Summary
|
||||
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
|
||||
|
||||
## Minimized query
|
||||
|
||||
```sql
|
||||
.once log.txt
|
||||
BEGIN DEFERRED TRANSACTION;
|
||||
-- 2147483647
|
||||
|
||||
CREATE TABLE T1 (
|
||||
A VARCHAR(3.141592653589793) 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;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_T2_6410 AS SELECT Y FROM T2;
|
||||
SELECT * FROM T2 WHERE EXISTS (SELECT 1 FROM T2 WHERE Y >= 0);
|
||||
ANALYZE T2;
|
||||
END TRANSACTION;
|
||||
INSERT INTO T1 VALUES (NULL, NULL);
|
||||
SELECT * FROM T1 WHERE X = (SELECT X FROM T1 t2 WHERE t2.X = T1.X LIMIT 1);
|
||||
REINDEX;
|
||||
PRAGMA function_list;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
b
|
||||
c
|
||||
b|k
|
||||
c|l
|
||||
a|m
|
||||
b|n
|
||||
c|o
|
||||
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
|
||||
Page cache size increased to 1296 to accommodate the 272-byte headers
|
||||
b
|
||||
c
|
||||
b|k
|
||||
c|l
|
||||
a|m
|
||||
b|n
|
||||
c|o
|
||||
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
|
||||
|
||||
```
|
||||
-pagecache 1024 5
|
||||
```
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
## 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
|
||||
.vfsinfo
|
||||
CREATE TABLE T1 (
|
||||
a INTEGER,
|
||||
b REAL
|
||||
);
|
||||
CREATE TABLE T2 (
|
||||
a INTEGER,
|
||||
b REAL
|
||||
);
|
||||
INSERT INTO T1 VALUES (if(format('%s', log2(CAST(1 AS MEDIUMINT))), 1, 1),1.0);
|
||||
INSERT INTO T2 VALUES (1,-1.0),(2,9e999);
|
||||
INSERT OR REPLACE INTO T1
|
||||
SELECT * FROM T2;
|
||||
SELECT * FROM T1;
|
||||
PRAGMA defer_foreign_keys = FALSE;
|
||||
ALTER TABLE T1 ADD COLUMN extra_5658 DOUBLE DEFAULT NULL;
|
||||
VACUUM main;
|
||||
SELECT * FROM T1 NATURAL JOIN T2;
|
||||
SELECT * FROM T1 t1 JOIN T1 t2 ON t1.b = (SELECT b FROM T1 LIMIT 1);
|
||||
DELETE FROM T2 WHERE 0;
|
||||
INSERT INTO T2 VALUES (NULL, NULL);
|
||||
INSERT INTO T2 DEFAULT VALUES;
|
||||
PRAGMA journal_mode = 'PERSIST';
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
1|-1.0
|
||||
2|Inf
|
||||
1|-1.0|
|
||||
2|Inf|
|
||||
1|-1.0||1|-1.0|
|
||||
1|-1.0||2|Inf|
|
||||
memory
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,52 @@
|
||||
## Summary
|
||||
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
|
||||
|
||||
## Minimized query
|
||||
|
||||
```sql
|
||||
CREATE TABLE x(id integer primary key, a TEXT NULL);
|
||||
INSERT INTO x (a) VALUES ('first');
|
||||
CREATE TABLE tempx(id integer primary key, a TEXT NULL);
|
||||
INSERT INTO tempx (a) VALUES ('t-first');
|
||||
CREATE VIEW tv1 AS SELECT x.id, tx.id FROM x JOIN tempx tx ON tx.id=x.id;
|
||||
CREATE VIEW tv1b AS SELECT x.id, tx.id FROM x JOIN tempx tx on tx.id=x.id;
|
||||
CREATE VIEW tv2 AS SELECT * FROM tv1 UNION SELECT * FROM tv1b;
|
||||
SELECT * FROM tv2;
|
||||
|
||||
SELECT * FROM tempx;
|
||||
WITH cte(x) AS (VALUES(CAST(-5075860481212976019 AS NCHAR(55))),(2),(3)) SELECT * FROM cte WHERE x > 1;
|
||||
PRAGMA automatic_index = 1;
|
||||
PRAGMA page_size = 4096;
|
||||
INSERT INTO x VALUES (NULL, NULL);
|
||||
SELECT RANK() OVER (ORDER BY id ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM x;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
1|1
|
||||
1|t-first
|
||||
2
|
||||
3
|
||||
1
|
||||
2
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
1|1
|
||||
1|t-first
|
||||
-5075860481212976019
|
||||
2
|
||||
3
|
||||
1
|
||||
2
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
@@ -0,0 +1,377 @@
|
||||
## 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
|
||||
.parameter
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c REAL,
|
||||
d REAL
|
||||
);
|
||||
-- .clone
|
||||
|
||||
INSERT INTO T VALUES ((if(NULL, 0) + 1),'' || ('a'),40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
|
||||
SELECT b FROM T WHERE NOT NOT (NOT ABS(c) > 5 AND ABS(d) > 5) ;
|
||||
PRAGMA optimize;
|
||||
PRAGMA read_uncommitted = ON;
|
||||
BEGIN IMMEDIATE;
|
||||
.quit
|
||||
.echo on
|
||||
BEGIN IMMEDIATE TRANSACTION;
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c INTEGER
|
||||
);
|
||||
INSERT INTO T VALUES ((strftime(('%s' || ''), unixepoch(x'd2778de55190649f19')) * (atan2(printf('%d', '+'), unlikely(-(-(0)))) + 1)),'a',NULL), (2,'b',1), (3,'c',2);
|
||||
WITH RECURSIVE d(a,b,c,e) AS (
|
||||
SELECT *,1 FROM T WHERE NOT NOT (c IS NULL
|
||||
UNION ALL
|
||||
SELECT T.a,T.b,T.c,d.e+1
|
||||
FROM T JOIN /* PRAGMA query_only = OFF) ; */ d ON T.c=d.a
|
||||
)
|
||||
SELECT * FROM d;
|
||||
ROLLBACK;
|
||||
SELECT /**/ COUNT(*) FROM T;
|
||||
ANALYZE;
|
||||
SELECT MAX(b) FROM T;
|
||||
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;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
ROLLBACK;
|
||||
DELETE FROM T WHERE b > (SELECT AVG(b) FROM T);
|
||||
SELECT * FROM T AS a LEFT JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T AS a INNER JOIN T AS b ON a.rowid = b.rowid;
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
SELECT NTH_VALUE(a, -1) OVER (PARTITION BY a ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM T;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
SELECT RANK() OVER (ORDER BY c ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
|
||||
ALTER TABLE T DROP COLUMN c;
|
||||
SELECT * FROM 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;
|
||||
BEGIN IMMEDIATE;
|
||||
.quit
|
||||
.echo on
|
||||
BEGIN IMMEDIATE TRANSACTION;
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c INTEGER
|
||||
);
|
||||
INSERT INTO T VALUES ((strftime('%s', unixepoch(1)) * 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 /* PRAGMA query_only = OFF; */ d ON T.c=d.a
|
||||
)
|
||||
SELECT * FROM d;
|
||||
ROLLBACK;
|
||||
SELECT /**/ COUNT(*) FROM T;
|
||||
ANALYZE;
|
||||
SELECT MAX(b) FROM T;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
ROLLBACK;
|
||||
DELETE FROM T WHERE b > (SELECT AVG(b) FROM T);
|
||||
SELECT * FROM T AS a LEFT JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T AS a INNER JOIN T AS b ON a.rowid = b.rowid;
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
SELECT NTH_VALUE(a, -1) OVER (PARTITION BY a ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM T;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
SELECT RANK() OVER (ORDER BY c ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
|
||||
ALTER TABLE T DROP COLUMN c;
|
||||
SELECT * FROM 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;
|
||||
BEGIN IMMEDIATE;
|
||||
.quit
|
||||
.echo on
|
||||
BEGIN IMMEDIATE TRANSACTION;
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c INTEGER
|
||||
);
|
||||
INSERT INTO T VALUES ((strftime('%s', unixepoch(1)) * 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 /* PRAGMA query_only = OFF; */ d ON T.c=d.a
|
||||
)
|
||||
SELECT * FROM d;
|
||||
ROLLBACK;
|
||||
SELECT /**/ COUNT(*) FROM T;
|
||||
ANALYZE;
|
||||
SELECT MAX(b) FROM T;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
ROLLBACK;
|
||||
DELETE FROM T WHERE b > (SELECT AVG(b) FROM T);
|
||||
SELECT * FROM T AS a LEFT JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T AS a INNER JOIN T AS b ON a.rowid = b.rowid;
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
SELECT NTH_VALUE(a, -1) OVER (PARTITION BY a ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM T;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
SELECT RANK() OVER (ORDER BY c ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
|
||||
ALTER TABLE T DROP COLUMN c;
|
||||
SELECT * FROM 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;
|
||||
BEGIN IMMEDIATE;
|
||||
.quit
|
||||
.echo on
|
||||
BEGIN IMMEDIATE TRANSACTION;
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c INTEGER
|
||||
);
|
||||
INSERT INTO T VALUES ((strftime('%s', unixepoch(1)) * 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 /* PRAGMA query_only = OFF; */ d ON T.c=d.a
|
||||
)
|
||||
SELECT * FROM d;
|
||||
ROLLBACK;
|
||||
SELECT /**/ COUNT(*) FROM T;
|
||||
ANALYZE;
|
||||
SELECT MAX(b) FROM T;
|
||||
INSERT INTO T WITH _m AS MATERIALIZED (SELECT * FROM T2) SELECT * FROM T;
|
||||
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 T DEFAULT VALUES;
|
||||
ROLLBACK;
|
||||
DELETE FROM T WHERE b > (SELECT AVG(b) FROM T);
|
||||
SELECT * FROM T AS a LEFT JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T AS a INNER JOIN T AS b ON a.rowid = b.rowid;
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
SELECT NTH_VALUE(a, -1) OVER (PARTITION BY a ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM T;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
SELECT RANK() OVER (ORDER BY c ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
|
||||
ALTER TABLE T DROP COLUMN c;
|
||||
SELECT * FROM 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;
|
||||
BEGIN IMMEDIATE;
|
||||
.quit
|
||||
.echo on
|
||||
BEGIN IMMEDIATE TRANSACTION;
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c INTEGER
|
||||
);
|
||||
INSERT INTO T VALUES ((strftime('%s', unixepoch(1)) * 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 /* PRAGMA query_only = OFF; */ d ON T.c=d.a
|
||||
)
|
||||
SELECT * FROM d;
|
||||
ROLLBACK;
|
||||
SELECT /**/ COUNT(*) FROM T;
|
||||
ANALYZE;
|
||||
SELECT MAX(b) FROM T;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
ROLLBACK;
|
||||
DELETE FROM T WHERE b > (SELECT AVG(b) FROM T);
|
||||
SELECT * FROM T AS a LEFT JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T AS a INNER JOIN T AS b ON a.rowid = b.rowid;
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
SELECT NTH_VALUE(a, -1) OVER (PARTITION BY a ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM T;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
SELECT RANK() OVER (ORDER BY c ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
|
||||
ALTER TABLE T DROP COLUMN c;
|
||||
SELECT * FROM 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;
|
||||
BEGIN /**/ IMMEDIATE;
|
||||
.quit
|
||||
.echo on
|
||||
BEGIN IMMEDIATE TRANSACTION;
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c INTEGER
|
||||
);
|
||||
INSERT INTO T VALUES ((strftime('%s', unixepoch(1)) * 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 /* PRAGMA query_only = OFF; */ d ON T.c=d.a
|
||||
)
|
||||
SELECT * FROM d;
|
||||
ROLLBACK;
|
||||
SELECT /**/ COUNT(*) FROM T;
|
||||
ANALYZE;
|
||||
SELECT MAX(b) FROM T;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
ROLLBACK;
|
||||
DELETE FROM T WHERE b > (SELECT AVG(b) FROM T);
|
||||
SELECT * FROM T AS a LEFT JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T AS a INNER JOIN T AS b ON a.rowid = b.rowid;
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
SELECT NTH_VALUE(a, -1) OVER (PARTITION BY a ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM T;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
SELECT RANK() OVER (ORDER BY c ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
|
||||
ALTER TABLE T DROP COLUMN c;
|
||||
SELECT * FROM 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;
|
||||
BEGIN IMMEDIATE;
|
||||
.quit
|
||||
.echo on
|
||||
BEGIN IMMEDIATE TRANSACTION;
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c INTEGER
|
||||
);
|
||||
INSERT INTO T VALUES ((strftime('%s', unixepoch(1)) * 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 /* PRAGMA query_only = OFF; */ d ON T.c=d.a
|
||||
)
|
||||
SELECT * FROM d;
|
||||
ROLLBACK;
|
||||
SELECT /**/ COUNT(*) FROM T;
|
||||
ANALYZE;
|
||||
SELECT MAX(b) FROM T;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
ROLLBACK;
|
||||
DELETE FROM T WHERE b > (SELECT AVG(b) FROM T);
|
||||
SELECT * FROM T AS a LEFT JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T AS a INNER JOIN T AS b ON a.rowid = b.rowid;
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
SELECT NTH_VALUE(a, -1) OVER (PARTITION BY a ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM T;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
SELECT RANK() OVER (ORDER BY c ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
|
||||
ALTER TABLE T DROP COLUMN c;
|
||||
SELECT * FROM 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;
|
||||
BEGIN IMMEDIATE;
|
||||
.quit
|
||||
.echo on
|
||||
BEGIN IMMEDIATE TRANSACTION;
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c INTEGER
|
||||
);
|
||||
INSERT INTO T VALUES ((strftime('%s', unixepoch(1)) * 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 /* PRAGMA query_only = OFF; */ d ON T.c=d.a
|
||||
)
|
||||
SELECT * FROM d;
|
||||
ROLLBACK;
|
||||
SELECT /**/ COUNT(*) FROM T;
|
||||
ANALYZE;
|
||||
SELECT MAX(b) FROM T;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
ROLLBACK;
|
||||
DELETE FROM T WHERE b > (SELECT AVG(b) FROM T);
|
||||
SELECT * FROM T AS a LEFT JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T AS a INNER JOIN T AS b ON a.rowid = b.rowid;
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
SELECT NTH_VALUE(a, -1) OVER (PARTITION BY a ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM T;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
SELECT RANK() OVER (ORDER BY c ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T;
|
||||
ALTER TABLE T DROP COLUMN c;
|
||||
SELECT * FROM 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;
|
||||
SELECT AVG(c) OVER (ORDER BY c ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T;
|
||||
DELETE FROM T WHERE 0;
|
||||
ALTER TABLE T ADD COLUMN extra_9438 DECIMAL(10,5) COLLATE RTRIM;
|
||||
ALTER TABLE T RENAME COLUMN c TO c_r5491;
|
||||
REINDEX T;
|
||||
PRAGMA vdbe_debug = YES;
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
SELECT * FROM T AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
VACUUM main;
|
||||
ALTER TABLE T RENAME TO T_r5026;
|
||||
PRAGMA writable_schema = RESET;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T_944 BEFORE INSERT ON T FOR EACH ROW BEGIN INSERT INTO T(a) VALUES (NULL); END;
|
||||
SELECT SUM(c) FROM T;
|
||||
PRAGMA defer_foreign_keys = OFF;
|
||||
CREATE INDEX IF NOT EXISTS idx_T_2801 ON T(a) WHERE a > 0;
|
||||
DROP TRIGGER IF EXISTS T;
|
||||
INSERT OR ABORT INTO T VALUES (2, 'x', NULL);
|
||||
UPDATE T SET b = 'x' WHERE 1 RETURNING *;
|
||||
SELECT * FROM T NATURAL JOIN T;
|
||||
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;
|
||||
SELECT * FROM T AS a INNER JOIN T AS b ON a.rowid = b.rowid;
|
||||
ANALYZE;
|
||||
SELECT MAX(a) FROM T;
|
||||
REINDEX T;
|
||||
SELECT * FROM T AS a JOIN T AS b ON a.rowid = b.rowid;
|
||||
WITH cte(a, b) AS (SELECT b, b FROM T2) SELECT a, b FROM cte;
|
||||
SELECT * FROM T1;
|
||||
SELECT NTILE(1) OVER (ORDER BY b RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM _m;
|
||||
ALTER TABLE _m RENAME COLUMN a TO a_r7255;
|
||||
WITH RECURSIVE tree(id, parent, depth) AS (VALUES(1, NULL, 0) UNION ALL SELECT id+1, id, depth+1 FROM tree WHERE depth<92) SELECT * FROM tree;
|
||||
ALTER TABLE _m RENAME COLUMN b TO b_r7607;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
.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
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
@@ -0,0 +1,96 @@
|
||||
## 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 sp5958;
|
||||
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;
|
||||
create TABLE main.abc(a, b, c, PRIMARY KEY(a, b));
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c REAL,
|
||||
d REAL
|
||||
);
|
||||
INSERT INTO T VALUES (json_valid(1, 4),'a',40.5,-70.0), (2,'b',-10.25,20.5), (3,'c',9e999,-9e999);
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C DOUBLE PRECISION
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('b', 'q', -0.000000001);
|
||||
INSERT INTO T VALUES ('c', 'r', 0.0);
|
||||
INSERT INTO T VALUES ('d', 's', 3.14159265358979);
|
||||
INSERT INTO T VALUES ('e', 't', 1.7976931348623157e+308);
|
||||
INSERT INTO T VALUES ('f', 't', 750.25);
|
||||
SELECT B, AVG(C) AS D, MIN(C) AS E, MAX(C) AS F FROM T GROUP BY B;
|
||||
SELECT b FROM T WHERE ABS(c) > 5 OR ABS(d) > 5;
|
||||
INSERT INTO abc VALUES(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;
|
||||
ALTER TABLE T RENAME TO T_r2547;
|
||||
SELECT b, (SELECT AVG(b) FROM abc) AS avg_val FROM abc;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL, NULL);
|
||||
SELECT AVG(B) FROM T;
|
||||
SELECT * FROM t1 WHERE c < ANY (SELECT c FROM t1);
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_7090 AFTER INSERT ON t1 BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp5958;
|
||||
RELEASE SAVEPOINT sp5958;
|
||||
UPDATE abc SET a = NULL WHERE a IS NOT NULL RETURNING *;
|
||||
DROP VIEW IF EXISTS abc;
|
||||
DELETE FROM t1 WHERE rowid = 76;
|
||||
```
|
||||
|
||||
## 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,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 cell_size_check = FALSE;
|
||||
PRAGMA collation_list;
|
||||
PRAGMA recursive_triggers = 1;
|
||||
.filectrl main TRUNCATE 10
|
||||
CREATE TABLE t0(c0 AS(TYPEOF(c1)), c1);
|
||||
INSERT INTO t0(c1) VALUES(0);
|
||||
CREATE TABLE t1(x AS (typeof(y)), y);
|
||||
INSERT INTO t1 SELECT * FROM t0;
|
||||
SELECT * FROM t1;
|
||||
|
||||
SELECT * FROM t1;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
0|decimal
|
||||
1|uint
|
||||
2|RTRIM
|
||||
3|NOCASE
|
||||
4|BINARY
|
||||
integer|0
|
||||
integer|0
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
0|decimal
|
||||
1|BINARY
|
||||
2|NOCASE
|
||||
3|RTRIM
|
||||
4|uint
|
||||
integer|0
|
||||
integer|0
|
||||
```
|
||||
|
||||
## 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
|
||||
.timer on
|
||||
PRAGMA parser_trace = FALSE;
|
||||
ATTACH DATABASE '' || (':memory:') AS aux81;
|
||||
PRAGMA reverse_unordered_selects = ON;
|
||||
PRAGMA max_page_count;
|
||||
PRAGMA case_sensitive_like = OFF;
|
||||
PRAGMA writable_schema = NO;
|
||||
.quit
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1(a int, b int);
|
||||
INSERT INTO t1 VALUES(glob(NULL, NULL),NULL),(CAST(CAST(CAST(log10(if('"', cosh(5035996954804773676), 1, 5035996954804773676, 5035996954804773676)) AS CLOB) AS UNSIGNED BIG INT) AS SMALLINT),18),(2,19);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM t1) SELECT x, y FROM (SELECT 98 AS x, 99 AS y UNION SELECT a AS x, sum(b) AS y FROM _m GROUP BY /* PRAGMA secure_delete = TRUE; */ a) AS w WHERE NOT y>=20 ORDER BY +x;
|
||||
SELECT x, y FROM (SELECT a AS x, sum(b) AS y FROM t1 GROUP BY a UNION SELECT 98 AS x, 99 AS y) AS w WHERE y>=20 ORDER BY +x;
|
||||
DROP VIEW IF EXISTS t1;
|
||||
INSERT INTO t1 VALUES (NULL, NULL);
|
||||
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 "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;
|
||||
INSERT INTO T2 VALUES (NULL, NULL);
|
||||
ALTER TABLE T2 ADD COLUMN extra_2116 NUMERIC DEFAULT 0;
|
||||
REINDEX;
|
||||
UPDATE T2 SET A = 'x' WHERE A IS NOT NULL RETURNING *;
|
||||
SELECT * FROM (SELECT Y, COUNT(*) FROM T2 GROUP BY Y) AS sub;
|
||||
ALTER TABLE t1 DROP COLUMN b;
|
||||
SELECT LAG(X, 0) OVER (PARTITION BY X ORDER BY X ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T1;
|
||||
SELECT 0x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
SELECT LEAD(X, 1, NULL) OVER (PARTITION BY X ORDER BY X ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES) FROM T1;
|
||||
PRAGMA vdbe_listing = YES;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_T1_7197 AS SELECT A FROM T1;
|
||||
ALTER TABLE T1 DROP COLUMN A;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_4345 ON T1((X + 1)) WHERE X IS NOT NULL;
|
||||
SELECT * FROM T1;
|
||||
DETACH DATABASE aux81;
|
||||
SELECT * FROM t1 WHERE EXISTS (SELECT 1 FROM t1 WHERE b > 0);
|
||||
VACUUM main;
|
||||
SELECT * FROM T2 WHERE A IN (SELECT A FROM T2 WHERE A IS NOT NULL);
|
||||
ALTER TABLE t1 RENAME TO t1_r6007;
|
||||
ALTER TABLE T1 RENAME TO T1_r5111;
|
||||
SELECT * FROM t1 WHERE EXISTS (SELECT 1 FROM t1 WHERE a = NULL);
|
||||
SELECT COUNT(X) OVER (ORDER BY X RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T1;
|
||||
SELECT NTH_VALUE(b, -1) OVER (ORDER BY b GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t1;
|
||||
ALTER TABLE t1 DROP COLUMN b;
|
||||
INSERT INTO T1 VALUES (NULL, 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
|
||||
SELECT * FROM t1 WHERE b IN (SELECT b FROM t1 WHERE b GLOB "*");
|
||||
INSERT OR FAIL INTO t1 VALUES (0, 0);
|
||||
REINDEX;
|
||||
INSERT INTO T1 VALUES ('x', NULL) ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
|
||||
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;
|
||||
ANALYZE T2;
|
||||
WITH m AS MATERIALIZED (SELECT * FROM T2) SELECT m.A FROM m JOIN m AS m2 ON m.A = m2.A;
|
||||
ALTER TABLE t1 RENAME TO t1_r3665;
|
||||
DELETE FROM T1 WHERE rowid = 99 RETURNING *;
|
||||
WITH RECURSIVE cnt(x) AS (VALUES(0) UNION ALL SELECT x-1 FROM cnt WHERE x>-10) SELECT * FROM cnt;
|
||||
INSERT INTO T1 VALUES (NULL, NULL);
|
||||
REINDEX;
|
||||
ALTER TABLE T2 RENAME TO T2_r3541;
|
||||
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<23) SELECT COUNT(*) FROM cnt;
|
||||
SELECT * FROM T WHERE A NOT IN (SELECT A FROM T);
|
||||
|
||||
SELECT COUNT(*) FROM T1;
|
||||
INSERT INTO T1 VALUES (NULL, 1) ON CONFLICT(A) DO UPDATE SET A = excluded.A, X = excluded.X;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_t1_2111 AS SELECT a FROM t1;
|
||||
INSERT INTO T1 SELECT * FROM T1;
|
||||
SELECT NTH_VALUE(a, 2) OVER (ORDER BY a) FROM t1;
|
||||
ALTER TABLE t1 RENAME TO t1_r4405;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
Run Time: real 0.000 user 0.000054 sys 0.000000
|
||||
Run Time: real 0.000 user 0.000131 sys 0.000000
|
||||
Run Time: real 0.000 user 0.000004 sys 0.000000
|
||||
1073741823
|
||||
Run Time: real 0.000 user 0.000008 sys 0.000000
|
||||
Run Time: real 0.000 user 0.000005 sys 0.000000
|
||||
Run Time: real 0.000 user 0.000003 sys 0.000000
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
Run Time: real 0.000017 user 0.000025 sys 0.000000
|
||||
Run Time: real 0.000062 user 0.000062 sys 0.000000
|
||||
Run Time: real 0.000002 user 0.000002 sys 0.000000
|
||||
4294967294
|
||||
Run Time: real 0.000006 user 0.000006 sys 0.000000
|
||||
Run Time: real 0.000002 user 0.000002 sys 0.000000
|
||||
Run Time: real 0.000001 user 0.000001 sys 0.000000
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
@@ -0,0 +1,302 @@
|
||||
## 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 aux0;
|
||||
PRAGMA cell_size_check;
|
||||
PRAGMA function_list;
|
||||
ATTACH DATABASE ':memory:' AS aux57;
|
||||
PRAGMA parser_trace = NO;
|
||||
ATTACH DATABASE ':memory:' AS aux99;
|
||||
.print
|
||||
BEGIN DEFERRED;
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b REAL,
|
||||
c REAL
|
||||
);
|
||||
INSERT INTO T VALUES (jsonb_array(ifnull(sign(x'980a5244992c94686b082be96979'), timediff(8065975075446046358, 8065975075446046358))),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;
|
||||
SAVEPOINT sp9028;
|
||||
.width
|
||||
ATTACH DATABASE '' || (':memory:') AS aux68;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d
|
||||
INT);
|
||||
INSERT INTO t1 VALUES (NULL, 'Wernher', CAST(ltrim('xxxhelloxxx', 'x') AS TEXT), CAST(100 -> '$[0]' AS DOUB));
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b REAL
|
||||
);
|
||||
INSERT INTO T VALUES (1,1.5), (2,-7.25), /* PRAGMA vdbe_debug = FALSE; */ (3,0.0);
|
||||
SELECT a,b FROM T WHERE NOT NOT (a >= 2) ORDER BY b;
|
||||
ANALYZE T;
|
||||
SELECT COUNT(*) FILTER (WHERE b IS NOT NULL), SUM(rowid) FILTER (WHERE +b > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(b) FILTER (WHERE b > 0 OR b < 100), COUNT(*) FILTER (WHERE typeof(b) = "text") FROM T;
|
||||
DETACH DATABASE aux68;
|
||||
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 MIN(b) OVER (PARTITION BY b ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT COUNT(*) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
UPDATE t1 SET d = '' WHERE 1;
|
||||
INSERT OR ABORT INTO t1 VALUES (0, 0, NULL, 7);
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp9028;
|
||||
RELEASE SAVEPOINT sp9028;
|
||||
REINDEX T;
|
||||
ALTER TABLE t1 DROP COLUMN b;
|
||||
SELECT * FROM t1 AS a INNER JOIN T AS b ON a.rowid = b.rowid;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
SELECT SUM(b) FROM t1;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT STRING_AGG(b) FROM T;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_495 AS SELECT a FROM T;
|
||||
END TRANSACTION;
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
DELETE FROM T WHERE rowid = 75 RETURNING *;
|
||||
ALTER TABLE T ADD COLUMN extra_685 DECIMAL(10,5) NOT NULL DEFAULT 0;
|
||||
ALTER TABLE T ADD COLUMN extra_8806 TEXT COLLATE RTRIM;
|
||||
DETACH DATABASE aux99;
|
||||
PRAGMA journal_size_limit;
|
||||
SELECT * FROM T WHERE b = (SELECT MAX(b) FROM T WHERE b = (SELECT MAX(b) FROM T));
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_2068 ON t1(b COLLATE NOCASE) WHERE b > 0;
|
||||
SELECT * FROM t1;
|
||||
ALTER TABLE T ADD COLUMN extra_4370 INT2 COLLATE RTRIM;
|
||||
VACUUM main;
|
||||
SELECT * FROM t1 WHERE d <= ANY (SELECT d FROM t1);
|
||||
ANALYZE T;
|
||||
DETACH DATABASE aux57;
|
||||
SELECT LEAD(b, 2) OVER (ORDER BY b RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM T;
|
||||
DROP VIEW IF EXISTS t1;
|
||||
SELECT * FROM T WHERE a IN (SELECT a FROM T t2 WHERE t2.a = T.a);
|
||||
WITH RECURSIVE fib(a,b) AS (VALUES(1,1) UNION ALL SELECT b, a+b FROM fib WHERE b<1000) SELECT a FROM fib;
|
||||
PRAGMA vdbe_trace = 1;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_5353 ON t1(d) WHERE d IS NOT NULL;
|
||||
ALTER TABLE t1 RENAME COLUMN d TO d_r4876;
|
||||
WITH cte AS (SELECT b FROM T INTERSECT SELECT b FROM T) SELECT * FROM cte;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
DETACH DATABASE aux0;
|
||||
VACUUM;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
0
|
||||
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
|
||||
|
||||
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|helloxxx|1
|
||||
von|20|2
|
||||
Braun|30
|
||||
Wernher|helloxxx
|
||||
von|20
|
||||
```
|
||||
|
||||
## 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
|
||||
PRAGMA empty_result_callbacks = TRUE;
|
||||
PRAGMA legacy_alter_table = OFF;
|
||||
ATTACH DATABASE ':memory:' AS aux42;
|
||||
-- PRAGMA case_sensitive_like = 1;
|
||||
|
||||
BEGIN DEFERRED TRANSACTION;
|
||||
-- -mmap 5
|
||||
|
||||
SAVEPOINT sp1653;
|
||||
CREATE TABLE T (
|
||||
a DOUB,
|
||||
b REAL,
|
||||
c REAL
|
||||
);
|
||||
INSERT INTO T VALUES (power(-likely(CAST(-if(1, 9223372036854775807, 0, 9223372036854775807, 0, 9223372036854775807) AS INT)), 1),1.5,10.0), (2,-2.5,20.0), (3,-9e999,30.0);
|
||||
SELECT * FROM T WHERE b < 2.0 ORDER BY b;
|
||||
ALTER TABLE T RENAME TO T_r6919;
|
||||
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;
|
||||
ALTER TABLE T DROP COLUMN a;
|
||||
SELECT COUNT(*) FROM T;
|
||||
PRAGMA stats;
|
||||
UPDATE T SET c = ('x' || '') WHERE rowid = 1 RETURNING *;
|
||||
RELEASE sp1653;
|
||||
WITH cte AS (SELECT NULL AS x, NULL AS y) SELECT x, y, x IS NULL FROM cte;
|
||||
END;
|
||||
VACUUM;
|
||||
DETACH DATABASE aux42;
|
||||
SELECT MIN(b) FILTER (WHERE b IS NOT NULL) OVER (ORDER BY b RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM T;
|
||||
ALTER TABLE T DROP COLUMN c;
|
||||
ANALYZE T;
|
||||
PRAGMA ignore_check_constraints = ON;
|
||||
ANALYZE;
|
||||
ALTER TABLE T ADD COLUMN extra_5916 BIGINT COLLATE RTRIM;
|
||||
SELECT * FROM T AS a LEFT OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
CREATE INDEX IF NOT EXISTS idx_T_2413 ON T(lower(b)) WHERE b > 0;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_T_6052 AS SELECT b FROM T;
|
||||
DELETE FROM T WHERE b > (SELECT AVG(b) FROM T) RETURNING *;
|
||||
REINDEX T;
|
||||
PRAGMA parser_trace = 0;
|
||||
SELECT * FROM T;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
1|-49.875
|
||||
2|-Inf
|
||||
3
|
||||
2.0|x
|
||||
||1
|
||||
-3.5
|
||||
2.0
|
||||
Inf
|
||||
2.0||2.0|
|
||||
-3.5||-3.5|
|
||||
Inf||Inf|
|
||||
2.0|
|
||||
-3.5|
|
||||
Inf|
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
## Summary
|
||||
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
|
||||
|
||||
## Minimized query
|
||||
|
||||
```sql
|
||||
SAVEPOINT sp5824;
|
||||
CREATE TABLE main.t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (CAST(CAST(json_object('k1', 1, 'k2', 1) AS MEDIUMINT) AS NONE), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_5105 BEFORE UPDATE OF b ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
||||
INSERT OR ROLLBACK INTO t1 VALUES ('x', 0, NULL, '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 t1;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_t1_3561 AS SELECT c FROM t1;
|
||||
DROP INDEX IF EXISTS t1;
|
||||
INSERT INTO t1 VALUES (1, 'x', NULL, 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
|
||||
ALTER TABLE t1 ADD COLUMN extra_186 ANY COLLATE RTRIM;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
VACUUM main;
|
||||
SELECT TOTAL(a) FROM t1;
|
||||
DROP INDEX IF EXISTS t1;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
PRAGMA full_column_names;
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp5824;
|
||||
RELEASE SAVEPOINT sp5824;
|
||||
SELECT * FROM t1 AS a RIGHT JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
|
||||
WARNING: writing to an imposter table will corrupt the "t1bc" index!
|
||||
Braun|30|3
|
||||
Wernher|10|0
|
||||
von|20|2
|
||||
Braun|30
|
||||
Wernher|10
|
||||
von|20
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
|
||||
Braun|30|3
|
||||
Wernher|10|0
|
||||
von|20|2
|
||||
Braun|30
|
||||
Wernher|10
|
||||
von|20
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
@@ -0,0 +1,787 @@
|
||||
## 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 aux96;
|
||||
.stats on
|
||||
SAVEPOINT sp9037;
|
||||
.stats on
|
||||
CREATE TABLE `T` (
|
||||
a SMALLINT,
|
||||
b REAL
|
||||
);
|
||||
INSERT INTO main.T VALUES ('' || ('a'),power(CAST(CAST((like(CAST(-1.0 AS REAL), NULL) + 3725563120749816045) AS ANY) AS BOOLEAN), 100.0)), ('b',-200.5), ('c',9e999);
|
||||
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
|
||||
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 query_only;
|
||||
INSERT INTO T VALUES (1, NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT * FROM T;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
ANALYZE;
|
||||
ALTER TABLE T RENAME TO T_r9134;
|
||||
SELECT MIN(a) FILTER (WHERE NOT NOT (a IS NOT NULL) OVER () ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM T;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
ANALYZE T;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
ROLLBACK TO sp9037;
|
||||
RELEASE sp9037;
|
||||
SELECT COUNT(b) FILTER (WHERE b IS NOT NULL) OVER (PARTITION BY b ORDER BY b) FROM T;
|
||||
SELECT COUNT(*) FILTER (WHERE b IS NOT NULL), SUM(rowid) FILTER (WHERE b > 0), COUNT(*) FILTER (WHERE 1=0), COUNT(*) FILTER (WHERE 1=1), COUNT(*) FILTER (WHERE NULL), AVG(b) FILTER (WHERE b > 0 AND b < 100), COUNT(*) FILTER (WHERE typeof(b) = "text") FROM t1;
|
||||
ALTER TABLE T ADD COLUMN extra_3139 DOUBLE COLLATE RTRIM;
|
||||
SELECT * FROM T AS a JOIN T AS b ON a.rowid = b.rowid;
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
SELECT * FROM T AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM t1 WHERE c > ANY (SELECT c FROM t1);
|
||||
SELECT * FROM T AS a LEFT OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
REINDEX;
|
||||
WITH cte(x) AS (SELECT a FROM T) SELECT x FROM cte;
|
||||
DETACH DATABASE aux96;
|
||||
ALTER TABLE T RENAME TO T_r2899;
|
||||
SELECT * FROM T WHERE a NOT IN (SELECT a FROM T WHERE a IS NOT NULL);
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b TEXT,
|
||||
c REAL
|
||||
);
|
||||
INSERT INTO T VALUES (1,'a',3.14), (1,'b',-7.75), (2,'c',-9e999);
|
||||
SELECT b,a,c,
|
||||
RANK() OVER (PARTITION BY a ORDER BY c DESC) AS d FROM T;
|
||||
SELECT * FROM T AS a FULL OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
PRAGMA cell_size_check = OFF;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
VACUUM;
|
||||
ALTER TABLE t1 DROP COLUMN a;
|
||||
ALTER TABLE T DROP COLUMN c;
|
||||
DROP INDEX IF EXISTS T;
|
||||
SELECT MAX(b) FROM T;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
Memory Used: 79920 (max 79920) bytes
|
||||
Number of Outstanding Allocations: 158 (max 158)
|
||||
Number of Pcache Overflow Bytes: 16928 (max 16928) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4360 bytes
|
||||
Lookaside Slots Used: 39 (max 80)
|
||||
Successful lookaside attempts: 143
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 18496 bytes
|
||||
Page cache hits: 0
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Schema Heap Usage: 1104 bytes
|
||||
Statement Heap/Lookaside Usage: 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(): 8848
|
||||
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: 92704 (max 98384) bytes
|
||||
Number of Outstanding Allocations: 182 (max 193)
|
||||
Number of Pcache Overflow Bytes: 25392 (max 25392) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4360 bytes
|
||||
Lookaside Slots Used: 35 (max 91)
|
||||
Successful lookaside attempts: 218
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 22840 bytes
|
||||
Page cache hits: 4
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Schema Heap Usage: 1376 bytes
|
||||
Statement Heap/Lookaside Usage: 2432 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: 2432
|
||||
Bytes received by read(): 9198
|
||||
Bytes sent to write(): 1292
|
||||
Read() system calls: 16
|
||||
Write() system calls: 1
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 90296 (max 98384) bytes
|
||||
Number of Outstanding Allocations: 171 (max 193)
|
||||
Number of Pcache Overflow Bytes: 25392 (max 25392) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4360 bytes
|
||||
Lookaside Slots Used: 53 (max 96)
|
||||
Successful lookaside attempts: 291
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 22840 bytes
|
||||
Page cache hits: 1
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Schema Heap Usage: 1400 bytes
|
||||
Statement Heap/Lookaside Usage: 6592 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 45
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 6592
|
||||
Bytes received by read(): 9295
|
||||
Bytes sent to write(): 2588
|
||||
Read() system calls: 18
|
||||
Write() system calls: 2
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 97456 (max 103136) bytes
|
||||
Number of Outstanding Allocations: 192 (max 207)
|
||||
Number of Pcache Overflow Bytes: 29752 (max 29752) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4360 bytes
|
||||
Lookaside Slots Used: 35 (max 96)
|
||||
Successful lookaside attempts: 366
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 27184 bytes
|
||||
Page cache hits: 3
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Schema Heap Usage: 1728 bytes
|
||||
Statement Heap/Lookaside Usage: 2464 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 28
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 2464
|
||||
Bytes received by read(): 9392
|
||||
Bytes sent to write(): 3884
|
||||
Read() system calls: 20
|
||||
Write() system calls: 3
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 95016 (max 103136) bytes
|
||||
Number of Outstanding Allocations: 181 (max 207)
|
||||
Number of Pcache Overflow Bytes: 29752 (max 29752) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4360 bytes
|
||||
Lookaside Slots Used: 44 (max 96)
|
||||
Successful lookaside attempts: 388
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 27184 bytes
|
||||
Page cache hits: 1
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Schema Heap Usage: 1752 bytes
|
||||
Statement Heap/Lookaside Usage: 3296 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 16
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 3296
|
||||
Bytes received by read(): 9489
|
||||
Bytes sent to write(): 5181
|
||||
Read() system calls: 22
|
||||
Write() system calls: 4
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 95016 (max 103136) bytes
|
||||
Number of Outstanding Allocations: 181 (max 207)
|
||||
Number of Pcache Overflow Bytes: 29752 (max 29752) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4360 bytes
|
||||
Lookaside Slots Used: 44 (max 96)
|
||||
Successful lookaside attempts: 410
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 27184 bytes
|
||||
Page cache hits: 1
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Schema Heap Usage: 1752 bytes
|
||||
Statement Heap/Lookaside Usage: 3296 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 16
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 3296
|
||||
Bytes received by read(): 9586
|
||||
Bytes sent to write(): 6478
|
||||
Read() system calls: 24
|
||||
Write() system calls: 5
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 95016 (max 103136) bytes
|
||||
Number of Outstanding Allocations: 181 (max 207)
|
||||
Number of Pcache Overflow Bytes: 29752 (max 29752) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4360 bytes
|
||||
Lookaside Slots Used: 44 (max 96)
|
||||
Successful lookaside attempts: 432
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 27184 bytes
|
||||
Page cache hits: 1
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Schema Heap Usage: 1752 bytes
|
||||
Statement Heap/Lookaside Usage: 3296 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 16
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 3296
|
||||
Bytes received by read(): 9683
|
||||
Bytes sent to write(): 7775
|
||||
Read() system calls: 26
|
||||
Write() system calls: 6
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 102424 (max 112216) bytes
|
||||
Number of Outstanding Allocations: 201 (max 213)
|
||||
Number of Pcache Overflow Bytes: 34112 (max 34112) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4360 bytes
|
||||
Lookaside Slots Used: 35 (max 98)
|
||||
Successful lookaside attempts: 512
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 31528 bytes
|
||||
Page cache hits: 4
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Schema Heap Usage: 1952 bytes
|
||||
Statement Heap/Lookaside Usage: 2768 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 1
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 56
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 2768
|
||||
Bytes received by read(): 9780
|
||||
Bytes sent to write(): 9072
|
||||
Read() system calls: 28
|
||||
Write() system calls: 7
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 99584 (max 112216) bytes
|
||||
Number of Outstanding Allocations: 184 (max 213)
|
||||
Number of Pcache Overflow Bytes: 34112 (max 34112) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4360 bytes
|
||||
Lookaside Slots Used: 38 (max 98)
|
||||
Successful lookaside attempts: 517
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 31528 bytes
|
||||
Page cache hits: 0
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Schema Heap Usage: 1952 bytes
|
||||
Statement Heap/Lookaside Usage: 2528 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 4
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 2528
|
||||
Bytes received by read(): 9877
|
||||
Bytes sent to write(): 10370
|
||||
Read() system calls: 30
|
||||
Write() system calls: 8
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
|
||||
WARNING: writing to an imposter table will corrupt the "t1bc" index!
|
||||
Braun|30|3
|
||||
Wernher|10|1
|
||||
von|20|2
|
||||
Memory Used: 100144 (max 112216) bytes
|
||||
Number of Outstanding Allocations: 194 (max 213)
|
||||
Number of Pcache Overflow Bytes: 34112 (max 34112) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4360 bytes
|
||||
Lookaside Slots Used: 48 (max 100)
|
||||
Successful lookaside attempts: 640
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 31528 bytes
|
||||
Page cache hits: 2
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Schema Heap Usage: 2496 bytes
|
||||
Statement Heap/Lookaside Usage: 4752 bytes
|
||||
Fullscan Steps: 2
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 21
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 4752
|
||||
Bytes received by read(): 9975
|
||||
Bytes sent to write(): 11818
|
||||
Read() system calls: 32
|
||||
Write() system calls: 10
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Braun|30
|
||||
Wernher|10
|
||||
von|20
|
||||
Memory Used: 100168 (max 112216) bytes
|
||||
Number of Outstanding Allocations: 195 (max 213)
|
||||
Number of Pcache Overflow Bytes: 34112 (max 34112) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4360 bytes
|
||||
Lookaside Slots Used: 48 (max 100)
|
||||
Successful lookaside attempts: 679
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 31528 bytes
|
||||
Page cache hits: 1
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Schema Heap Usage: 2520 bytes
|
||||
Statement Heap/Lookaside Usage: 4752 bytes
|
||||
Fullscan Steps: 2
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 19
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 4752
|
||||
Bytes received by read(): 10074
|
||||
Bytes sent to write(): 13152
|
||||
Read() system calls: 34
|
||||
Write() system calls: 11
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
Memory Used: 80568 (max 80568) bytes
|
||||
Number of Outstanding Allocations: 168 (max 168)
|
||||
Number of Pcache Overflow Bytes: 16944 (max 16944) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4368 bytes
|
||||
Lookaside Slots Used: 55 (max 91)
|
||||
Successful lookaside attempts: 149
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 18512 bytes
|
||||
Page cache hits: 0
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Temporary data spilled to disk: 0
|
||||
Schema Heap Usage: 944 bytes
|
||||
Statement Heap/Lookaside Usage: 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(): 9624
|
||||
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: 93176 (max 98808) bytes
|
||||
Number of Outstanding Allocations: 192 (max 203)
|
||||
Number of Pcache Overflow Bytes: 25408 (max 25408) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4368 bytes
|
||||
Lookaside Slots Used: 51 (max 100)
|
||||
Successful lookaside attempts: 217
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 22864 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: 1176 bytes
|
||||
Statement Heap/Lookaside Usage: 2320 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: 2320
|
||||
Bytes received by read(): 9718
|
||||
Bytes sent to write(): 1330
|
||||
Read() system calls: 16
|
||||
Write() system calls: 1
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 90864 (max 98808) bytes
|
||||
Number of Outstanding Allocations: 181 (max 203)
|
||||
Number of Pcache Overflow Bytes: 25408 (max 25408) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4368 bytes
|
||||
Lookaside Slots Used: 69 (max 106)
|
||||
Successful lookaside attempts: 293
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 22864 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: 1184 bytes
|
||||
Statement Heap/Lookaside Usage: 11952 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 45
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 11952
|
||||
Bytes received by read(): 9815
|
||||
Bytes sent to write(): 2666
|
||||
Read() system calls: 18
|
||||
Write() system calls: 2
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 97848 (max 103480) bytes
|
||||
Number of Outstanding Allocations: 202 (max 217)
|
||||
Number of Pcache Overflow Bytes: 29776 (max 29776) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4368 bytes
|
||||
Lookaside Slots Used: 51 (max 106)
|
||||
Successful lookaside attempts: 361
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 27216 bytes
|
||||
Page cache hits: 3
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Temporary data spilled to disk: 0
|
||||
Schema Heap Usage: 1448 bytes
|
||||
Statement Heap/Lookaside Usage: 2352 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 28
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 2352
|
||||
Bytes received by read(): 9912
|
||||
Bytes sent to write(): 4004
|
||||
Read() system calls: 20
|
||||
Write() system calls: 3
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 95504 (max 103480) bytes
|
||||
Number of Outstanding Allocations: 191 (max 217)
|
||||
Number of Pcache Overflow Bytes: 29776 (max 29776) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4368 bytes
|
||||
Lookaside Slots Used: 60 (max 106)
|
||||
Successful lookaside attempts: 383
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 27216 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: 1456 bytes
|
||||
Statement Heap/Lookaside Usage: 3296 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 16
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 3296
|
||||
Bytes received by read(): 10009
|
||||
Bytes sent to write(): 5341
|
||||
Read() system calls: 22
|
||||
Write() system calls: 4
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 95504 (max 103480) bytes
|
||||
Number of Outstanding Allocations: 191 (max 217)
|
||||
Number of Pcache Overflow Bytes: 29776 (max 29776) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4368 bytes
|
||||
Lookaside Slots Used: 60 (max 106)
|
||||
Successful lookaside attempts: 405
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 27216 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: 1456 bytes
|
||||
Statement Heap/Lookaside Usage: 3296 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 16
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 3296
|
||||
Bytes received by read(): 10107
|
||||
Bytes sent to write(): 6679
|
||||
Read() system calls: 24
|
||||
Write() system calls: 5
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 95504 (max 103480) bytes
|
||||
Number of Outstanding Allocations: 191 (max 217)
|
||||
Number of Pcache Overflow Bytes: 29776 (max 29776) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4368 bytes
|
||||
Lookaside Slots Used: 60 (max 106)
|
||||
Successful lookaside attempts: 427
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 27216 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: 1456 bytes
|
||||
Statement Heap/Lookaside Usage: 3296 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 16
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 3296
|
||||
Bytes received by read(): 10205
|
||||
Bytes sent to write(): 8017
|
||||
Read() system calls: 26
|
||||
Write() system calls: 6
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 102720 (max 112448) bytes
|
||||
Number of Outstanding Allocations: 209 (max 221)
|
||||
Number of Pcache Overflow Bytes: 34144 (max 34144) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4368 bytes
|
||||
Lookaside Slots Used: 51 (max 106)
|
||||
Successful lookaside attempts: 500
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 31568 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: 1664 bytes
|
||||
Statement Heap/Lookaside Usage: 2576 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 1
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 56
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 2576
|
||||
Bytes received by read(): 10303
|
||||
Bytes sent to write(): 9355
|
||||
Read() system calls: 28
|
||||
Write() system calls: 7
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 100080 (max 112448) bytes
|
||||
Number of Outstanding Allocations: 194 (max 221)
|
||||
Number of Pcache Overflow Bytes: 34144 (max 34144) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4368 bytes
|
||||
Lookaside Slots Used: 54 (max 106)
|
||||
Successful lookaside attempts: 505
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 31568 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: 1664 bytes
|
||||
Statement Heap/Lookaside Usage: 2528 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 5
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 2528
|
||||
Bytes received by read(): 10401
|
||||
Bytes sent to write(): 10694
|
||||
Read() system calls: 30
|
||||
Write() system calls: 8
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
|
||||
Braun|30|3
|
||||
Wernher|10|1
|
||||
von|20|2
|
||||
Memory Used: 100560 (max 112448) bytes
|
||||
Number of Outstanding Allocations: 204 (max 221)
|
||||
Number of Pcache Overflow Bytes: 34144 (max 34144) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4368 bytes
|
||||
Lookaside Slots Used: 61 (max 106)
|
||||
Successful lookaside attempts: 618
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 31568 bytes
|
||||
Page cache hits: 2
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Temporary data spilled to disk: 0
|
||||
Schema Heap Usage: 2144 bytes
|
||||
Statement Heap/Lookaside Usage: 4368 bytes
|
||||
Fullscan Steps: 2
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 21
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 4368
|
||||
Bytes received by read(): 10500
|
||||
Bytes sent to write(): 12115
|
||||
Read() system calls: 32
|
||||
Write() system calls: 10
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Braun|30
|
||||
Wernher|10
|
||||
von|20
|
||||
Memory Used: 100568 (max 112448) bytes
|
||||
Number of Outstanding Allocations: 205 (max 221)
|
||||
Number of Pcache Overflow Bytes: 34144 (max 34144) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4368 bytes
|
||||
Lookaside Slots Used: 62 (max 106)
|
||||
Successful lookaside attempts: 655
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 31568 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: 2152 bytes
|
||||
Statement Heap/Lookaside Usage: 4496 bytes
|
||||
Fullscan Steps: 2
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 19
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 4496
|
||||
Bytes received by read(): 10600
|
||||
Bytes sent to write(): 13489
|
||||
Read() system calls: 34
|
||||
Write() system calls: 11
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
@@ -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
|
||||
BEGIN DEFERRED TRANSACTION;
|
||||
.shell pwd
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b REAL
|
||||
);
|
||||
INSERT INTO T VALUES (NULL,1.5), (2,-7.25), (3,0.0);
|
||||
SELECT a,b FROM T WHERE +a >= 2 ORDER BY b;
|
||||
SAVEPOINT sp9376;
|
||||
SELECT exp(0)x0ACB29BM205381;
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
ROLLBACK TO sp9376;
|
||||
RELEASE sp9376;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T_8559 AFTER UPDATE ON T BEGIN INSERT INTO T(a) VALUES (NULL); END;
|
||||
SELECT GROUP_CONCAT(b) OVER (ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T;
|
||||
INSERT INTO T VALUES (NULL, NULL);
|
||||
END;
|
||||
PRAGMA automatic_index = OFF;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
/fuzzer
|
||||
2|-7.25
|
||||
3|0.0
|
||||
1.0
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.39.0
|
||||
3
|
||||
-7.25
|
||||
-7.25,0.0
|
||||
-7.25,0.0,1.5
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
/fuzzer
|
||||
2|-7.25
|
||||
3|0.0
|
||||
1.0
|
||||
0
|
||||
0
|
||||
ATOMIC_INTRINSICS=1
|
||||
3.51.1
|
||||
3
|
||||
-7.25
|
||||
-7.25,0.0
|
||||
-7.25,0.0,1.5
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
@@ -0,0 +1,777 @@
|
||||
## 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 REAL,
|
||||
c REAL
|
||||
);
|
||||
INSERT INTO T VALUES (x'3572322269d7',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;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
CREATE TABLE 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
|
||||
.limit COLUMN -jsonb_replace(x'606c0de7fb1f7e9901fff8a917ca96f0', '$.key', abs('123'))
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b REAL,
|
||||
c REAL
|
||||
);
|
||||
INSERT INTO T VALUES (-CAST(-NULL AS CHAR(10)),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;
|
||||
PRAGMA parser_trace = TRUE;
|
||||
CREATE TABLE main.t1(a INTEGER, b INTEGER, c INTEGER);
|
||||
INSERT INTO t1 VALUES(2147483646, 1, 1);
|
||||
INSERT INTO t1 VALUES(1, 2, 2);
|
||||
SELECT c, sum(c) OVER win1 FROM t1 WINDOW win1 AS (ORDER BY b);
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT TOTAL(c) FROM t1;
|
||||
DELETE FROM t1 WHERE NOT b > (SELECT AVG(b) FROM t1);
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
SELECT GROUP_CONCAT(a) FROM t1;
|
||||
UPDATE t1 SET c = -71 RETURNING *;
|
||||
SELECT * FROM T AS a JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T AS a JOIN T AS b ON a.rowid = b.rowid;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR ROLLBACK INTO T VALUES (4, 0, '');
|
||||
UPDATE t1 SET a = '' WHERE a BETWEEN 0 AND 100;
|
||||
PRAGMA auto_vacuum = 0;
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
REINDEX t1;
|
||||
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
|
||||
WITH cte AS (SELECT b FROM t1 WHERE b IS NULL) SELECT * FROM cte;
|
||||
END TRANSACTION;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
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
|
||||
.limit COLUMN -jsonb_replace(x'606c0de7fb1f7e9901fff8a917ca96f0', '$.key', abs('123'))
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b REAL,
|
||||
c REAL
|
||||
);
|
||||
INSERT INTO T VALUES (-CAST(-NULL AS CHAR(10)),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;
|
||||
PRAGMA parser_trace = TRUE;
|
||||
CREATE TABLE main.t1(a INTEGER, b INTEGER, c INTEGER);
|
||||
INSERT INTO t1 VALUES(2147483646, 1, 1);
|
||||
INSERT INTO t1 VALUES(1, 2, 2);
|
||||
SELECT c, sum(c) OVER win1 FROM t1 WINDOW win1 AS (ORDER BY b);
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT TOTAL(c) FROM t1;
|
||||
DELETE FROM t1 WHERE NOT b > (SELECT AVG(b) FROM t1);
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
SELECT GROUP_CONCAT(a) FROM t1;
|
||||
UPDATE t1 SET c = -71 RETURNING *;
|
||||
SELECT * FROM T AS a JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T AS a JOIN T AS b ON a.rowid = b.rowid;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR ROLLBACK INTO T VALUES (4, 0, '');
|
||||
UPDATE t1 SET a = '' WHERE a BETWEEN 0 AND 100;
|
||||
PRAGMA auto_vacuum = 0;
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
REINDEX t1;
|
||||
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
|
||||
WITH cte AS (SELECT b FROM t1 WHERE b IS NULL) SELECT * FROM cte;
|
||||
END TRANSACTION;
|
||||
|
||||
PRAGMA table_info(users);
|
||||
SELECT * FROM t1;
|
||||
WITH cte AS (SELECT b FROM t1) SELECT * FROM cte;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
CREATE TABLE 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
|
||||
.limit COLUMN -jsonb_replace(x'606c0de7fb1f7e9901fff8a917ca96f0', '$.key', abs('123'))
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b REAL,
|
||||
c REAL
|
||||
);
|
||||
INSERT INTO T VALUES (-CAST(-NULL AS CHAR(10)),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;
|
||||
PRAGMA parser_trace = TRUE;
|
||||
CREATE TABLE main.t1(a INTEGER, b INTEGER, c INTEGER);
|
||||
INSERT INTO t1 VALUES(2147483646, 1, 1);
|
||||
INSERT INTO t1 VALUES(1, 2, 2);
|
||||
SELECT c, sum(c) OVER win1 FROM t1 WINDOW win1 AS (ORDER BY b);
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT TOTAL(c) FROM t1;
|
||||
DELETE FROM t1 WHERE NOT b > (SELECT AVG(b) FROM t1);
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
SELECT GROUP_CONCAT(a) FROM t1;
|
||||
UPDATE t1 SET c = -71 RETURNING *;
|
||||
SELECT * FROM T AS a JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T AS a JOIN T AS b ON a.rowid = b.rowid;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR ROLLBACK INTO T VALUES (4, 0, '');
|
||||
UPDATE t1 SET a = '' WHERE a BETWEEN 0 AND 100;
|
||||
PRAGMA auto_vacuum = 0;
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
REINDEX t1;
|
||||
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
|
||||
WITH cte AS (SELECT b FROM t1 WHERE b IS NULL) SELECT * FROM cte;
|
||||
END TRANSACTION;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
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
|
||||
.limit COLUMN -jsonb_replace(x'606c0de7fb1f7e9901fff8a917ca96f0', '$.key', abs('123'))
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b REAL,
|
||||
c REAL
|
||||
);
|
||||
INSERT INTO T VALUES (-CAST(-NULL AS CHAR(10)),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;
|
||||
PRAGMA parser_trace = TRUE;
|
||||
CREATE TABLE main.t1(a INTEGER, b INTEGER, c INTEGER);
|
||||
INSERT INTO t1 VALUES(2147483646, 1, 1);
|
||||
INSERT INTO t1 VALUES(1, 2, 2);
|
||||
SELECT c, sum(c) OVER win1 FROM t1 WINDOW win1 AS (ORDER BY b);
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT TOTAL(c) FROM t1;
|
||||
DELETE FROM t1 WHERE NOT b > (SELECT AVG(b) FROM t1);
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
SELECT GROUP_CONCAT(a) FROM t1;
|
||||
UPDATE t1 SET c = -71 RETURNING *;
|
||||
SELECT * FROM T AS a JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T AS a JOIN T AS b ON a.rowid = b.rowid;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR ROLLBACK INTO T VALUES (4, 0, '');
|
||||
UPDATE t1 SET a = '' WHERE a BETWEEN 0 AND 100;
|
||||
PRAGMA auto_vacuum = 0;
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
REINDEX t1;
|
||||
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
|
||||
WITH cte AS (SELECT b FROM t1 WHERE b IS NULL) SELECT * FROM cte;
|
||||
END TRANSACTION;
|
||||
|
||||
PRAGMA table_info(users);
|
||||
SELECT * FROM t1;
|
||||
WITH cte AS (SELECT b FROM t1) SELECT * FROM cte;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
CREATE TABLE 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
|
||||
.limit COLUMN -jsonb_replace(x'606c0de7fb1f7e9901fff8a917ca96f0', '$.key', abs('123'))
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b REAL,
|
||||
c REAL
|
||||
);
|
||||
INSERT INTO T VALUES (-CAST(-NULL AS CHAR(10)),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;
|
||||
PRAGMA parser_trace = TRUE;
|
||||
CREATE TABLE main.t1(a INTEGER, b INTEGER, c INTEGER);
|
||||
INSERT INTO t1 VALUES(2147483646, 1, 1);
|
||||
INSERT INTO t1 VALUES(1, 2, 2);
|
||||
SELECT c, sum(c) OVER win1 FROM t1 WINDOW win1 AS (ORDER BY b);
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT TOTAL(c) FROM t1;
|
||||
DELETE FROM t1 WHERE NOT b > (SELECT AVG(b) FROM t1);
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
SELECT GROUP_CONCAT(a) FROM t1;
|
||||
UPDATE t1 SET c = -71 RETURNING *;
|
||||
SELECT * FROM T AS a JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T AS a JOIN T AS b ON a.rowid = b.rowid;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR ROLLBACK INTO T VALUES (4, 0, '');
|
||||
UPDATE t1 SET a = '' WHERE a BETWEEN 0 AND 100;
|
||||
PRAGMA auto_vacuum = 0;
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
REINDEX t1;
|
||||
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
|
||||
WITH cte AS (SELECT b FROM t1 WHERE b IS NULL) SELECT * FROM cte;
|
||||
END TRANSACTION;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
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
|
||||
.limit COLUMN -jsonb_replace(x'606c0de7fb1f7e9901fff8a917ca96f0', '$.key', abs('123'))
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b REAL,
|
||||
c REAL
|
||||
);
|
||||
INSERT INTO T VALUES (-CAST(-NULL AS CHAR(10)),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;
|
||||
PRAGMA parser_trace = TRUE;
|
||||
CREATE TABLE main.t1(a INTEGER, b INTEGER, c INTEGER);
|
||||
INSERT INTO t1 VALUES(2147483646, 1, 1);
|
||||
INSERT INTO t1 VALUES(1, 2, 2);
|
||||
SELECT c, sum(c) OVER win1 FROM t1 WINDOW win1 AS (ORDER BY b);
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT TOTAL(c) FROM t1;
|
||||
DELETE FROM t1 WHERE NOT b > (SELECT AVG(b) FROM t1);
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
SELECT GROUP_CONCAT(a) FROM t1;
|
||||
UPDATE t1 SET c = -71 RETURNING *;
|
||||
SELECT * FROM T AS a JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T AS a JOIN T AS b ON a.rowid = b.rowid;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR ROLLBACK INTO T VALUES (4, 0, '');
|
||||
UPDATE t1 SET a = '' WHERE a BETWEEN 0 AND 100;
|
||||
PRAGMA auto_vacuum = 0;
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
REINDEX t1;
|
||||
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
|
||||
WITH cte AS (SELECT b FROM t1 WHERE b IS NULL) SELECT * FROM cte;
|
||||
END TRANSACTION;
|
||||
|
||||
PRAGMA table_info(users);
|
||||
SELECT * FROM t1;
|
||||
WITH cte AS (SELECT b FROM t1) SELECT * FROM cte;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
CREATE TABLE 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
|
||||
.limit COLUMN -jsonb_replace(x'606c0de7fb1f7e9901fff8a917ca96f0', '$.key', abs('123'))
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b REAL,
|
||||
c REAL
|
||||
);
|
||||
INSERT INTO T VALUES (-CAST(-NULL AS CHAR(10)),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;
|
||||
PRAGMA parser_trace = TRUE;
|
||||
CREATE TABLE main.t1(a INTEGER, b INTEGER, c INTEGER);
|
||||
INSERT INTO t1 VALUES(2147483646, 1, 1);
|
||||
INSERT INTO t1 VALUES(1, 2, 2);
|
||||
SELECT c, sum(c) OVER win1 FROM t1 WINDOW win1 AS (ORDER BY b);
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT TOTAL(c) FROM t1;
|
||||
DELETE FROM t1 WHERE NOT b > (SELECT AVG(b) FROM t1);
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
SELECT GROUP_CONCAT(a) FROM t1;
|
||||
UPDATE t1 SET c = -71 RETURNING *;
|
||||
SELECT * FROM T AS a JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T AS a JOIN T AS b ON a.rowid = b.rowid;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR ROLLBACK INTO T VALUES (4, 0, '');
|
||||
UPDATE t1 SET a = '' WHERE a BETWEEN 0 AND 100;
|
||||
PRAGMA auto_vacuum = 0;
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
REINDEX t1;
|
||||
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
|
||||
WITH cte AS (SELECT b FROM t1 WHERE b IS NULL) SELECT * FROM cte;
|
||||
END TRANSACTION;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
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
|
||||
.limit COLUMN -jsonb_replace(x'606c0de7fb1f7e9901fff8a917ca96f0', '$.key', abs('123'))
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b REAL,
|
||||
c REAL
|
||||
);
|
||||
INSERT INTO T VALUES (-CAST(-NULL AS CHAR(10)),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;
|
||||
PRAGMA parser_trace = TRUE;
|
||||
CREATE TABLE main.t1(a INTEGER, b INTEGER, c INTEGER);
|
||||
INSERT INTO t1 VALUES(2147483646, 1, 1);
|
||||
INSERT INTO t1 VALUES(1, 2, 2);
|
||||
SELECT c, sum(c) OVER win1 FROM t1 WINDOW win1 AS (ORDER BY b);
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT TOTAL(c) FROM t1;
|
||||
DELETE FROM t1 WHERE NOT b > (SELECT AVG(b) FROM t1);
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
SELECT GROUP_CONCAT(a) FROM t1;
|
||||
UPDATE t1 SET c = -71 RETURNING *;
|
||||
SELECT * FROM T AS a JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T AS a JOIN T AS b ON a.rowid = b.rowid;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR ROLLBACK INTO T VALUES (4, 0, '');
|
||||
UPDATE t1 SET a = '' WHERE a BETWEEN 0 AND 100;
|
||||
PRAGMA auto_vacuum = 0;
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
REINDEX t1;
|
||||
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
|
||||
WITH cte AS (SELECT b FROM t1 WHERE b IS NULL) SELECT * FROM cte;
|
||||
END TRANSACTION;
|
||||
|
||||
PRAGMA table_info(users);
|
||||
SELECT * FROM t1;
|
||||
WITH cte AS (SELECT b FROM t1) SELECT * FROM cte;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
CREATE TABLE 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
|
||||
.limit COLUMN -jsonb_replace(x'606c0de7fb1f7e9901fff8a917ca96f0', '$.key', abs('123'))
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b REAL,
|
||||
c REAL
|
||||
);
|
||||
INSERT INTO T VALUES (-CAST(-NULL AS CHAR(10)),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;
|
||||
PRAGMA parser_trace = TRUE;
|
||||
CREATE TABLE main.t1(a INTEGER, b INTEGER, c INTEGER);
|
||||
INSERT INTO t1 VALUES(2147483646, 1, 1);
|
||||
INSERT INTO t1 VALUES(1, 2, 2);
|
||||
SELECT c, sum(c) OVER win1 FROM t1 WINDOW win1 AS (ORDER BY b);
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT TOTAL(c) FROM t1;
|
||||
DELETE FROM t1 WHERE NOT b > (SELECT AVG(b) FROM t1);
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
SELECT GROUP_CONCAT(a) FROM t1;
|
||||
UPDATE t1 SET c = -71 RETURNING *;
|
||||
SELECT * FROM T AS a JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T AS a JOIN T AS b ON a.rowid = b.rowid;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR ROLLBACK INTO T VALUES (4, 0, '');
|
||||
UPDATE t1 SET a = '' WHERE a BETWEEN 0 AND 100;
|
||||
PRAGMA auto_vacuum = 0;
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
REINDEX t1;
|
||||
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
|
||||
WITH cte AS (SELECT b FROM t1 WHERE b IS NULL) SELECT * FROM cte;
|
||||
END TRANSACTION;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
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
|
||||
.limit COLUMN -jsonb_replace(x'606c0de7fb1f7e9901fff8a917ca96f0', '$.key', abs('123'))
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b REAL,
|
||||
c REAL
|
||||
);
|
||||
INSERT INTO T VALUES (-CAST(-NULL AS CHAR(10)),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;
|
||||
PRAGMA parser_trace = TRUE;
|
||||
CREATE TABLE main.t1(a INTEGER, b INTEGER, c INTEGER);
|
||||
INSERT INTO t1 VALUES(2147483646, 1, 1);
|
||||
INSERT INTO t1 VALUES(1, 2, 2);
|
||||
SELECT c, sum(c) OVER win1 FROM t1 WINDOW win1 AS (ORDER BY b);
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT TOTAL(c) FROM t1;
|
||||
DELETE FROM t1 WHERE NOT b > (SELECT AVG(b) FROM t1);
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
SELECT GROUP_CONCAT(a) FROM t1;
|
||||
UPDATE t1 SET c = -71 RETURNING *;
|
||||
SELECT * FROM T AS a JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T AS a JOIN T AS b ON a.rowid = b.rowid;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR ROLLBACK INTO T VALUES (4, 0, '');
|
||||
UPDATE t1 SET a = '' WHERE a BETWEEN 0 AND 100;
|
||||
PRAGMA auto_vacuum = 0;
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
REINDEX t1;
|
||||
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
|
||||
WITH cte AS (SELECT b FROM t1 WHERE b IS NULL) SELECT * FROM cte;
|
||||
END TRANSACTION;
|
||||
|
||||
PRAGMA table_info(users);
|
||||
SELECT * FROM t1;
|
||||
WITH cte AS (SELECT b FROM t1) SELECT * FROM cte;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
CREATE TABLE 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
|
||||
.limit COLUMN -jsonb_replace(x'606c0de7fb1f7e9901fff8a917ca96f0', '$.key', abs('123'))
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b REAL,
|
||||
c REAL
|
||||
);
|
||||
INSERT INTO T VALUES (-CAST(-NULL AS CHAR(10)),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;
|
||||
PRAGMA parser_trace = TRUE;
|
||||
CREATE TABLE main.t1(a INTEGER, b INTEGER, c INTEGER);
|
||||
INSERT INTO t1 VALUES(2147483646, 1, 1);
|
||||
INSERT INTO t1 VALUES(1, 2, 2);
|
||||
SELECT c, sum(c) OVER win1 FROM t1 WINDOW win1 AS (ORDER BY b);
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT TOTAL(c) FROM t1;
|
||||
DELETE FROM t1 WHERE NOT b > (SELECT AVG(b) FROM t1);
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
SELECT GROUP_CONCAT(a) FROM t1;
|
||||
UPDATE t1 SET c = -71 RETURNING *;
|
||||
SELECT * FROM T AS a JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T AS a JOIN T AS b ON a.rowid = b.rowid;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR ROLLBACK INTO T VALUES (4, 0, '');
|
||||
UPDATE t1 SET a = '' WHERE a BETWEEN 0 AND 100;
|
||||
PRAGMA auto_vacuum = 0;
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
REINDEX t1;
|
||||
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
|
||||
WITH cte AS (SELECT b FROM t1 WHERE b IS NULL) SELECT * FROM cte;
|
||||
END TRANSACTION;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
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
|
||||
.limit COLUMN -jsonb_replace(x'606c0de7fb1f7e9901fff8a917ca96f0', '$.key', abs('123'))
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b REAL,
|
||||
c REAL
|
||||
);
|
||||
INSERT INTO T VALUES (-CAST(-NULL AS CHAR(10)),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;
|
||||
PRAGMA parser_trace = TRUE;
|
||||
CREATE TABLE main.t1(a INTEGER, b INTEGER, c INTEGER);
|
||||
INSERT INTO t1 VALUES(2147483646, 1, 1);
|
||||
INSERT INTO t1 VALUES(1, 2, 2);
|
||||
SELECT c, sum(c) OVER win1 FROM t1 WINDOW win1 AS (ORDER BY b);
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT TOTAL(c) FROM t1;
|
||||
DELETE FROM t1 WHERE NOT b > (SELECT AVG(b) FROM t1);
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
SELECT GROUP_CONCAT(a) FROM t1;
|
||||
UPDATE t1 SET c = -71 RETURNING *;
|
||||
SELECT * FROM T AS a JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T AS a JOIN T AS b ON a.rowid = b.rowid;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR ROLLBACK INTO T VALUES (4, 0, '');
|
||||
UPDATE t1 SET a = '' WHERE a BETWEEN 0 AND 100;
|
||||
PRAGMA auto_vacuum = 0;
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
REINDEX t1;
|
||||
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
|
||||
WITH cte AS (SELECT b FROM t1 WHERE b IS NULL) SELECT * FROM cte;
|
||||
END TRANSACTION;
|
||||
|
||||
PRAGMA table_info(users);
|
||||
SELECT * FROM t1;
|
||||
WITH cte AS (SELECT b FROM t1) SELECT * FROM cte;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
CREATE TABLE 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
|
||||
.limit COLUMN -jsonb_replace(x'606c0de7fb1f7e9901fff8a917ca96f0', '$.key', abs('123'))
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b REAL,
|
||||
c REAL
|
||||
);
|
||||
INSERT INTO T VALUES (-CAST(-NULL AS CHAR(10)),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;
|
||||
PRAGMA parser_trace = TRUE;
|
||||
CREATE TABLE main.t1(a INTEGER, b INTEGER, c INTEGER);
|
||||
INSERT INTO t1 VALUES(2147483646, 1, 1);
|
||||
INSERT INTO t1 VALUES(1, 2, 2);
|
||||
SELECT c, sum(c) OVER win1 FROM t1 WINDOW win1 AS (ORDER BY b);
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT TOTAL(c) FROM t1;
|
||||
DELETE FROM t1 WHERE NOT b > (SELECT AVG(b) FROM t1);
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
SELECT GROUP_CONCAT(a) FROM t1;
|
||||
UPDATE t1 SET c = -71 RETURNING *;
|
||||
SELECT * FROM T AS a JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T AS a JOIN T AS b ON a.rowid = b.rowid;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR ROLLBACK INTO T VALUES (4, 0, '');
|
||||
UPDATE t1 SET a = '' WHERE a BETWEEN 0 AND 100;
|
||||
PRAGMA auto_vacuum = 0;
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
REINDEX t1;
|
||||
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
|
||||
WITH cte AS (SELECT b FROM t1 WHERE b IS NULL) SELECT * FROM cte;
|
||||
END TRANSACTION;
|
||||
BEGIN EXCLUSIVE TRANSACTION;
|
||||
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
|
||||
.limit COLUMN -jsonb_replace(x'606c0de7fb1f7e9901fff8a917ca96f0', '$.key', abs('123'))
|
||||
CREATE TABLE T (
|
||||
a INTEGER,
|
||||
b REAL,
|
||||
c REAL
|
||||
);
|
||||
INSERT INTO T VALUES (-CAST(-NULL AS CHAR(10)),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;
|
||||
PRAGMA parser_trace = TRUE;
|
||||
CREATE TABLE main.t1(a INTEGER, b INTEGER, c INTEGER);
|
||||
INSERT INTO t1 VALUES(2147483646, 1, 1);
|
||||
INSERT INTO t1 VALUES(1, 2, 2);
|
||||
SELECT c, sum(c) OVER win1 FROM t1 WINDOW win1 AS (ORDER BY b);
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT TOTAL(c) FROM t1;
|
||||
DELETE FROM t1 WHERE NOT b > (SELECT AVG(b) FROM t1);
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
SELECT GROUP_CONCAT(a) FROM t1;
|
||||
UPDATE t1 SET c = -71 RETURNING *;
|
||||
SELECT * FROM T AS a JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
SELECT * FROM T AS a JOIN T AS b ON a.rowid = b.rowid;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT OR ROLLBACK INTO T VALUES (4, 0, '');
|
||||
UPDATE t1 SET a = '' WHERE a BETWEEN 0 AND 100;
|
||||
PRAGMA auto_vacuum = 0;
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
REINDEX t1;
|
||||
SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 WHERE 1/0 = 0);SELECT * FROM t1 WHERE a IN (SELECT a FROM t1 LIMIT -1);
|
||||
WITH cte AS (SELECT b FROM t1 WHERE b IS NULL) SELECT * FROM cte;
|
||||
END TRANSACTION;
|
||||
|
||||
PRAGMA table_info(users);
|
||||
SELECT * FROM t1;
|
||||
WITH cte AS (SELECT b FROM t1) SELECT * FROM cte;
|
||||
|
||||
SELECT * FROM t1 AS a INNER JOIN T AS b ON a.rowid = b.rowid;
|
||||
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;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
INSERT OR FAIL INTO T VALUES ('x', '', '');
|
||||
WITH RECURSIVE r AS (SELECT a FROM T UNION ALL SELECT a FROM T LIMIT 5) SELECT * FROM r;
|
||||
CREATE INDEX IF NOT EXISTS idx_T_7429 ON T(a) WHERE a IS NOT NULL;
|
||||
DELETE FROM T WHERE rowid = 95 RETURNING *;
|
||||
REINDEX;
|
||||
INSERT OR ABORT INTO t1 VALUES ('', NULL, 'x');
|
||||
SELECT * FROM T AS a JOIN T AS b ON a.rowid = b.rowid;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
1|-70.875
|
||||
2|-Inf
|
||||
5r2"i×|21.0
|
||||
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
|
||||
WARNING: writing to an imposter table will corrupt the "t1bc" index!
|
||||
Braun|30|3
|
||||
Wernher|10|2147483647
|
||||
von|20|2
|
||||
Braun|30
|
||||
Wernher|10
|
||||
von|20
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
1|-70.875
|
||||
2|-Inf
|
||||
5r2"i×|21.0
|
||||
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
|
||||
Braun|30|3
|
||||
Wernher|10|2147483647
|
||||
von|20|2
|
||||
Braun|30
|
||||
Wernher|10
|
||||
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
|
||||
((PRAGMA)) checkpoint_fullsync = TRUE;
|
||||
PRAGMA writable_schema = OFF;
|
||||
PRAGMA foreign_keys = 0;
|
||||
.nonce 202cc246-5d25-4977-ac39-9f1516ae7f5e
|
||||
CREATE TABLE T1 (
|
||||
A VARCHAR(20),
|
||||
X VARCHAR(10),
|
||||
PRIMARY KEY (A, X)
|
||||
);
|
||||
CREATE TABLE T2 (
|
||||
A VARCHAR(20),
|
||||
Y VARCHAR(10),
|
||||
PRIMARY KEY (A, Y)
|
||||
);
|
||||
INSERT INTO T1 VALUES ('a', 'm');
|
||||
INSERT INTO T1 VALUES ('b', 'n');
|
||||
INSERT INTO T1 VALUES ('c', 'o');
|
||||
INSERT INTO T2 VALUES ('b', 'k');
|
||||
SELECT A FROM T1 EXCEPT SELECT A FROM T2;
|
||||
SELECT * FROM T1 WHERE X IN (SELECT X FROM T1 ORDER BY X LIMIT 1 OFFSET 1000);
|
||||
```
|
||||
|
||||
## 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
|
||||
```
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,52 @@
|
||||
## Summary
|
||||
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
|
||||
|
||||
## Minimized query
|
||||
|
||||
```sql
|
||||
PRAGMA index_xinfo(idx1);
|
||||
PRAGMA temp_store = 'DEFAULT';
|
||||
PRAGMA auto_vacuum = FULL;
|
||||
PRAGMA secure_delete = NO;
|
||||
.version
|
||||
CREATE TABLE t16a(a TEXT, b REAL, c INT, PRIMARY KEY(a,b)) WITHOUT rowid;
|
||||
INSERT INTO t16a VALUES('abc',x'33a2b38d306171',-4992210527584495886);
|
||||
ALTER TABLE t16a ADD COLUMN d TEXT DEFAULT 'xyzzy';
|
||||
INSERT INTO t16a VALUES('cba',5.5,98,'fizzle');
|
||||
SELECT * FROM t16a ORDER BY a;
|
||||
ALTER TABLE t16a RENAME TO t16a_rn;
|
||||
SELECT * FROM t16a_rn ORDER BY a;
|
||||
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
0
|
||||
SQLite 3.39.0 2022-05-10 23:28:12 764b71267e0b31ff7eaf2a0def7526a1a02dce4d5b456dea060d97ed342ealt1
|
||||
gcc-14.2.0
|
||||
abc|3¢³0aq|-4992210527584495886|xyzzy
|
||||
cba|5.5|98|fizzle
|
||||
abc|3¢³0aq|-4992210527584495886|xyzzy
|
||||
cba|5.5|98|fizzle
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
0
|
||||
SQLite 3.51.1 2025-11-28 17:28:25 281fc0e9afc38674b9b0991943b9e9d1e64c6cbdb133d35f6f5c87ff6af38a88
|
||||
zlib version 1.3.1
|
||||
gcc-11.4.0 (64-bit)
|
||||
abc|3¢³0aq|-4992210527584495886|xyzzy
|
||||
cba|5.5|98|fizzle
|
||||
abc|3¢³0aq|-4992210527584495886|xyzzy
|
||||
cba|5.5|98|fizzle
|
||||
```
|
||||
|
||||
## 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
|
||||
PRAGMA legacy_alter_table = ON;
|
||||
CREATE TABLE t1(a DOUB PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (-(-(NULL)), 'Wernher', json_quote(123), 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
BEGIN EXCLUSIVE;
|
||||
CREATE TABLE map_integer (id INT, name);
|
||||
INSERT INTO map_integer VALUES(lower('你好'),'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(3547739615393531126,'abc');
|
||||
INSERT INTO data VALUES('4','xyz');
|
||||
CREATE VIEW idmap as WITH _m AS MATERIALIZED (WITH _m AS MATERIALIZED (SELECT * FROM map_integer) SELECT * FROM map_text) SELECT * FROM _m UNION SELECT * FROM _m;
|
||||
CREATE TABLE mzed AS SELECT * FROM idmap;
|
||||
PRAGMA automatic_index=ON;
|
||||
SELECT * FROM data JOIN idmap USING(id);
|
||||
SELECT * FROM data AS a LEFT JOIN map_integer AS b ON a.rowid = b.rowid;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_map_integer_6193 AS SELECT name FROM map_integer;
|
||||
CREATE VIEW IF NOT EXISTS v_data_9060 AS SELECT name FROM data;
|
||||
INSERT INTO data SELECT * FROM data;
|
||||
PRAGMA ignore_check_constraints = 0;
|
||||
ALTER TABLE data ADD COLUMN extra_9221 TINYINT DEFAULT '';
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_map_text_5459 AS SELECT name FROM map_text;
|
||||
COMMIT;
|
||||
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;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_map_text_8647 AFTER DELETE ON map_text FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
SELECT NTH_VALUE(id, 0) OVER (PARTITION BY id ORDER BY id ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM map_integer;
|
||||
REINDEX map_integer;
|
||||
DELETE FROM map_integer WHERE NOT NOT (0) ;
|
||||
UPDATE map_text SET id = 'x' WHERE rowid = 1;
|
||||
DELETE FROM map_integer WHERE rowid = 41;
|
||||
CREATE VIEW IF NOT EXISTS v_data_9250 AS SELECT name FROM data;
|
||||
ALTER TABLE data DROP COLUMN id;
|
||||
CREATE TABLE T (
|
||||
A VARCHAR(10) PRIMARY KEY,
|
||||
B VARCHAR(15) NOT NULL,
|
||||
C INTEGER,
|
||||
UNIQUE (B, C)
|
||||
);
|
||||
INSERT INTO T VALUES ('a', 'p', -2147483648);
|
||||
INSERT INTO T VALUES ('b', 'q', 700);
|
||||
INSERT INTO T VALUES ('c', 'r', 0);
|
||||
INSERT INTO T VALUES ('d', 's', 2147483647);
|
||||
INSERT INTO T VALUES ('e', 't', -1);
|
||||
INSERT INTO T VALUES ('f', 'u', 1);
|
||||
SELECT * FROM T WHERE C BETWEEN -1000 AND 1000 ORDER BY C ASC;
|
||||
INSERT INTO map_text VALUES (1, 1) ON CONFLICT(id) DO UPDATE SET id = excluded.id, name = excluded.name;
|
||||
PRAGMA foreign_key_list(users);
|
||||
SELECT COUNT(*) FROM data;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_7942 AS SELECT C FROM T;
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_map_text_1196 ON map_text(id) WHERE id > 0;
|
||||
SELECT COUNT(C) FROM T;
|
||||
DELETE FROM T WHERE rowid = 20 RETURNING *;
|
||||
INSERT OR REPLACE INTO data VALUES (-8, 'x');
|
||||
SELECT * FROM map_text;
|
||||
```
|
||||
|
||||
## 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|123|1
|
||||
von|20|2
|
||||
Braun|30
|
||||
Wernher|123
|
||||
von|20
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
|
||||
Braun|30|3
|
||||
Wernher|123|1
|
||||
von|20|2
|
||||
Braun|30
|
||||
Wernher|123
|
||||
von|20
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
@@ -0,0 +1,610 @@
|
||||
## 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 REAL
|
||||
);
|
||||
INSERT INTO T VALUES (-CAST(sqlite_compileoption_get(0) AS NCHAR(55)),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;
|
||||
.width
|
||||
BEGIN EXCLUSIVE;
|
||||
SAVEPOINT sp6033;
|
||||
ATTACH DATABASE (':memory:' || '') AS aux49;
|
||||
PRAGMA trusted_schema;
|
||||
ATTACH DATABASE ':memory:' AS aux17;
|
||||
PRAGMA count_changes = OFF;
|
||||
ATTACH DATABASE ('' || '') || (':memory:') AS aux67;
|
||||
.check
|
||||
CREATE TABLE `T` (
|
||||
A VARCHAR(CAST(like(json_array(-trunc(json_quote('true'))), '') AS NUMERIC)) PRIMARY KEY,
|
||||
B VARCHAR(-(hex('') + unistr_quote(json_array_insert(9223372036854775807, '$.arr[0]', 9223372036854775807)) -> '$.a' -> '$.b')),
|
||||
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);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM T) SELEC_m /* .filectrl */ B, COUNT(*) AS D, SUM(C) AS E, AVG(C) AS F FROM T GROUP BY B HAVING SUM(C) > 0;
|
||||
DELETE FROM T WHERE NOT NOT (NOT NOT (0)) RETURNING *;
|
||||
DELETE FROM T WHERE +A > (SELECT AVG(A) FROM T);
|
||||
ANALYZE;
|
||||
DROP TABLE IF EXISTS T;
|
||||
SELECT * FROM (SELECT * FROM T) AS sub;
|
||||
UPDATE T SET A = NULL WHERE A BETWEEN 0 OR 100 RETURNING *;
|
||||
ANALYZE T;
|
||||
DETACH DATABASE aux67;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL);
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL);
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
PRAGMA temp_store = '1';
|
||||
PRAGMA temp_store = 'FILE';
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL);
|
||||
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;
|
||||
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;
|
||||
SELECT COUNT(*) FROM T;
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
SELECT COUNT(*) FROM T;
|
||||
SELECT * FROM T WHERE A = (SELECT MAX(A) FROM T WHERE A = (SELECT MAX(A) FROM T));
|
||||
PRAGMA synchronous;
|
||||
DETACH DATABASE aux17;
|
||||
DELETE FROM T WHERE 0 RETURNING *;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T_1028 BEFORE UPDATE OF C ON T FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA parser_trace = TRUE;
|
||||
WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM T WHERE C IN (SELECT x FROM cte);
|
||||
UPDATE T SET c = json_object('k', c) WHERE c IS NOT NULL;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_8093 AS SELECT a FROM 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;
|
||||
VACUUM;
|
||||
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;
|
||||
ALTER TABLE T RENAME TO T_r2091;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL);
|
||||
PRAGMA defer_foreign_keys = YES;
|
||||
DROP TRIGGER IF EXISTS T;
|
||||
UPDATE T SET a = CURRENT_TIMESTAMP WHERE a BETWEEN 0 AND 100;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T t2 WHERE t2.b = T.b);
|
||||
CREATE VIEW IF NOT EXISTS v_T_7910 AS SELECT a FROM T;
|
||||
WITH a AS (SELECT b FROM T), b AS (SELECT b FROM a), c AS (SELECT b FROM b) SELECT * FROM c;
|
||||
REINDEX;
|
||||
REINDEX T;
|
||||
VACUUM main;
|
||||
ALTER TABLE T DROP COLUMN c;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
SELECT * FROM T WHERE a < ALL (SELECT a FROM T);
|
||||
SELECT * FROM T;
|
||||
SELECT TOTAL(c) OVER (PARTITION BY c ORDER BY c ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
ANALYZE T;
|
||||
DETACH DATABASE aux49;
|
||||
SELECT AVG(c) FROM T;
|
||||
INSERT INTO T VALUES (1, 'x', NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
|
||||
SELECT * FROM T AS a JOIN T AS b ON a.rowid = b.rowid;
|
||||
ANALYZE T;
|
||||
ROLLBACK TO sp6033;
|
||||
RELEASE sp6033;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL);
|
||||
WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte;
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
SAVEPOINT sp6033;
|
||||
ATTACH DATABASE ':memory:' AS aux49;
|
||||
PRAGMA trusted_schema;
|
||||
ATTACH DATABASE ':memory:' AS aux17;
|
||||
PRAGMA count_changes = OFF;
|
||||
ATTACH DATABASE ('' || '') || (':memory:') AS aux67;
|
||||
.check
|
||||
CREATE TABLE `T` (
|
||||
A VARCHAR(CAST(like(json_array(-trunc(json_quote('true'))), '') AS NUMERIC)) PRIMARY KEY,
|
||||
B VARCHAR(-(hex('') + unistr_quote(json_array_insert(9223372036854775807, '$.arr[0]', 9223372036854775807)) -> '$.a' -> '$.b')),
|
||||
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);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM T) SELEC_m /* .filectrl */ B, COUNT(*) AS D, SUM(C) AS E, AVG(C) AS F FROM T GROUP BY B HAVING SUM(C) > 0;
|
||||
DELETE FROM T WHERE NOT NOT (NOT NOT (0)) RETURNING *;
|
||||
DELETE FROM T WHERE +A > (SELECT AVG(A) FROM T);
|
||||
ANALYZE;
|
||||
DROP TABLE IF EXISTS T;
|
||||
SELECT * FROM (SELECT * FROM T) AS sub;
|
||||
UPDATE T SET A = NULL WHERE A BETWEEN 0 AND 100 RETURNING *;
|
||||
ANALYZE T;
|
||||
DETACH DATABASE aux67;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL);
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL);
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
PRAGMA temp_store = '1';
|
||||
PRAGMA temp_store = 'FILE';
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL);
|
||||
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;
|
||||
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;
|
||||
SELECT COUNT(*) FROM T;
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
SELECT COUNT(*) FROM T;
|
||||
SELECT * FROM T WHERE A = (SELECT MAX(A) FROM T WHERE A = (SELECT MAX(A) FROM T));
|
||||
PRAGMA synchronous;
|
||||
DETACH DATABASE aux17;
|
||||
DELETE FROM T WHERE 0 RETURNING *;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T_1028 BEFORE UPDATE OF C ON T FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA parser_trace = TRUE;
|
||||
WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM T WHERE C IN (SELECT x FROM cte);
|
||||
UPDATE T SET c = json_object('k', c) WHERE c IS NOT NULL;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_8093 AS SELECT a FROM 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 /* abc */ T
|
||||
GROUP BY a;
|
||||
VACUUM;
|
||||
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;
|
||||
ALTER TABLE T RENAME TO T_r2091;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL);
|
||||
PRAGMA defer_foreign_keys = YES;
|
||||
DROP TRIGGER IF EXISTS T;
|
||||
UPDATE T SET a = CURRENT_TIMESTAMP WHERE a BETWEEN 0 AND 100;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T t2 WHERE t2.b = T.b);
|
||||
CREATE VIEW IF NOT EXISTS v_T_7910 AS SELECT a FROM T;
|
||||
WITH a AS (SELECT b FROM T), b AS (SELECT b FROM a), c AS (SELECT b FROM b) SELECT * FROM c;
|
||||
REINDEX;
|
||||
REINDEX T;
|
||||
VACUUM main;
|
||||
ALTER TABLE T DROP COLUMN c;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
SELECT * FROM T WHERE a < ALL (SELECT a FROM T);
|
||||
SELECT * FROM T;
|
||||
SELECT TOTAL(c) OVER (PARTITION BY c ORDER BY c ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
ANALYZE T;
|
||||
DETACH DATABASE aux49;
|
||||
SELECT AVG(c) FROM T;
|
||||
INSERT INTO T VALUES (1, 'x', NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
|
||||
SELECT * FROM T AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
ANALYZE T;
|
||||
ROLLBACK TO sp6033;
|
||||
RELEASE sp6033;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL);
|
||||
WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte;
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
SAVEPOINT sp6033;
|
||||
ATTACH DATABASE ':memory:' AS aux49;
|
||||
PRAGMA trusted_schema;
|
||||
ATTACH DATABASE ':memory:' AS aux17;
|
||||
PRAGMA count_changes = OFF;
|
||||
ATTACH DATABASE ('' || '') || (':memory:') AS aux67;
|
||||
.check
|
||||
CREATE TABLE `T` (
|
||||
A VARCHAR(CAST(like(json_array(-trunc(json_quote('true'))), '') AS NUMERIC)) PRIMARY KEY,
|
||||
B VARCHAR(-(hex('') + unistr_quote(json_array_insert(9223372036854775807, '$.arr[0]', 9223372036854775807)) -> '$.a' -> '$.b')),
|
||||
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);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM T) SELEC_m /* .filectrl */ B, COUNT(*) AS D, SUM(C) AS E, AVG(C) AS F FROM T GROUP BY B HAVING SUM(C) > 0;
|
||||
DELETE FROM T WHERE NOT NOT (NOT NOT (0)) RETURNING *;
|
||||
DELETE FROM T WHERE +A > (SELECT AVG(A) FROM T);
|
||||
ANALYZE;
|
||||
DROP TABLE IF EXISTS T;
|
||||
SELECT * FROM (SELECT * FROM T) AS sub;
|
||||
UPDATE T SET A = NULL WHERE A BETWEEN 0 AND 100 RETURNING *;
|
||||
ANALYZE T;
|
||||
DETACH DATABASE aux67;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL);
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL);
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
PRAGMA temp_store = '1';
|
||||
PRAGMA temp_store = 'FILE';
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL);
|
||||
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;
|
||||
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;
|
||||
SELECT COUNT(*) FROM T;
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
SELECT COUNT(*) FROM T;
|
||||
SELECT * FROM T WHERE A = (SELECT MAX(A) FROM T WHERE A = (SELECT MAX(A) FROM T));
|
||||
PRAGMA synchronous;
|
||||
DETACH DATABASE aux17;
|
||||
DELETE FROM T WHERE 0 RETURNING *;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T_1028 BEFORE UPDATE OF C ON T FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA parser_trace = TRUE;
|
||||
WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM T WHERE C IN (SELECT x FROM cte);
|
||||
UPDATE T SET c = json_object('k', c) WHERE c IS NOT NULL;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_8093 AS SELECT a FROM 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;
|
||||
VACUUM;
|
||||
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;
|
||||
ALTER TABLE T RENAME TO T_r2091;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL);
|
||||
PRAGMA defer_foreign_keys = YES;
|
||||
DROP TRIGGER IF EXISTS T;
|
||||
UPDATE T SET a = CURRENT_TIMESTAMP WHERE a BETWEEN 0 AND 100;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T t2 WHERE t2.b = T.b);
|
||||
CREATE VIEW IF NOT EXISTS v_T_7910 AS SELECT a FROM T;
|
||||
WITH a AS (SELECT b FROM T), b AS (SELECT b FROM a), c AS (SELECT b FROM b) SELECT * FROM c;
|
||||
REINDEX;
|
||||
REINDEX T;
|
||||
VACUUM main;
|
||||
ALTER TABLE T DROP COLUMN c;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
SELECT * FROM T WHERE a < ALL (SELECT a FROM T);
|
||||
SELECT * FROM T;
|
||||
SELECT TOTAL(c) OVER (PARTITION BY c ORDER BY c ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
ANALYZE T;
|
||||
DETACH DATABASE aux49;
|
||||
SELECT AVG(c) FROM T;
|
||||
INSERT INTO T VALUES (1, 'x', NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
|
||||
SELECT * FROM T AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
ANALYZE T;
|
||||
ROLLBACK TO sp6033;
|
||||
RELEASE sp6033;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL);
|
||||
WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte;
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
SAVEPOINT sp6033;
|
||||
ATTACH DATABASE ':memory:' AS aux49;
|
||||
PRAGMA trusted_schema;
|
||||
ATTACH DATABASE ':memory:' AS aux17;
|
||||
PRAGMA count_changes = OFF;
|
||||
ATTACH DATABASE ('' || '') || (':memory:') AS aux67;
|
||||
.check
|
||||
CREATE TABLE `T` (
|
||||
A VARCHAR(CAST(like(json_array(-trunc(json_quote('true'))), '') AS NUMERIC)) PRIMARY KEY,
|
||||
B VARCHAR(-(hex('') + unistr_quote(json_array_insert(9223372036854775807, '$.arr[0]', 9223372036854775807)) -> '$.a' -> '$.b')),
|
||||
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);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM T) SELEC_m /* .filectrl */ B, COUNT(*) AS D, SUM(C) AS E, AVG(C) AS F FROM T GROUP BY B HAVING SUM(C) > 0;
|
||||
DELETE FROM T WHERE NOT NOT (NOT NOT (0)) RETURNING *;
|
||||
DELETE FROM T WHERE +A > (SELECT AVG(A) FROM T);
|
||||
ANALYZE;
|
||||
DROP TABLE IF EXISTS T;
|
||||
SELECT * FROM (SELECT * FROM T) AS sub;
|
||||
UPDATE T SET A = NULL WHERE A BETWEEN 0 AND 100 RETURNING *;
|
||||
ANALYZE T;
|
||||
DETACH DATABASE aux67;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL);
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL);
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
PRAGMA temp_store = '1';
|
||||
PRAGMA temp_store = 'FILE';
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL);
|
||||
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;
|
||||
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;
|
||||
SELECT COUNT(*) FROM T;
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
SELECT COUNT(*) FROM T;
|
||||
SELECT * FROM T WHERE A = (SELECT MAX(A) FROM T WHERE A = (SELECT MAX(A) FROM T));
|
||||
PRAGMA synchronous;
|
||||
DETACH DATABASE aux17;
|
||||
DELETE FROM T WHERE 0 RETURNING *;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T_1028 BEFORE UPDATE OF C ON T FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA parser_trace = TRUE;
|
||||
WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM T WHERE C IN (SELECT x FROM cte);
|
||||
UPDATE T SET c = json_object('k', c) WHERE c IS NOT NULL;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_8093 AS SELECT a FROM 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;
|
||||
VACUUM;
|
||||
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;
|
||||
ALTER TABLE T RENAME TO T_r2091;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL);
|
||||
PRAGMA defer_foreign_keys = YES;
|
||||
DROP TRIGGER IF EXISTS T;
|
||||
UPDATE T SET a = CURRENT_TIMESTAMP WHERE a BETWEEN 0 AND 100;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T t2 WHERE t2.b = T.b);
|
||||
CREATE VIEW IF NOT EXISTS v_T_7910 AS SELECT a FROM T;
|
||||
WITH a AS (SELECT b FROM T), b AS (SELECT b FROM a), c AS (SELECT b FROM b) SELECT * FROM c;
|
||||
REINDEX;
|
||||
REINDEX T;
|
||||
VACUUM main;
|
||||
ALTER TABLE T DROP COLUMN c;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
SELECT * FROM T WHERE a < ALL (SELECT a FROM T);
|
||||
SELECT * FROM T;
|
||||
SELECT TOTAL(c) OVER (PARTITION BY c ORDER BY c ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
ANALYZE T;
|
||||
DETACH DATABASE aux49;
|
||||
SELECT AVG(c) FROM T;
|
||||
INSERT INTO T VALUES (1, 'x', NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
|
||||
SELECT * FROM T AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
ANALYZE T;
|
||||
ROLLBACK TO sp6033;
|
||||
RELEASE sp6033;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL);
|
||||
WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte;
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
SAVEPOINT sp6033;
|
||||
ATTACH DATABASE ':memory:' AS aux49;
|
||||
PRAGMA trusted_schema;
|
||||
ATTACH DATABASE ':memory:' AS aux17;
|
||||
PRAGMA count_changes = OFF;
|
||||
ATTACH DATABASE ('' || '') || (':memory:') AS aux67;
|
||||
.check
|
||||
CREATE TABLE `T` (
|
||||
A VARCHAR(CAST(like(json_array(-trunc(json_quote('true'))), '') AS NUMERIC)) PRIMARY KEY,
|
||||
B VARCHAR(-(hex('') + unistr_quote(json_array_insert(9223372036854775807, '$.arr[0]', 9223372036854775807)) -> '$.a' -> '$.b')),
|
||||
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);
|
||||
WITH _m AS MATERIALIZED (SELECT * FROM T) SELEC_m /* .filectrl */ B, COUNT(*) AS D, SUM(C) AS E, AVG(C) AS F FROM T GROUP BY B HAVING SUM(C) > 0;
|
||||
DELETE FROM T WHERE NOT NOT (NOT NOT (0)) RETURNING *;
|
||||
DELETE FROM T WHERE +A > (SELECT AVG(A) FROM T);
|
||||
ANALYZE;
|
||||
DROP TABLE IF EXISTS T;
|
||||
SELECT * FROM (SELECT * FROM T) AS sub;
|
||||
UPDATE T SET A = NULL WHERE A BETWEEN 0 AND 100 RETURNING *;
|
||||
ANALYZE T;
|
||||
DETACH DATABASE aux67;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL);
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL);
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
PRAGMA temp_store = '1';
|
||||
PRAGMA temp_store = 'FILE';
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL);
|
||||
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;
|
||||
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;
|
||||
SELECT COUNT(*) FROM T;
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
SELECT COUNT(*) FROM T;
|
||||
SELECT * FROM T WHERE A = (SELECT MAX(A) FROM T WHERE A = (SELECT MAX(A) FROM T));
|
||||
PRAGMA synchronous;
|
||||
DETACH DATABASE aux17;
|
||||
DELETE FROM T WHERE 0 RETURNING *;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T_1028 BEFORE UPDATE OF C ON T FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA parser_trace = TRUE;
|
||||
WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM T WHERE C IN (SELECT x FROM cte);
|
||||
UPDATE T SET c = json_object('k', c) WHERE c IS NOT NULL;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_T_8093 AS SELECT a FROM 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;
|
||||
VACUUM;
|
||||
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;
|
||||
ALTER TABLE T RENAME TO T_r2091;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL);
|
||||
PRAGMA defer_foreign_keys = YES;
|
||||
DROP TRIGGER IF EXISTS T;
|
||||
UPDATE T SET a = CURRENT_TIMESTAMP WHERE a BETWEEN 0 AND 100;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T t2 WHERE t2.b = T.b);
|
||||
CREATE VIEW IF NOT EXISTS v_T_7910 AS SELECT a FROM T;
|
||||
WITH a AS (SELECT b FROM T), b AS (SELECT b FROM a), c AS (SELECT b FROM b) SELECT * FROM c;
|
||||
REINDEX;
|
||||
REINDEX T;
|
||||
VACUUM main;
|
||||
ALTER TABLE T DROP COLUMN c;
|
||||
|
||||
SELECT COUNT(*) FROM T;
|
||||
SELECT * FROM T WHERE a < ALL (SELECT a FROM T);
|
||||
SELECT * FROM T;
|
||||
SELECT TOTAL(c) OVER (PARTITION BY c ORDER BY c ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T;
|
||||
INSERT INTO T SELECT * FROM T;
|
||||
ANALYZE T;
|
||||
DETACH DATABASE aux49;
|
||||
SELECT AVG(c) FROM T;
|
||||
INSERT INTO T VALUES (1, 'x', NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
|
||||
SELECT * FROM T AS a RIGHT OUTER JOIN T AS b ON a.rowid = b.rowid;
|
||||
ANALYZE T;
|
||||
ROLLBACK TO sp6033;
|
||||
RELEASE sp6033;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL);
|
||||
WITH cte(x) AS (VALUES(1),(2),(3)) SELECT * FROM cte;
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL);
|
||||
ALTER TABLE T ADD COLUMN extra_534 NATIVE CHARACTER(70)NVARCHAR(100) COLLATE NOCASE;
|
||||
END;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL);
|
||||
|
||||
DROP INDEX IF EXISTS T;
|
||||
SELECT NTILE(c) OVER (PARTITION BY c ORDER BY c ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM T;
|
||||
VACUUM main;
|
||||
ALTER TABLE T ADD COLUMN extra_1373 TINYINT COLLATE RTRIM;
|
||||
ALTER TABLE T RENAME COLUMN a TO a_r6242;
|
||||
SELECT * FROM T NATURAL JOIN T;
|
||||
DELETE FROM T WHERE rowid = 54;
|
||||
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;
|
||||
WITH cte AS (SELECT a, COUNT(*) FROM T GROUP BY a) SELECT * FROM cte;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
3|0.0
|
||||
0|1.5
|
||||
1
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
3|0.0
|
||||
0|1.5
|
||||
0
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
@@ -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
|
||||
CREATE TABLE `T` (
|
||||
a TEXT,
|
||||
b REAL
|
||||
);
|
||||
INSERT INTO T VALUES ('a',datetime(glob('[!0-9]', 'a'), '+1 day')), ('b',-round(instr(NULL, like('%lower%', 200.5)), 2)), ('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;
|
||||
UPDATE T SET b = -20;
|
||||
UPDATE T SET a = '' WHERE a IS NOT NULL RETURNING *;
|
||||
DROP TRIGGER IF EXISTS T;
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
INSERT INTO T VALUES (NULL, NULL);
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T_5952 AFTER DELETE ON T BEGIN SELECT RAISE(ROLLBACK, 'rb'); END;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
a-4713-11-25 12:00:00Inf1cInf1b2-20-20-20
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
a-4713-11-25 12:00:00Inf1cInf1b2-20.0-20.0-20.0
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
-ascii
|
||||
```
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
## Summary
|
||||
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
|
||||
|
||||
## Minimized query
|
||||
|
||||
```sql
|
||||
.scanstats est
|
||||
BEGIN IMMEDIATE TRANSACTION;
|
||||
SAVEPOINT sp458;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (load_extension(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
|
||||
CREATE TABLE t1(c, b, a, PRIMARY KEY(b, /* hex(123.456) */ a)) WITHOUT ROWID;
|
||||
INSERT INTO t1 VALUES(x'8ece', 2, 3), (4, 5, 6);
|
||||
ALTER TABLE t1 DROP c;
|
||||
CREATE TABLE x1234(a, b, c PRIMARY KEY) WITHOUT ROWID;
|
||||
CREATE INDEX i1 ON x1234(b) WHERE ((a+5) % 10)==0;
|
||||
|
||||
SELECT * FROM t1 WHERE EXISTS (SELECT 1 FROM t1 WHERE b = NULL);
|
||||
WITH cte(a, b) AS (SELECT a, a FROM t1) SELECT a, b FROM cte;
|
||||
INSERT INTO x1234 SELECT * FROM x1234;
|
||||
ANALYZE x1234;
|
||||
DELETE FROM t1 WHERE 0;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL);
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_8772 ON t1((b + 1)) WHERE b IS NOT NULL;
|
||||
RELEASE sp458;
|
||||
INSERT INTO x1234 VALUES (1, 1, NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
|
||||
COMMIT TRANSACTION;
|
||||
SELECT TOTAL(b) FROM x1234;
|
||||
INSERT INTO x1234 DEFAULT VALUES;
|
||||
ALTER TABLE x1234 ADD COLUMN extra_8603 NONE DEFAULT (abs(random()) % 1000);
|
||||
```
|
||||
|
||||
## 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,778 @@
|
||||
## 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 fullsync = ON;
|
||||
PRAGMA locking_mode;
|
||||
PRAGMA synchronous = '1';
|
||||
.stats on
|
||||
CREATE TABLE map_integer (id INT, name);
|
||||
INSERT INTO map_integer VALUES(NULL,'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(2147483648,'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);
|
||||
|
||||
REINDEX map_text;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
normal
|
||||
Memory Used: 78880 (max 80432) bytes
|
||||
Number of Outstanding Allocations: 162 (max 176)
|
||||
Number of Pcache Overflow Bytes: 16928 (max 16928) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4360 bytes
|
||||
Lookaside Slots Used: 32 (max 88)
|
||||
Successful lookaside attempts: 171
|
||||
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: 2432 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: 2432
|
||||
Bytes received by read(): 7127
|
||||
Bytes sent to write(): 7
|
||||
Read() system calls: 14
|
||||
Write() system calls: 1
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 76472 (max 82152) bytes
|
||||
Number of Outstanding Allocations: 151 (max 176)
|
||||
Number of Pcache Overflow Bytes: 16928 (max 16928) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4360 bytes
|
||||
Lookaside Slots Used: 39 (max 88)
|
||||
Successful lookaside attempts: 189
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 13592 bytes
|
||||
Page cache hits: 2
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Schema Heap Usage: 1032 bytes
|
||||
Statement Heap/Lookaside Usage: 3040 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 10
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 3040
|
||||
Bytes received by read(): 7221
|
||||
Bytes sent to write(): 1300
|
||||
Read() system calls: 16
|
||||
Write() system calls: 2
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 83488 (max 89168) bytes
|
||||
Number of Outstanding Allocations: 170 (max 185)
|
||||
Number of Pcache Overflow Bytes: 21288 (max 21288) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4360 bytes
|
||||
Lookaside Slots Used: 32 (max 88)
|
||||
Successful lookaside attempts: 264
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 17936 bytes
|
||||
Page cache hits: 4
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Schema Heap Usage: 1280 bytes
|
||||
Statement Heap/Lookaside Usage: 2400 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 28
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 2400
|
||||
Bytes received by read(): 7318
|
||||
Bytes sent to write(): 2596
|
||||
Read() system calls: 18
|
||||
Write() system calls: 3
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 81112 (max 89168) bytes
|
||||
Number of Outstanding Allocations: 159 (max 185)
|
||||
Number of Pcache Overflow Bytes: 21288 (max 21288) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4360 bytes
|
||||
Lookaside Slots Used: 40 (max 88)
|
||||
Successful lookaside attempts: 283
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 17936 bytes
|
||||
Page cache hits: 2
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Schema Heap Usage: 1304 bytes
|
||||
Statement Heap/Lookaside Usage: 3168 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 10
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 3168
|
||||
Bytes received by read(): 7415
|
||||
Bytes sent to write(): 3892
|
||||
Read() system calls: 20
|
||||
Write() system calls: 4
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 88128 (max 93808) bytes
|
||||
Number of Outstanding Allocations: 178 (max 193)
|
||||
Number of Pcache Overflow Bytes: 25648 (max 25648) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4360 bytes
|
||||
Lookaside Slots Used: 32 (max 88)
|
||||
Successful lookaside attempts: 358
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 22280 bytes
|
||||
Page cache hits: 4
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Schema Heap Usage: 1552 bytes
|
||||
Statement Heap/Lookaside Usage: 2400 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 28
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 2400
|
||||
Bytes received by read(): 7512
|
||||
Bytes sent to write(): 5188
|
||||
Read() system calls: 22
|
||||
Write() system calls: 5
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 85752 (max 93808) bytes
|
||||
Number of Outstanding Allocations: 167 (max 193)
|
||||
Number of Pcache Overflow Bytes: 25648 (max 25648) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4360 bytes
|
||||
Lookaside Slots Used: 40 (max 88)
|
||||
Successful lookaside attempts: 378
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 22280 bytes
|
||||
Page cache hits: 2
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Schema Heap Usage: 1576 bytes
|
||||
Statement Heap/Lookaside Usage: 3168 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 10
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 3168
|
||||
Bytes received by read(): 7609
|
||||
Bytes sent to write(): 6484
|
||||
Read() system calls: 24
|
||||
Write() system calls: 6
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 85752 (max 93808) bytes
|
||||
Number of Outstanding Allocations: 167 (max 193)
|
||||
Number of Pcache Overflow Bytes: 25648 (max 25648) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4360 bytes
|
||||
Lookaside Slots Used: 40 (max 88)
|
||||
Successful lookaside attempts: 397
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 22280 bytes
|
||||
Page cache hits: 2
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Schema Heap Usage: 1576 bytes
|
||||
Statement Heap/Lookaside Usage: 3168 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 10
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 3168
|
||||
Bytes received by read(): 7706
|
||||
Bytes sent to write(): 7780
|
||||
Read() system calls: 26
|
||||
Write() system calls: 7
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 89296 (max 95984) bytes
|
||||
Number of Outstanding Allocations: 192 (max 218)
|
||||
Number of Pcache Overflow Bytes: 25648 (max 25648) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4360 bytes
|
||||
Lookaside Slots Used: 32 (max 88)
|
||||
Successful lookaside attempts: 472
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 22280 bytes
|
||||
Page cache hits: 4
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Schema Heap Usage: 2616 bytes
|
||||
Statement Heap/Lookaside Usage: 2496 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 28
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 2496
|
||||
Bytes received by read(): 7803
|
||||
Bytes sent to write(): 9076
|
||||
Read() system calls: 28
|
||||
Write() system calls: 8
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 96536 (max 200616) bytes
|
||||
Number of Outstanding Allocations: 213 (max 254)
|
||||
Number of Pcache Overflow Bytes: 30008 (max 38216) bytes
|
||||
Largest Allocation: 87200 bytes
|
||||
Largest Pcache Allocation: 4360 bytes
|
||||
Lookaside Slots Used: 32 (max 100)
|
||||
Successful lookaside attempts: 560
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 26624 bytes
|
||||
Page cache hits: 7
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Schema Heap Usage: 2952 bytes
|
||||
Statement Heap/Lookaside Usage: 4960 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 82
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 4960
|
||||
Bytes received by read(): 7900
|
||||
Bytes sent to write(): 10372
|
||||
Read() system calls: 30
|
||||
Write() system calls: 9
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 91504 (max 200616) bytes
|
||||
Number of Outstanding Allocations: 190 (max 254)
|
||||
Number of Pcache Overflow Bytes: 30008 (max 38216) bytes
|
||||
Largest Allocation: 87200 bytes
|
||||
Largest Pcache Allocation: 4360 bytes
|
||||
Lookaside Slots Used: 35 (max 100)
|
||||
Successful lookaside attempts: 565
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 26624 bytes
|
||||
Page cache hits: 0
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Schema Heap Usage: 2952 bytes
|
||||
Statement Heap/Lookaside Usage: 2528 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 4
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 2528
|
||||
Bytes received by read(): 7998
|
||||
Bytes sent to write(): 11671
|
||||
Read() system calls: 32
|
||||
Write() system calls: 10
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 95120 (max 302408) bytes
|
||||
Number of Outstanding Allocations: 192 (max 254)
|
||||
Number of Pcache Overflow Bytes: 30008 (max 46424) bytes
|
||||
Largest Allocation: 87200 bytes
|
||||
Largest Pcache Allocation: 4360 bytes
|
||||
Lookaside Slots Used: 59 (max 104)
|
||||
Successful lookaside attempts: 678
|
||||
Lookaside failures due to size: 3
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 26624 bytes
|
||||
Page cache hits: 4
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Schema Heap Usage: 2952 bytes
|
||||
Statement Heap/Lookaside Usage: 8960 bytes
|
||||
Fullscan Steps: 1
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 1
|
||||
Bloom filter bypass taken: 2/2
|
||||
Virtual Machine Steps: 68
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 8960
|
||||
Bytes received by read(): 8097
|
||||
Bytes sent to write(): 12970
|
||||
Read() system calls: 34
|
||||
Write() system calls: 11
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 91504 (max 302408) bytes
|
||||
Number of Outstanding Allocations: 190 (max 254)
|
||||
Number of Pcache Overflow Bytes: 30008 (max 46424) bytes
|
||||
Largest Allocation: 87200 bytes
|
||||
Largest Pcache Allocation: 4360 bytes
|
||||
Lookaside Slots Used: 35 (max 104)
|
||||
Successful lookaside attempts: 683
|
||||
Lookaside failures due to size: 3
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 26624 bytes
|
||||
Page cache hits: 0
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Schema Heap Usage: 2952 bytes
|
||||
Statement Heap/Lookaside Usage: 2528 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 2
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 2528
|
||||
Bytes received by read(): 8196
|
||||
Bytes sent to write(): 14311
|
||||
Read() system calls: 37
|
||||
Write() system calls: 12
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
normal
|
||||
Memory Used: 79448 (max 80984) bytes
|
||||
Number of Outstanding Allocations: 172 (max 186)
|
||||
Number of Pcache Overflow Bytes: 16936 (max 16936) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4368 bytes
|
||||
Lookaside Slots Used: 48 (max 97)
|
||||
Successful lookaside attempts: 175
|
||||
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: 864 bytes
|
||||
Statement Heap/Lookaside Usage: 2336 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: 2336
|
||||
Bytes received by read(): 7647
|
||||
Bytes sent to write(): 7
|
||||
Read() system calls: 14
|
||||
Write() system calls: 1
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 77120 (max 82752) bytes
|
||||
Number of Outstanding Allocations: 161 (max 186)
|
||||
Number of Pcache Overflow Bytes: 16936 (max 16936) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4368 bytes
|
||||
Lookaside Slots Used: 55 (max 97)
|
||||
Successful lookaside attempts: 193
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 13608 bytes
|
||||
Page cache hits: 2
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Temporary data spilled to disk: 0
|
||||
Schema Heap Usage: 872 bytes
|
||||
Statement Heap/Lookaside Usage: 3040 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 10
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 3040
|
||||
Bytes received by read(): 7741
|
||||
Bytes sent to write(): 1338
|
||||
Read() system calls: 16
|
||||
Write() system calls: 2
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 84032 (max 89664) bytes
|
||||
Number of Outstanding Allocations: 180 (max 195)
|
||||
Number of Pcache Overflow Bytes: 21304 (max 21304) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4368 bytes
|
||||
Lookaside Slots Used: 48 (max 97)
|
||||
Successful lookaside attempts: 261
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 17960 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: 1096 bytes
|
||||
Statement Heap/Lookaside Usage: 2320 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 28
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 2320
|
||||
Bytes received by read(): 7838
|
||||
Bytes sent to write(): 2672
|
||||
Read() system calls: 18
|
||||
Write() system calls: 3
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 81720 (max 89664) bytes
|
||||
Number of Outstanding Allocations: 169 (max 195)
|
||||
Number of Pcache Overflow Bytes: 21304 (max 21304) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4368 bytes
|
||||
Lookaside Slots Used: 56 (max 97)
|
||||
Successful lookaside attempts: 280
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 17960 bytes
|
||||
Page cache hits: 2
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Temporary data spilled to disk: 0
|
||||
Schema Heap Usage: 1104 bytes
|
||||
Statement Heap/Lookaside Usage: 3168 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 10
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 3168
|
||||
Bytes received by read(): 7935
|
||||
Bytes sent to write(): 4007
|
||||
Read() system calls: 20
|
||||
Write() system calls: 4
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 88608 (max 94240) bytes
|
||||
Number of Outstanding Allocations: 188 (max 203)
|
||||
Number of Pcache Overflow Bytes: 25672 (max 25672) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4368 bytes
|
||||
Lookaside Slots Used: 48 (max 97)
|
||||
Successful lookaside attempts: 348
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 22312 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: 1320 bytes
|
||||
Statement Heap/Lookaside Usage: 2304 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 28
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 2304
|
||||
Bytes received by read(): 8032
|
||||
Bytes sent to write(): 5342
|
||||
Read() system calls: 22
|
||||
Write() system calls: 5
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 86312 (max 94240) bytes
|
||||
Number of Outstanding Allocations: 177 (max 203)
|
||||
Number of Pcache Overflow Bytes: 25672 (max 25672) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4368 bytes
|
||||
Lookaside Slots Used: 56 (max 97)
|
||||
Successful lookaside attempts: 368
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 22312 bytes
|
||||
Page cache hits: 2
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Temporary data spilled to disk: 0
|
||||
Schema Heap Usage: 1328 bytes
|
||||
Statement Heap/Lookaside Usage: 3168 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 10
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 3168
|
||||
Bytes received by read(): 8129
|
||||
Bytes sent to write(): 6677
|
||||
Read() system calls: 24
|
||||
Write() system calls: 6
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 86312 (max 94240) bytes
|
||||
Number of Outstanding Allocations: 177 (max 203)
|
||||
Number of Pcache Overflow Bytes: 25672 (max 25672) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4368 bytes
|
||||
Lookaside Slots Used: 56 (max 97)
|
||||
Successful lookaside attempts: 387
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 22312 bytes
|
||||
Page cache hits: 2
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Temporary data spilled to disk: 0
|
||||
Schema Heap Usage: 1328 bytes
|
||||
Statement Heap/Lookaside Usage: 3168 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 10
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 3168
|
||||
Bytes received by read(): 8226
|
||||
Bytes sent to write(): 8012
|
||||
Read() system calls: 26
|
||||
Write() system calls: 7
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 89808 (max 96256) bytes
|
||||
Number of Outstanding Allocations: 203 (max 228)
|
||||
Number of Pcache Overflow Bytes: 25672 (max 25672) bytes
|
||||
Largest Allocation: 48000 bytes
|
||||
Largest Pcache Allocation: 4368 bytes
|
||||
Lookaside Slots Used: 48 (max 97)
|
||||
Successful lookaside attempts: 455
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 22312 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: 2440 bytes
|
||||
Statement Heap/Lookaside Usage: 2384 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 28
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 2384
|
||||
Bytes received by read(): 8323
|
||||
Bytes sent to write(): 9347
|
||||
Read() system calls: 28
|
||||
Write() system calls: 8
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 96832 (max 201032) bytes
|
||||
Number of Outstanding Allocations: 220 (max 262)
|
||||
Number of Pcache Overflow Bytes: 30040 (max 38240) bytes
|
||||
Largest Allocation: 87360 bytes
|
||||
Largest Pcache Allocation: 4368 bytes
|
||||
Lookaside Slots Used: 48 (max 109)
|
||||
Successful lookaside attempts: 536
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 26664 bytes
|
||||
Page cache hits: 7
|
||||
Page cache misses: 0
|
||||
Page cache writes: 0
|
||||
Page cache spills: 0
|
||||
Temporary data spilled to disk: 0
|
||||
Schema Heap Usage: 2728 bytes
|
||||
Statement Heap/Lookaside Usage: 4688 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 82
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 4688
|
||||
Bytes received by read(): 8420
|
||||
Bytes sent to write(): 10682
|
||||
Read() system calls: 30
|
||||
Write() system calls: 9
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 92080 (max 201032) bytes
|
||||
Number of Outstanding Allocations: 201 (max 262)
|
||||
Number of Pcache Overflow Bytes: 30040 (max 38240) bytes
|
||||
Largest Allocation: 87360 bytes
|
||||
Largest Pcache Allocation: 4368 bytes
|
||||
Lookaside Slots Used: 51 (max 109)
|
||||
Successful lookaside attempts: 541
|
||||
Lookaside failures due to size: 0
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 26664 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: 2728 bytes
|
||||
Statement Heap/Lookaside Usage: 2528 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 5
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 2528
|
||||
Bytes received by read(): 8518
|
||||
Bytes sent to write(): 12020
|
||||
Read() system calls: 32
|
||||
Write() system calls: 10
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
4|xyz|e
|
||||
Memory Used: 94448 (max 302016) bytes
|
||||
Number of Outstanding Allocations: 202 (max 262)
|
||||
Number of Pcache Overflow Bytes: 30040 (max 46440) bytes
|
||||
Largest Allocation: 87360 bytes
|
||||
Largest Pcache Allocation: 4368 bytes
|
||||
Lookaside Slots Used: 70 (max 111)
|
||||
Successful lookaside attempts: 654
|
||||
Lookaside failures due to size: 2
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 26664 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: 2728 bytes
|
||||
Statement Heap/Lookaside Usage: 13504 bytes
|
||||
Fullscan Steps: 1
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Bloom filter bypass taken: 0/2
|
||||
Virtual Machine Steps: 74
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 13504
|
||||
Bytes received by read(): 8617
|
||||
Bytes sent to write(): 13358
|
||||
Read() system calls: 34
|
||||
Write() system calls: 11
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
Memory Used: 92080 (max 302016) bytes
|
||||
Number of Outstanding Allocations: 201 (max 262)
|
||||
Number of Pcache Overflow Bytes: 30040 (max 46440) bytes
|
||||
Largest Allocation: 87360 bytes
|
||||
Largest Pcache Allocation: 4368 bytes
|
||||
Lookaside Slots Used: 51 (max 111)
|
||||
Successful lookaside attempts: 659
|
||||
Lookaside failures due to size: 2
|
||||
Lookaside failures due to OOM: 0
|
||||
Pager Heap Usage: 26664 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: 2728 bytes
|
||||
Statement Heap/Lookaside Usage: 2528 bytes
|
||||
Fullscan Steps: 0
|
||||
Sort Operations: 0
|
||||
Autoindex Inserts: 0
|
||||
Virtual Machine Steps: 3
|
||||
Reprepare operations: 0
|
||||
Number of times run: 1
|
||||
Memory used by prepared stmt: 2528
|
||||
Bytes received by read(): 8716
|
||||
Bytes sent to write(): 14748
|
||||
Read() system calls: 37
|
||||
Write() system calls: 12
|
||||
Bytes read from storage: 0
|
||||
Bytes written to storage: 0
|
||||
Cancelled write bytes: 0
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
-vfs unix-dotfile
|
||||
```
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,890 @@
|
||||
## 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 aux74;
|
||||
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;
|
||||
PRAGMA legacy_alter_table = OFF;
|
||||
PRAGMA legacy_alter_table = ON;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE main.t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh((like('9223372036854775806%', instr(NULL, NULL)) + 0.0)), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE NOT NOT +a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh(1), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh(1), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh(1), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh(1), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
|
||||
WITH cte AS (SELECT a, LAG(a) OVER (ORDER BY a) AS prev FROM t1) SELECT * FROM cte;
|
||||
INSERT INTO t1 VALUES ('x') ON CONFLICT(a) DO UPDATE SET a = excluded.a;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
SELECT * FROM t1 WHERE a IN (SELECT ALL a FROM t1);
|
||||
SELECT SUM(a) FROM t1;
|
||||
SELECT * FROM t1 t1 RIGHT JOIN t1 t2 ON t1.a = (SELECT a FROM t1 WHERE a = t1.a);
|
||||
ANALYZE;
|
||||
CREATE TABLE T1 (
|
||||
a INTEGER,
|
||||
b TEXT
|
||||
);
|
||||
CREATE TABLE T2 (
|
||||
a INTEGER,
|
||||
b TEXT
|
||||
);
|
||||
INSERT INTO T1 VALUES (1,'a'),(2,'b');
|
||||
INSERT INTO T2 VALUES (1,'c'),(1,'d');
|
||||
SELECT T1.b,
|
||||
(
|
||||
SELECT GROUP_CONCAT(b,',')
|
||||
FROM T2
|
||||
WHERE T2.a=T1.a
|
||||
) AS c
|
||||
FROM T1;
|
||||
SELECT 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;
|
||||
PRAGMA page_count;
|
||||
ALTER TABLE T2 ADD COLUMN extra_8536 INT8 DEFAULT CURRENT_TIMESTAMP;
|
||||
SELECT * FROM T2;
|
||||
SELECT NTH_VALUE(a, -1) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM T2;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
PRAGMA vdbe_debug = OFF;
|
||||
INSERT INTO T2 VALUES (NULL, NULL);
|
||||
|
||||
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 AVG(b) FROM T2;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_T1_3200 AS SELECT a FROM T1;
|
||||
VACUUM main;
|
||||
DROP INDEX IF EXISTS t1;
|
||||
SELECT * FROM (SELECT * FROM T2 ORDER BY a) AS sub LIMIT 10;
|
||||
UPDATE T1 SET a = 'x' WHERE a BETWEEN 0 AND 100;
|
||||
SELECT NTILE(4) OVER (PARTITION BY a ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T1;
|
||||
|
||||
SELECT COUNT(*) FROM T1;
|
||||
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<23) SELECT * FROM cnt;
|
||||
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;
|
||||
PRAGMA legacy_alter_table = OFF;
|
||||
PRAGMA legacy_alter_table = ON;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE main.t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh((like('9223372036854775806%', instr(NULL, NULL)) + 0.0)), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE NOT NOT +a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh(1), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh(1), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh(1), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh(1), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
|
||||
WITH cte AS (SELECT a, LAG(a) OVER (ORDER BY a) AS prev FROM t1) SELECT * FROM cte;
|
||||
INSERT INTO t1 VALUES ('x') ON CONFLICT(a) DO UPDATE SET a = excluded.a;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
SELECT * FROM t1 WHERE a IN (SELECT ALL a FROM t1);
|
||||
SELECT SUM(a) FROM t1;
|
||||
SELECT * FROM t1 t1 RIGHT JOIN t1 t2 ON t1.a = (SELECT a FROM t1 WHERE a = t1.a);
|
||||
ANALYZE;
|
||||
CREATE TABLE T1 (
|
||||
a INTEGER,
|
||||
b TEXT
|
||||
);
|
||||
CREATE TABLE T2 (
|
||||
a INTEGER,
|
||||
b TEXT
|
||||
);
|
||||
INSERT INTO T1 VALUES (1,'a'),(2,'b');
|
||||
INSERT INTO T2 VALUES (1,'c'),(1,'d');
|
||||
SELECT T1.b,
|
||||
(
|
||||
SELECT GROUP_CONCAT(b,',')
|
||||
FROM T2
|
||||
WHERE T2.a=T1.a
|
||||
) AS c
|
||||
FROM T1;
|
||||
SELECT 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;
|
||||
PRAGMA page_count;
|
||||
ALTER TABLE T2 ADD COLUMN extra_8536 INT8 DEFAULT CURRENT_TIMESTAMP;
|
||||
SELECT * FROM T2;
|
||||
SELECT NTH_VALUE(a, -1) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM T2;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
PRAGMA vdbe_debug = OFF;
|
||||
INSERT INTO T2 VALUES (NULL, NULL);
|
||||
|
||||
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 AVG(b) FROM T2;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_T1_3200 AS SELECT a FROM T1;
|
||||
VACUUM main;
|
||||
DROP INDEX IF EXISTS t1;
|
||||
SELECT * FROM (SELECT * FROM T2 ORDER BY a) AS sub LIMIT 10;
|
||||
UPDATE T1 SET a = 'x' WHERE a BETWEEN 0 AND 100;
|
||||
SELECT NTILE(4) OVER (PARTITION BY a ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T1;
|
||||
|
||||
SELECT COUNT(*) FROM T1;
|
||||
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<23) SELECT * FROM cnt;
|
||||
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;
|
||||
PRAGMA legacy_alter_table = OFF;
|
||||
PRAGMA legacy_alter_table = ON;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE main.t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh((like('9223372036854775806%', instr(NULL, NULL)) + 0.0)), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE NOT NOT +a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh(1), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh(1), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh(1), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
BEGIN IMMEDIATE;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((timediff(cosh(1), 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
|
||||
PRAGMA foreign_keys = NO;
|
||||
CREATE TABLE main.t1(a);
|
||||
INSERT INTO t1 VALUES(json_remove(replace(log(6.283185307179586), 'a', ''), '$.key', '$[0]'));
|
||||
ALTER TABLE t1 ADD COLUMN b TEXT DEFAULT -123.0;
|
||||
SELECT b, typeof(b) FROM t1;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT DEFAULT -123.5;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'hello';
|
||||
SELECT c, typeof(c) FROM t1;
|
||||
|
||||
ANALYZE t1;
|
||||
SELECT LAG(a, 0, 'default') OVER (ORDER BY a) FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
SELECT SUM(a) FILTER (WHERE a > 0) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM t1;
|
||||
SELECT * FROM t1 AS a FULL OUTER JOIN t1 AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM t1 WHERE a IS NULL RETURNING *;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
VACUUM;
|
||||
UPDATE t1 SET a = a + 1 WHERE 1 RETURNING *;
|
||||
CREATE /**/ INDEX IF NOT EXISTS idx_t1_5174 ON t1(a) WHERE a IS NOT NULL;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_2103 BEFORE UPDATE OF a ON t1 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
||||
PRAGMA vdbe_listing = NO;
|
||||
VACUUM;
|
||||
ROLLBACK;
|
||||
INSERT OR FAIL INTO t1 VALUES ('x');
|
||||
CREATE TRIGGER IF NOT EXISTS trg_t1_1650 BEFORE DELETE ON t1 FOR EACH ROW BEGIN INSERT INTO t1(a) VALUES (NULL); END;
|
||||
CREATE VIRTUAL TABLE t0 USING fts4("x", "y", "z");
|
||||
DROP TABLE t0;
|
||||
|
||||
WITH cte AS (SELECT a, LAG(a) OVER (ORDER BY a) AS prev FROM t1) SELECT * FROM cte;
|
||||
INSERT INTO t1 VALUES ('x') ON CONFLICT(a) DO UPDATE SET a = excluded.a;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
DROP TRIGGER IF EXISTS t1;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
SELECT * FROM t1 WHERE a IN (SELECT ALL a FROM t1);
|
||||
SELECT SUM(a) FROM t1;
|
||||
SELECT * FROM t1 t1 RIGHT JOIN t1 t2 ON t1.a = (SELECT a FROM t1 WHERE a = t1.a);
|
||||
ANALYZE;
|
||||
CREATE TABLE T1 (
|
||||
a INTEGER,
|
||||
b TEXT
|
||||
);
|
||||
CREATE TABLE T2 (
|
||||
a INTEGER,
|
||||
b TEXT
|
||||
);
|
||||
INSERT INTO T1 VALUES (1,'a'),(2,'b');
|
||||
INSERT INTO T2 VALUES (1,'c'),(1,'d');
|
||||
SELECT T1.b,
|
||||
(
|
||||
SELECT GROUP_CONCAT(b,',')
|
||||
FROM T2
|
||||
WHERE T2.a=T1.a
|
||||
) AS c
|
||||
FROM T1;
|
||||
SELECT 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;
|
||||
PRAGMA page_count;
|
||||
ALTER TABLE T2 ADD COLUMN extra_8536 INT8 DEFAULT CURRENT_TIMESTAMP;
|
||||
SELECT * FROM T2;
|
||||
SELECT NTH_VALUE(a, -1) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS) FROM T2;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
PRAGMA vdbe_debug = OFF;
|
||||
INSERT INTO T2 VALUES (NULL, NULL);
|
||||
|
||||
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 AVG(b) FROM T2;
|
||||
CREATE TEMP VIEW IF NOT EXISTS v_T1_3200 AS SELECT a FROM T1;
|
||||
VACUUM main;
|
||||
DROP INDEX IF EXISTS t1;
|
||||
SELECT * FROM (SELECT * FROM T2 ORDER BY a) AS sub LIMIT 10;
|
||||
UPDATE T1 SET a = 'x' WHERE a BETWEEN 0 AND 100;
|
||||
SELECT NTILE(4) OVER (PARTITION BY a ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM T1;
|
||||
|
||||
SELECT COUNT(*) FROM T1;
|
||||
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<23) SELECT * FROM cnt;
|
||||
|
||||
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<15) SELECT SUM(x) FROM cnt;
|
||||
SELECT * FROM T2;
|
||||
DETACH DATABASE aux74;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
1|-49.875
|
||||
2|-Inf
|
||||
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
|
||||
WARNING: writing to an imposter table will corrupt the "t1bc" index!
|
||||
Braun|30|3
|
||||
von|20|2
|
||||
Braun|30
|
||||
von|20
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
@@ -0,0 +1,101 @@
|
||||
## 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 = OFF;
|
||||
BEGIN DEFERRED TRANSACTION;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES ((-(-(lower('你好'))) * jsonb_insert(asinh(1), '$.key', 1)), 'Wernher', 10, 100);
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
|
||||
PRAGMA writable_schema = ON;
|
||||
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
|
||||
.quit
|
||||
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;
|
||||
WITH cte AS (SELECT * FROM T2), cte2 AS (SELECT * FROM cte) SELECT * FROM cte2;
|
||||
ALTER TABLE t1 RENAME COLUMN b TO b_r6813;
|
||||
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 * /**/ FROM T2 WHERE NOT NOT (NOT C < (SELECT MIN(C) FROM T2)) ;
|
||||
ALTER TABLE T2 RENAME COLUMN X TO X_r945;
|
||||
DROP TABLE IF EXISTS T1;
|
||||
COMMIT TRANSACTION;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
ALTER TABLE T2 RENAME COLUMN C TO C_r8599;
|
||||
SELECT * FROM (SELECT * FROM t1) AS sub;
|
||||
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;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
|
||||
SELECT COUNT(*) FROM T1;
|
||||
ANALYZE t1;
|
||||
SELECT * FROM T1 AS a JOIN T1 AS b ON a.rowid = b.rowid;
|
||||
DROP VIEW IF EXISTS t1;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
|
||||
WARNING: writing to an imposter table will corrupt the "t1bc" index!
|
||||
Braun|30|3
|
||||
von|20|2
|
||||
Braun|30
|
||||
von|20
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
## Summary
|
||||
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
|
||||
|
||||
## Minimized query
|
||||
|
||||
```sql
|
||||
SAVEPOINT sp8760;
|
||||
ATTACH DATABASE ':memory:' AS aux23;
|
||||
PRAGMA vdbe_debug = 1;
|
||||
PRAGMA temp_store = 'MEMORY';
|
||||
PRAGMA cell_size_check = FALSE;
|
||||
.scanstats 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;
|
||||
ALTER TABLE T RENAME COLUMN a TO a_r2555;
|
||||
SELECT * FROM T AS a FULL JOIN T AS b ON a.rowid = b.rowid;
|
||||
DELETE FROM T WHERE 1;
|
||||
DETACH DATABASE aux23;
|
||||
RELEASE sp8760;
|
||||
CREATE TRIGGER IF NOT EXISTS trg_T_2695 AFTER DELETE ON T FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END;
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL);
|
||||
SELECT * FROM T WHERE EXISTS (SELECT 1 FROM T t2 WHERE t2.c = T.c);
|
||||
SELECT * FROM T;
|
||||
DELETE FROM T WHERE 1;
|
||||
SELECT * FROM T AS a FULL JOIN T AS b ON a.rowid = b.rowid;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
[{"a":1,"e":-49.875000000000000001},
|
||||
{"a":2,"e":-1e999}]
|
||||
[{"a_r2555":1,"b":2.0,"c":10.499999999999999999,"a_r2555":1,"b":2.0,"c":10.499999999999999999},
|
||||
{"a_r2555":1,"b":-3.5,"c":20.25,"a_r2555":1,"b":-3.5,"c":20.25},
|
||||
{"a_r2555":2,"b":1e999,"c":-1.0,"a_r2555":2,"b":1e999,"c":-1.0}]
|
||||
[{"a_r2555":null,"b":null,"c":null}]
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
[{"a":1,"e":-49.875},
|
||||
{"a":2,"e":-9.0e+999}]
|
||||
[{"a_r2555":1,"b":2.0,"c":10.5,"a_r2555":1,"b":2.0,"c":10.5},
|
||||
{"a_r2555":1,"b":-3.5,"c":20.25,"a_r2555":1,"b":-3.5,"c":20.25},
|
||||
{"a_r2555":2,"b":9.0e+999,"c":-1.0,"a_r2555":2,"b":9.0e+999,"c":-1.0}]
|
||||
[{"a_r2555":null,"b":null,"c":null}]
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
-json
|
||||
```
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,55 @@
|
||||
## 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 0
|
||||
.timer 192319231923
|
||||
PRAGMA automatic_index = FALSE;
|
||||
SAVEPOINT sp9691;
|
||||
PRAGMA cell_size_check = YES;
|
||||
SELECT json_pretty(atan2((0 * 1), 0), '' || (' '))x0ACB29BM205381;
|
||||
-- PRAGMA analysis_limit = 50;
|
||||
|
||||
SELECT sqlite_compileoption_used('æçå¤©ä½ æ¯æä¹äº');
|
||||
SELECT 1 >> -999999999999999999999999999;
|
||||
SELECT sqlite_compileoption_get($1);
|
||||
SELECT sqlite_version();
|
||||
ROLLBACK TRANSACTION TO SAVEPOINT sp9691;
|
||||
RELEASE SAVEPOINT sp9691;
|
||||
VACUUM;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
Run Time: real 0.000 user 0.000000 sys 0.000057
|
||||
Run Time: real 0.000 user 0.000000 sys 0.000006
|
||||
Run Time: real 0.000 user 0.000000 sys 0.000004
|
||||
Run Time: real 0.000 user 0.000000 sys 0.000067
|
||||
0
|
||||
Run Time: real 0.000 user 0.000000 sys 0.000027
|
||||
0
|
||||
Run Time: real 0.000 user 0.000000 sys 0.000017
|
||||
ATOMIC_INTRINSICS=1
|
||||
Run Time: real 0.000 user 0.000000 sys 0.000069
|
||||
3.39.0
|
||||
Run Time: real 0.000 user 0.000000 sys 0.000008
|
||||
Run Time: real 0.000 user 0.000000 sys 0.000004
|
||||
Run Time: real 0.000 user 0.000000 sys 0.000003
|
||||
Run Time: real 0.000 user 0.000000 sys 0.000185
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
@@ -0,0 +1,507 @@
|
||||
## 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 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;
|
||||
PRAGMA full_column_names;
|
||||
.cd bugs
|
||||
BEGIN EXCLUSIVE;
|
||||
SAVEPOINT sp3113;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (atanh(NULL), 'Wernher', unicode('你好'), if(-(-(json_set(json_valid(1, 8), '$.key', 1))), 100, 0, 100));
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
ATTACH DATABASE ':memory:' AS aux64;
|
||||
ATTACH DATABASE ':memory:' AS aux0;
|
||||
-- if(NULL, {v})
|
||||
|
||||
ATTACH DATABASE ':memory:' AS aux28;
|
||||
.system false && echo "success" || echo "error code: $?"
|
||||
CREATE TABLE [T] (
|
||||
a FLOAT,
|
||||
b REAL
|
||||
);
|
||||
INSERT
|
||||
INTO T VALUES (json_array_length(log(-(-(CAST(exp(strftime('%Y-%m-%d', x'')) AS CHARINT))), length('你好')), '$'),CAST('{' AS CHARACTER(20))), (2,-7.25), (3,0.0);
|
||||
SELECT a,b FROM T WHERE NOT NOT (+a /**/ >= 2) ORDER BY b;
|
||||
DeLete FROM T WHERE +rowid = 85 RETURNING *;
|
||||
DELETE FROM T WHERE 0;
|
||||
SELECT LAG(b, 2, 'default') OVER (PARTITION BY b ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING OR CURRENT ROW EXCLUDE TIES) FROM T;
|
||||
DETACH DATABASE aux28;
|
||||
DETACH DATABASE aux0;
|
||||
DETACH DATABASE aux64;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
INSERT OR ROLLBACK INTO t1 VALUES (0, 'x', NULL, NULL);
|
||||
DROP VIEW IF EXISTS t1;
|
||||
DELETE FROM t1 WHERE 1 RETURNING *;
|
||||
REINDEX t1;
|
||||
SELECT MAX(d) OVER (PARTITION BY d ORDER BY d ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
RELEASE sp3113;
|
||||
ANALYZE t1;
|
||||
SELECT GROUP_CONCAT(b) FROM t1;
|
||||
COMMIT TRANSACTION;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
UPDATE t1 SET a = a + 1 WHERE a IS NOT NULL;
|
||||
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;
|
||||
.cd bugs
|
||||
BEGIN EXCLUSIVE;
|
||||
SAVEPOINT sp3113;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (atanh(NULL), 'Wernher', unicode('你好'), if(1, 100, 0, 100));
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
ATTACH DATABASE ':memory:' AS aux64;
|
||||
ATTACH DATABASE ':memory:' AS aux0;
|
||||
-- if(NULL, {v})
|
||||
|
||||
ATTACH DATABASE ':memory:' AS aux28;
|
||||
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;
|
||||
.system false && echo "success" || echo "error code: $?"
|
||||
CREATE TABLE [T] (
|
||||
a FLOAT,
|
||||
b REAL
|
||||
);
|
||||
INSERT
|
||||
INTO T VALUES (json_array_length(log(-(-(CAST(exp(strftime('%Y-%m-%d', x'')) AS CHARINT))), length('你好')), '$'),CAST('{' AS CHARACTER(20))), (2,-7.25), (3,0.0);
|
||||
SELECT a,b FROM T WHERE +a /**/ >= 2 ORDER BY b;
|
||||
DeLete FROM T WHERE +rowid = 85 RETURNING *;
|
||||
DELETE FROM T WHERE 0;
|
||||
SELECT LAG(b, 2, 'default') OVER (PARTITION BY b ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING OR CURRENT ROW EXCLUDE TIES) FROM T;
|
||||
DETACH DATABASE aux28;
|
||||
DETACH DATABASE aux0;
|
||||
DETACH DATABASE aux64;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
INSERT OR ROLLBACK INTO t1 VALUES (0, 'x', NULL, NULL);
|
||||
DROP VIEW IF EXISTS t1;
|
||||
DELETE FROM t1 WHERE 1 RETURNING *;
|
||||
REINDEX t1;
|
||||
SELECT MAX(d) OVER (PARTITION BY d ORDER BY d ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
RELEASE sp3113;
|
||||
ANALYZE t1;
|
||||
SELECT GROUP_CONCAT(b) FROM t1;
|
||||
COMMIT TRANSACTION;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
UPDATE t1 SET a = a + 1 WHERE a IS NOT NULL;
|
||||
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;
|
||||
.cd bugs
|
||||
BEGIN EXCLUSIVE;
|
||||
SAVEPOINT sp3113;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (atanh(NULL), 'Wernher', unicode('你好'), if(1, 100, 0, 100));
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
ATTACH DATABASE ':memory:' AS aux64;
|
||||
ATTACH DATABASE ':memory:' AS aux0;
|
||||
-- if(NULL, {v})
|
||||
|
||||
ATTACH DATABASE ':memory:' AS aux28;
|
||||
.system false && echo "success" || echo "error code: $?"
|
||||
CREATE TABLE [T] (
|
||||
a FLOAT,
|
||||
b REAL
|
||||
);
|
||||
INSERT
|
||||
INTO T VALUES (json_array_length(log(-(-(CAST(exp(strftime('%Y-%m-%d', x'')) AS CHARINT))), length('你好')), '$'),CAST('{' AS CHARACTER(20))), (2,-7.25), (3,0.0);
|
||||
SELECT a,b FROM T WHERE +a /**/ >= 2 ORDER BY b;
|
||||
DeLete FROM T WHERE +rowid = 85 RETURNING *;
|
||||
DELETE FROM T WHERE 0;
|
||||
SELECT LAG(b, 2, 'default') OVER (PARTITION BY b ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING OR CURRENT ROW EXCLUDE TIES) FROM T;
|
||||
DETACH DATABASE aux28;
|
||||
DETACH DATABASE aux0;
|
||||
DETACH DATABASE aux64;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
INSERT OR ROLLBACK INTO t1 VALUES (0, 'x', NULL, NULL);
|
||||
DROP VIEW IF EXISTS t1;
|
||||
DELETE FROM t1 WHERE 1 RETURNING *;
|
||||
REINDEX t1;
|
||||
SELECT MAX(d) OVER (PARTITION BY d ORDER BY d ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
RELEASE sp3113;
|
||||
ANALYZE t1;
|
||||
SELECT GROUP_CONCAT(b) FROM t1;
|
||||
COMMIT TRANSACTION;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
UPDATE t1 SET a = a + 1 WHERE a IS NOT NULL;
|
||||
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;
|
||||
.cd bugs
|
||||
BEGIN EXCLUSIVE;
|
||||
SAVEPOINT sp3113;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (atanh(NULL), 'Wernher', unicode('你好'), if(1, 100, 0, 100));
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
ATTACH DATABASE ':memory:' AS aux64;
|
||||
ATTACH DATABASE ':memory:' AS aux0;
|
||||
-- if(NULL, {v})
|
||||
|
||||
ATTACH DATABASE ':memory:' AS aux28;
|
||||
.system false && echo "success" || echo "error code: $?"
|
||||
CREATE TABLE [T] (
|
||||
a FLOAT,
|
||||
b REAL
|
||||
);
|
||||
INSERT
|
||||
INTO T VALUES (json_array_length(log(-(-(CAST(exp(strftime('%Y-%m-%d', x'')) AS CHARINT))), length('你好')), '$'),CAST('{' AS CHARACTER(20))), (2,-7.25), (3,0.0);
|
||||
SELECT a,b FROM T WHERE +a /**/ >= 2 ORDER BY b;
|
||||
DeLete FROM T WHERE +rowid = 85 RETURNING *;
|
||||
DELETE FROM T WHERE 0;
|
||||
SELECT LAG(b, 2, 'default') OVER (PARTITION BY b ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING OR CURRENT ROW EXCLUDE TIES) FROM T;
|
||||
DETACH DATABASE aux28;
|
||||
DETACH DATABASE aux0;
|
||||
DETACH DATABASE aux64;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
INSERT OR ROLLBACK INTO t1 VALUES (0, 'x', NULL, NULL);
|
||||
DROP VIEW IF EXISTS t1;
|
||||
DELETE FROM t1 WHERE 1 RETURNING *;
|
||||
REINDEX t1;
|
||||
SELECT MAX(d) OVER (PARTITION BY d ORDER BY d ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
RELEASE sp3113;
|
||||
ANALYZE t1;
|
||||
SELECT GROUP_CONCAT(b) FROM t1;
|
||||
COMMIT TRANSACTION;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
UPDATE t1 SET a = a + 1 WHERE a IS NOT NULL;
|
||||
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;
|
||||
.cd bugs
|
||||
BEGIN EXCLUSIVE;
|
||||
SAVEPOINT sp3113;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (atanh(NULL), 'Wernher', unicode('你好'), if(1, 100, 0, 100));
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
ATTACH DATABASE ':memory:' AS aux64;
|
||||
ATTACH DATABASE ':memory:' AS aux0;
|
||||
-- if(NULL, {v})
|
||||
|
||||
ATTACH DATABASE ':memory:' AS aux28;
|
||||
.system false && echo "success" || echo "error code: $?"
|
||||
CREATE TABLE [T] (
|
||||
a FLOAT,
|
||||
b REAL
|
||||
);
|
||||
INSERT
|
||||
INTO T VALUES (json_array_length(log(-(-(CAST(exp(strftime('%Y-%m-%d', x'')) AS CHARINT))), length('你好')), '$'),CAST('{' AS CHARACTER(20))), (2,-7.25), (3,0.0);
|
||||
SELECT a,b FROM T WHERE +a /**/ >= 2 ORDER BY b;
|
||||
DeLete FROM T WHERE +rowid = 85 RETURNING *;
|
||||
DELETE FROM T WHERE 0;
|
||||
SELECT LAG(b, 2, 'default') OVER (PARTITION BY b ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING OR CURRENT ROW EXCLUDE TIES) FROM T;
|
||||
DETACH DATABASE aux28;
|
||||
DETACH DATABASE aux0;
|
||||
DETACH DATABASE aux64;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
INSERT OR ROLLBACK INTO t1 VALUES (0, 'x', NULL, NULL);
|
||||
DROP VIEW IF EXISTS t1;
|
||||
DELETE FROM t1 WHERE 1 RETURNING *;
|
||||
REINDEX t1;
|
||||
SELECT MAX(d) OVER (PARTITION BY d ORDER BY d ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
RELEASE sp3113;
|
||||
ANALYZE t1;
|
||||
SELECT GROUP_CONCAT(b) FROM t1;
|
||||
COMMIT TRANSACTION;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
UPDATE t1 SET a = a + 1 WHERE a IS NOT NULL;
|
||||
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;
|
||||
.cd bugs
|
||||
BEGIN EXCLUSIVE;
|
||||
SAVEPOINT sp3113;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (atanh(NULL), 'Wernher', unicode('你好'), if(1, 100, 0, 100));
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
ATTACH DATABASE ':memory:' AS aux64;
|
||||
ATTACH DATABASE ':memory:' AS aux0;
|
||||
-- if(NULL, {v})
|
||||
|
||||
ATTACH DATABASE ':memory:' AS aux28;
|
||||
.system false && echo "success" || echo "error code: $?"
|
||||
CREATE TABLE [T] (
|
||||
a FLOAT,
|
||||
b REAL
|
||||
);
|
||||
INSERT
|
||||
INTO T VALUES (json_array_length(log(-(-(CAST(exp(strftime('%Y-%m-%d', x'')) AS CHARINT))), length('你好')), '$'),CAST('{' AS CHARACTER(20))), (2,-7.25), (3,0.0);
|
||||
SELECT a,b FROM T WHERE +a /**/ >= 2 ORDER BY b;
|
||||
DeLete FROM T WHERE +rowid = 85 RETURNING *;
|
||||
DELETE FROM T WHERE 0;
|
||||
SELECT LAG(b, 2, 'default') OVER (PARTITION BY b ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING OR CURRENT ROW EXCLUDE TIES) FROM T;
|
||||
DETACH DATABASE aux28;
|
||||
DETACH DATABASE aux0;
|
||||
DETACH DATABASE aux64;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
INSERT OR ROLLBACK INTO t1 VALUES (0, 'x', NULL, NULL);
|
||||
DROP VIEW IF EXISTS t1;
|
||||
DELETE FROM t1 WHERE 1 RETURNING *;
|
||||
REINDEX t1;
|
||||
SELECT MAX(d) OVER (PARTITION BY d ORDER BY d ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
RELEASE sp3113;
|
||||
ANALYZE t1;
|
||||
SELECT GROUP_CONCAT(b) FROM t1;
|
||||
COMMIT TRANSACTION;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
UPDATE t1 SET a = a + 1 WHERE a IS NOT NULL;
|
||||
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;
|
||||
.cd bugs
|
||||
BEGIN EXCLUSIVE;
|
||||
SAVEPOINT sp3113;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (atanh(NULL), 'Wernher', unicode('你好'), if(1, 100, 0, 100));
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
ATTACH DATABASE ':memory:' AS aux64;
|
||||
ATTACH DATABASE ':memory:' AS aux0;
|
||||
-- if(NULL, {v})
|
||||
|
||||
ATTACH DATABASE ':memory:' AS aux28;
|
||||
.system false && echo "success" || echo "error code: $?"
|
||||
CREATE TABLE [T] (
|
||||
a FLOAT,
|
||||
b REAL
|
||||
);
|
||||
INSERT
|
||||
INTO T VALUES (json_array_length(log(-(-(CAST(exp(strftime('%Y-%m-%d', x'')) AS CHARINT))), length('你好')), '$'),CAST('{' AS CHARACTER(20))), (2,-7.25), (3,0.0);
|
||||
SELECT a,b FROM T WHERE +a /**/ >= 2 ORDER BY b;
|
||||
DeLete FROM T WHERE +rowid = 85 RETURNING *;
|
||||
DELETE FROM T WHERE 0;
|
||||
SELECT LAG(b, 2, 'default') OVER (PARTITION BY b ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING OR CURRENT ROW EXCLUDE TIES) FROM T;
|
||||
DETACH DATABASE aux28;
|
||||
DETACH DATABASE aux0;
|
||||
DETACH DATABASE aux64;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
INSERT OR ROLLBACK INTO t1 VALUES (0, 'x', NULL, NULL);
|
||||
DROP VIEW IF EXISTS t1;
|
||||
DELETE FROM t1 WHERE 1 RETURNING *;
|
||||
REINDEX t1;
|
||||
SELECT MAX(d) OVER (PARTITION BY d ORDER BY d ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
RELEASE sp3113;
|
||||
ANALYZE t1;
|
||||
SELECT GROUP_CONCAT(b) FROM t1;
|
||||
COMMIT TRANSACTION;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
UPDATE t1 SET a = a + 1 WHERE a IS NOT NULL;
|
||||
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;
|
||||
.cd bugs
|
||||
BEGIN EXCLUSIVE;
|
||||
SAVEPOINT sp3113;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
|
||||
INSERT INTO t1 VALUES (atanh(NULL), 'Wernher', unicode('你好'), if(1, 100, 0, 100));
|
||||
INSERT INTO t1 VALUES (2, 'von', 20, 200);
|
||||
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
|
||||
CREATE INDEX t1bc ON t1(b, c);
|
||||
PRAGMA writable_schema = ON;
|
||||
.imposter t1bc t2
|
||||
|
||||
SELECT * FROM t2;
|
||||
SELECT b, c FROM t1 ORDER BY b, c;
|
||||
.quit
|
||||
ATTACH DATABASE ':memory:' AS aux64;
|
||||
ATTACH DATABASE ':memory:' AS aux0;
|
||||
-- if(NULL, {v})
|
||||
|
||||
ATTACH DATABASE ':memory:' AS aux28;
|
||||
.system false && echo "success" || echo "error code: $?"
|
||||
CREATE TABLE [T] (
|
||||
a FLOAT,
|
||||
b REAL
|
||||
);
|
||||
INSERT
|
||||
INTO T VALUES (json_array_length(log(-(-(CAST(exp(strftime('%Y-%m-%d', x'')) AS CHARINT))), length('你好')), '$'),CAST('{' AS CHARACTER(20))), (2,-7.25), (3,0.0);
|
||||
SELECT a,b FROM T WHERE +a /**/ >= 2 ORDER BY b;
|
||||
DeLete FROM T WHERE +rowid = 85 RETURNING *;
|
||||
DELETE FROM T WHERE 0;
|
||||
SELECT LAG(b, 2, 'default') OVER (PARTITION BY b ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING OR CURRENT ROW EXCLUDE TIES) FROM T;
|
||||
DETACH DATABASE aux28;
|
||||
DETACH DATABASE aux0;
|
||||
DETACH DATABASE aux64;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
INSERT OR ROLLBACK INTO t1 VALUES (0, 'x', NULL, NULL);
|
||||
DROP VIEW IF EXISTS t1;
|
||||
DELETE FROM t1 WHERE 1 RETURNING *;
|
||||
REINDEX t1;
|
||||
SELECT MAX(d) OVER (PARTITION BY d ORDER BY d ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t1;
|
||||
INSERT INTO t1 DEFAULT VALUES;
|
||||
RELEASE sp3113;
|
||||
ANALYZE t1;
|
||||
SELECT GROUP_CONCAT(b) FROM t1;
|
||||
COMMIT TRANSACTION;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
UPDATE t1 SET a = a + 1 WHERE a IS NOT NULL;
|
||||
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 T DEFAULT VALUES;
|
||||
WITH cte AS (SELECT * FROM T) SELECT (SELECT COUNT(*) FROM cte) AS total, * FROM cte LIMIT 1;
|
||||
INSERT INTO t1 VALUES (NULL, NULL, NULL, NULL);
|
||||
INSERT INTO T DEFAULT VALUES;
|
||||
DROP TABLE IF EXISTS T;
|
||||
UPDATE t1 SET c = c + 1 WHERE c IS NOT NULL RETURNING *;
|
||||
SELECT * FROM T WHERE c NOT IN (SELECT c FROM T);
|
||||
SELECT COUNT(c) FILTER (WHERE c IS NOT NULL) OVER (PARTITION BY c ORDER BY c ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t1;
|
||||
DROP TABLE IF EXISTS T;
|
||||
SELECT COUNT(*) FROM T;
|
||||
ALTER TABLE T RENAME COLUMN a TO a_r8411;
|
||||
VACUUM;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT * FROM T WHERE (b) IN (SELECT b FROM T);
|
||||
INSERT INTO T VALUES (NULL, NULL, NULL);
|
||||
SELECT * FROM T;
|
||||
PRAGMA secure_delete = 0;
|
||||
REINDEX;
|
||||
SELECT * FROM T AS a FULL JOIN T AS b ON a.rowid = b.rowid;
|
||||
SELECT NTILE(4) OVER (ORDER BY A ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM T1;
|
||||
CREATE TEMPORARY VIEW IF NOT EXISTS v_T2_5374 AS SELECT Y FROM T2;
|
||||
|
||||
SELECT COUNT(*) FROM T1;
|
||||
ALTER TABLE T ADD COLUMN extra_9859 CLOB COLLATE RTRIM;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
2|-2.5
|
||||
3|0.0
|
||||
1|1.5
|
||||
0
|
||||
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
|
||||
WARNING: writing to an imposter table will corrupt the "t1bc" index!
|
||||
Braun|30|3
|
||||
von|20|2
|
||||
Braun|30
|
||||
von|20
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user