Files
ast-project/part1/results/3/bug_1022ba9e-f528-4d60-8fd2-cd36608573f5_logic.md
2026-06-24 13:47:14 +02:00

164 lines
8.4 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
ATTACH DATABASE ':memory:' AS aux68;
.echo on
.limit COLUMN -tanh(radians(1))
.eqp full
BEGIN DEFERRED;
.quit
SAVEPOINT sp5631;
.exit if(-char(-(-(if(-json_pretty(datetime(if(date(1, 'start of month'), 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
WITH _m AS MATERIALIZED (SELECT * FROM T1) SELECT * FROM T2;
SELECT * FROM _m;
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;
WITH cte AS (SELECT 1 AS x) SELECT x + 0.5 FROM cte;
SELECT SUM(a) FROM T1;
SELECT AVG(B) FROM T;
ALTER TABLE T2 RENAME COLUMN a TO a_r2012;
INSERT INTO T1 SELECT * FROM T1;
CREATE TRIGGER IF NOT EXISTS trg_T2_7416 AFTER DELETE ON T2 FOR EACH ROW BEGIN SELECT RAISE(IGNORE); END;
SELECT a, (SELECT MIN(a) FROM T1) AS min_val FROM T1;
CREATE TRIGGER IF NOT EXISTS trg_T2_3024 BEFORE UPDATE OF b ON T2 BEGIN INSERT INTO T2(b) VALUES (NULL); END;
ANALYZE;
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 T2;
DROP TABLE IF EXISTS T2;
CREATE TRIGGER IF NOT EXISTS trg_T_1280 BEFORE UPDATE OF B ON T BEGIN SELECT RAISE(IGNORE); END;
SELECT * FROM T2 WHERE a = (SELECT MAX(a) FROM T2 WHERE a = (SELECT MAX(a) FROM T2));
INSERT INTO T1 VALUES ('x', 'x') ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
ALTER TABLE T2 ADD COLUMN extra_4873 CHARACTER(20) DEFAULT CURRENT_TIMESTAMP;
DETACH DATABASE aux68;
ANALYZE T;
ALTER TABLE T ADD COLUMN extra_6814 DATE DEFAULT 0;
PRAGMA recursive_triggers = FALSE;
```
## Actual output
```sql
.limit COLUMN -tanh(radians(1))
column 0
.eqp full
BEGIN DEFERRED;
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
.quit
```
## Expectation
```sql
.limit COLUMN -tanh(radians(1))
column 0
.eqp full
BEGIN DEFERRED;
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
.quit
```
## Flag
```
-box
```