132 lines
6.9 KiB
Markdown
132 lines
6.9 KiB
Markdown
## Summary
|
|
<!--Explain briefly what goes wrong and explain why you believe this is a bug and not the intended behavior of SQLite (if it is not a crash).-->**No review yet**
|
|
|
|
## Minimized query
|
|
|
|
```sql
|
|
.eqp full
|
|
BEGIN DEFERRED;
|
|
.quit
|
|
SAVEPOINT sp5631;
|
|
.exit if(-char(-(-(if(-json_pretty(datetime(if(1, 1, 0, 1), '+1 day'), ' '), 1114111, 1114111)))), 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 0, 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 1, 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
|
|
CREATE TABLE main.T (
|
|
a CHARINT,
|
|
|
|
b TEXT,
|
|
c REAL
|
|
);
|
|
INSERT INTO T VALUES ('a','b',like('*1.5', -(-(unixepoch(-floor(like('', 999057770073034970))))))), ('a','c',-2.25), ('b','b',4.75);
|
|
SELECT a,
|
|
SUM(CASE WHEN b='b' THEN c ELSE 0 END) AS d,
|
|
SUM(CASE WHEN b='c' THEN c ELSE 0 END) AS e
|
|
FROM T
|
|
GROUP BY a;
|
|
INSERT INTO T SELECT * FROM T;
|
|
INSERT INTO T VALUES (NULL, NULL, NULL);
|
|
INSERT INTO T DEFAULT VALUES;
|
|
SELECT * FROM T;
|
|
ANALYZE T;
|
|
ANALYZE;
|
|
SELECT * FROM T;
|
|
ALTER TABLE T RENAME COLUMN c TO c_r70;
|
|
SELECT * FROM T WHERE a IN (SELECT a FROM T LIMIT 0);
|
|
SELECT * FROM T CROSS JOIN T;
|
|
DROP INDEX IF EXISTS T;
|
|
INSERT INTO T VALUES (1, 'x', NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b, c = excluded.c;
|
|
CREATE TABLE T1 (
|
|
a INTEGER,
|
|
b REAL
|
|
);
|
|
CREATE TABLE T2 (
|
|
a INTEGER,
|
|
b REAL
|
|
);
|
|
INSERT INTO T1 VALUES (1,1.0);
|
|
INSERT INTO T2 VALUES (1,-1.0),(2,9e999);
|
|
INSERT AND REPLACE INTO T1
|
|
SELECT * FROM T2;
|
|
SELECT * FROM T1;
|
|
ANALYZE T1;
|
|
REINDEX;
|
|
ALTER TABLE T ADD COLUMN extra_7926 DATETIME DEFAULT '';
|
|
ROLLBACK TRANSACTION TO SAVEPOINT sp5631;
|
|
RELEASE SAVEPOINT sp5631;
|
|
SELECT MIN(b) FROM T1;
|
|
CREATE UNIQUE INDEX IF NOT EXISTS idx_T1_3573 ON T1(a) WHERE a > 0;
|
|
CREATE TABLE T (
|
|
A VARCHAR(20),
|
|
B VARCHAR(10),
|
|
PRIMARY KEY (A, B)
|
|
);
|
|
INSERT INTO T VALUES ('a', 'p');
|
|
INSERT INTO T VALUES ('a', 'q');
|
|
INSERT INTO T VALUES ('b', 'q');
|
|
INSERT INTO T VALUES ('c', 'r');
|
|
INSERT INTO T VALUES ('b', 'r');
|
|
INSERT INTO T VALUES ('b', 't');
|
|
SELECT B, COUNT(DISTINCT A) AS D FROM T GROUP BY B ORDER BY D DESC, B ASC;
|
|
ALTER TABLE T1 RENAME COLUMN b TO b_r1178;
|
|
PRAGMA automatic_index = TRUE;
|
|
INSERT INTO T1 VALUES (NULL, NULL);
|
|
PRAGMA synchronous = 'OFF';
|
|
INSERT INTO T2 VALUES (NULL, NULL);
|
|
|
|
SELECT COUNT(*) FROM T2;
|
|
END TRANSACTION;
|
|
CREATE TRIGGER IF NOT EXISTS trg_T2_2403 AFTER UPDATE OF a ON T2 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
|
|
WITH RECURSIVE tree(id, parent, depth) AS (VALUES(1, NULL, 0) UNION ALL SELECT id+1, id, depth+1 FROM tree WHERE depth<46) SELECT * FROM tree;
|
|
|
|
SELECT COUNT(*) FROM T2;
|
|
INSERT INTO T1 DEFAULT VALUES;
|
|
CREATE TABLE T (
|
|
A VARCHAR(20),
|
|
B VARCHAR(10),
|
|
PRIMARY KEY (A, B)
|
|
);
|
|
INSERT INTO T VALUES ('a', 'p');
|
|
INSERT INTO T VALUES ('a', 'q');
|
|
INSERT INTO T VALUES ('b', 'q');
|
|
INSERT INTO T VALUES ('c', 'r');
|
|
INSERT INTO T VALUES ('b', 'r');
|
|
INSERT INTO T VALUES ('b', 't');
|
|
SELECT B, COUNT(DISTINCT A) AS D FROM T GROUP BY B ORDER BY D DESC, B ASC;
|
|
ALTER TABLE T1 RENAME COLUMN a TO a_r9833;
|
|
VACUUM;
|
|
SELECT a FROM T1 WHERE a = (SELECT MAX(a) FROM T1);
|
|
ANALYZE;
|
|
SELECT B, (SELECT SUM(B) FROM T) AS sum_val FROM T;
|
|
SELECT * FROM T2;
|
|
INSERT INTO T VALUES (NULL, NULL);
|
|
SELECT * FROM T1 WHERE b NOT IN (SELECT b FROM T1 WHERE b IS NOT NULL);
|
|
INSERT INTO T2 VALUES (NULL, NULL) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
|
|
REINDEX T2;
|
|
```
|
|
|
|
## Actual output
|
|
|
|
```sql
|
|
addr opcode p1 p2 p3 p4 p5 comment
|
|
---- ------------- ---- ---- ---- ------------- -- -------------
|
|
0 Init 0 1 0 0 Start at 1
|
|
1 AutoCommit 0 0 0 0
|
|
2 Halt 0 0 0 0
|
|
```
|
|
|
|
## Expectation
|
|
|
|
```sql
|
|
addr opcode p1 p2 p3 p4 p5 comment
|
|
---- ------------- ---- ---- ---- ------------- -- -------------
|
|
0 Init 0 3 0 0 Start at 3
|
|
1 AutoCommit 0 0 0 0
|
|
2 Halt 0 0 0 0
|
|
3 Goto 0 1 0 0
|
|
```
|
|
|
|
## Flag
|
|
|
|
```
|
|
-deserialize
|
|
```
|
|
|