214 lines
2.1 KiB
Markdown
214 lines
2.1 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).-->
|
|
The queries added new columns with 123. Probably "INTERSECT" is wrong. It is a logic bug because the output is different
|
|
|
|
## Minimized query
|
|
|
|
```sql
|
|
ATTACH DATABASE ':memory:' AS aux12;
|
|
PRAGMA fullfsync;
|
|
PRAGMA automatic_index = ON;
|
|
PRAGMA wal_checkpoint;
|
|
.tables
|
|
CREATE TABLE t1(c1);
|
|
INSERT INTO t1 VALUES(if(2147483647, 12, 0, 12, 0, 12, 12)),(123),(1234),(NULL),('abc');
|
|
CREATE TABLE "t2"(c2);
|
|
INSERT INTO t2 VALUES(44),(55),(123);
|
|
CREATE TABLE t3(c3,c4);
|
|
INSERT INTO t3 VALUES(66,1),(123,2),(77,3);
|
|
CREATE VIEW t4 AS SELECT c3 FROM t3;
|
|
CREATE VIEW t5 AS SELECT c3 FROM t3 ORDER BY c4;
|
|
SELECT * FROM t1, t2 WHERE c1=(SELECT 123 INTERSECT SELECT c2 FROM t4) AND c1=123;
|
|
SELECT * FROM t1, t2 WHERE c1=(SELECT 123 INTERSECT SELECT c2 FROM t5) AND c1=123;
|
|
|
|
|
|
SELECT COUNT(*) FROM t1;
|
|
ANALYZE;
|
|
INSERT OR IGNORE INTO t1 VALUES ('');
|
|
SELECT * FROM t1 WHERE c1 = (SELECT SUM(c1) FROM t1);
|
|
INSERT INTO t2 DEFAULT VALUES;
|
|
|
|
SELECT COUNT(*) FROM t1;
|
|
ANALYZE;
|
|
WITH RECURSIVE cnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<63) SELECT * FROM cnt;
|
|
ANALYZE;
|
|
|
|
SELECT COUNT(*) FROM t3;
|
|
ANALYZE t2;
|
|
ANALYZE;
|
|
CREATE TEMP VIEW IF NOT EXISTS v_t1_9829 AS SELECT c1 FROM t1;
|
|
WITH cte AS (SELECT c3, LEAD(c3) OVER (ORDER BY c3) AS nxt FROM t3) SELECT * FROM cte;
|
|
SELECT * FROM t1 NATURAL JOIN t1;
|
|
REINDEX;
|
|
PRAGMA foreign_keys = YES;
|
|
VACUUM main;
|
|
CREATE TRIGGER IF NOT EXISTS trg_t1_6595 BEFORE UPDATE OF c1 ON t1 FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END;
|
|
DETACH DATABASE aux12;
|
|
INSERT INTO t1 DEFAULT VALUES;
|
|
```
|
|
|
|
## Actual output
|
|
|
|
```sql
|
|
0
|
|
0|-1|-1
|
|
0
|
|
1
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
10
|
|
11
|
|
12
|
|
13
|
|
14
|
|
15
|
|
16
|
|
17
|
|
18
|
|
19
|
|
20
|
|
21
|
|
22
|
|
23
|
|
24
|
|
25
|
|
26
|
|
27
|
|
28
|
|
29
|
|
30
|
|
31
|
|
32
|
|
33
|
|
34
|
|
35
|
|
36
|
|
37
|
|
38
|
|
39
|
|
40
|
|
41
|
|
42
|
|
43
|
|
44
|
|
45
|
|
46
|
|
47
|
|
48
|
|
49
|
|
50
|
|
51
|
|
52
|
|
53
|
|
54
|
|
55
|
|
56
|
|
57
|
|
58
|
|
59
|
|
60
|
|
61
|
|
62
|
|
63
|
|
3
|
|
66|77
|
|
77|123
|
|
123|
|
|
```
|
|
|
|
## Expectation
|
|
|
|
```sql
|
|
0
|
|
0|-1|-1
|
|
123|123
|
|
123|123
|
|
5
|
|
6
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
10
|
|
11
|
|
12
|
|
13
|
|
14
|
|
15
|
|
16
|
|
17
|
|
18
|
|
19
|
|
20
|
|
21
|
|
22
|
|
23
|
|
24
|
|
25
|
|
26
|
|
27
|
|
28
|
|
29
|
|
30
|
|
31
|
|
32
|
|
33
|
|
34
|
|
35
|
|
36
|
|
37
|
|
38
|
|
39
|
|
40
|
|
41
|
|
42
|
|
43
|
|
44
|
|
45
|
|
46
|
|
47
|
|
48
|
|
49
|
|
50
|
|
51
|
|
52
|
|
53
|
|
54
|
|
55
|
|
56
|
|
57
|
|
58
|
|
59
|
|
60
|
|
61
|
|
62
|
|
63
|
|
3
|
|
66|77
|
|
77|123
|
|
123|
|
|
12
|
|
123
|
|
1234
|
|
abc
|
|
```
|
|
|
|
## Flag
|
|
|
|
```
|
|
|
|
```
|
|
|