126 lines
3.2 KiB
Markdown
126 lines
3.2 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
|
|
.progress 9999
|
|
PRAGMA cell_size_check = NO;
|
|
ATTACH DATABASE ':memory:' AS aux65;
|
|
CREATE TABLE T (
|
|
a VARCHAR(255),
|
|
b TEXT,
|
|
c INTEGER
|
|
);
|
|
INSERT INTO T VALUES (NULL,'a',NULL), (2,'b',1), (3,'c',2);
|
|
WITH RECURSIVE d(a,b,c,e) AS (
|
|
SELECT *,1 FROM T WHERE c IS NULL
|
|
UNION ALL
|
|
SELECT T.a,T.b,T.c,d.e+1
|
|
FROM T JOIN d ON T.c=d.a
|
|
)
|
|
SELECT * FROM d;
|
|
.timer on
|
|
CREATE TABLE T1 (
|
|
A VARCHAR(-1445937777629738465),
|
|
X VARCHAR(10),
|
|
PRIMARY KEY (A, X),
|
|
UNIQUE (X)
|
|
);
|
|
CREATE TABLE T2 (
|
|
A VARCHAR(20),
|
|
Y VARCHAR(10) UNIQUE,
|
|
PRIMARY KEY (A, Y)
|
|
);
|
|
INSERT INTO T1 VALUES ('a', 'm');
|
|
INSERT INTO T1 VALUES ('b', 'n');
|
|
INSERT INTO T2 VALUES ('b', 'k');
|
|
SELECT A FROM T1 UNION ALL SELECT A FROM T2 ORDER BY A;
|
|
SELECT * FROM T1 WHERE X < (SELECT MIN(X) FROM T1);
|
|
DETACH DATABASE aux65;
|
|
SELECT * FROM T2;
|
|
UPDATE T2 SET Y = '' WHERE Y BETWEEN 0 AND 100;
|
|
SELECT * FROM T;
|
|
SELECT COUNT(b) FROM T;
|
|
CREATE TRIGGER IF NOT EXISTS trg_T2_7744 AFTER INSERT ON T2 BEGIN SELECT RAISE(ABORT, 'abort'); END;
|
|
UPDATE T2 SET A = CURRENT_TIMESTAMP WHERE 1 RETURNING *;
|
|
SELECT * FROM T1 AS a INNER JOIN T1 AS b ON a.rowid = b.rowid;
|
|
INSERT INTO T1 VALUES (NULL, NULL);
|
|
PRAGMA vdbe_listing = 1;
|
|
```
|
|
|
|
## Actual output
|
|
|
|
```sql
|
|
|a||1
|
|
Run Time: real 0.001 user 0.000000 sys 0.000128
|
|
Run Time: real 0.000 user 0.000000 sys 0.000059
|
|
Run Time: real 0.000 user 0.000000 sys 0.000017
|
|
Run Time: real 0.000 user 0.000000 sys 0.000010
|
|
Run Time: real 0.000 user 0.000000 sys 0.000009
|
|
a
|
|
b
|
|
b
|
|
Run Time: real 0.000 user 0.000000 sys 0.000031
|
|
Run Time: real 0.000 user 0.000000 sys 0.000041
|
|
Run Time: real 0.000 user 0.000000 sys 0.000006
|
|
b|k
|
|
Run Time: real 0.000 user 0.000000 sys 0.000007
|
|
Run Time: real 0.000 user 0.000000 sys 0.000029
|
|
|a|
|
|
2|b|1
|
|
3|c|2
|
|
Run Time: real 0.000 user 0.000000 sys 0.000008
|
|
3
|
|
Run Time: real 0.000 user 0.000000 sys 0.000009
|
|
Run Time: real 0.000 user 0.000000 sys 0.000045
|
|
2026-05-15 11:40:11|k
|
|
Run Time: real 0.000 user 0.000000 sys 0.000071
|
|
a|m|a|m
|
|
b|n|b|n
|
|
Run Time: real 0.000 user 0.000000 sys 0.000023
|
|
Run Time: real 0.000 user 0.000000 sys 0.000012
|
|
Run Time: real 0.000 user 0.000000 sys 0.000003
|
|
```
|
|
|
|
## Expectation
|
|
|
|
```sql
|
|
|a||1
|
|
Run Time: real 0.000051 user 0.000000 sys 0.000061
|
|
Run Time: real 0.000030 user 0.000000 sys 0.000030
|
|
Run Time: real 0.000010 user 0.000000 sys 0.000010
|
|
Run Time: real 0.000005 user 0.000000 sys 0.000006
|
|
Run Time: real 0.000005 user 0.000000 sys 0.000005
|
|
a
|
|
b
|
|
b
|
|
Run Time: real 0.000015 user 0.000000 sys 0.000015
|
|
Run Time: real 0.000021 user 0.000000 sys 0.000021
|
|
Run Time: real 0.000004 user 0.000000 sys 0.000004
|
|
b|k
|
|
Run Time: real 0.000003 user 0.000000 sys 0.000003
|
|
Run Time: real 0.000015 user 0.000000 sys 0.000015
|
|
|a|
|
|
2|b|1
|
|
3|c|2
|
|
Run Time: real 0.000004 user 0.000000 sys 0.000004
|
|
3
|
|
Run Time: real 0.000004 user 0.000000 sys 0.000005
|
|
Run Time: real 0.000024 user 0.000000 sys 0.000024
|
|
2026-05-15 11:40:11|k
|
|
Run Time: real 0.000052 user 0.000000 sys 0.000052
|
|
a|m|a|m
|
|
b|n|b|n
|
|
Run Time: real 0.000013 user 0.000000 sys 0.000013
|
|
Run Time: real 0.000007 user 0.000000 sys 0.000007
|
|
Run Time: real 0.000002 user 0.000000 sys 0.000002
|
|
```
|
|
|
|
## Flag
|
|
|
|
```
|
|
|
|
```
|
|
|