Files
ast-project/part1/results/3/bug_c4158fec-eb21-4e67-8938-ea2146ae9359_logic.md
T
2026-06-24 13:47:14 +02:00

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
```