Files
ast-project/part1/results/3/bug_5741f0be-1b30-4c88-b76d-011a12a17e02_logic.md
2026-06-24 13:47:14 +02:00

151 lines
6.7 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
BEGIN TRANSACTION;
.print https://yewtu.be/watch?v=dQw4w9WgXcQ
PRAGMA writable_schema = NO;
ATTACH DATABASE ':memory:' AS aux15;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INT, d INT);
INSERT INTO t1 VALUES (-round(like('_10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000_', CAST(10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 AS DOUBLE PRECISION)), 0), 'Wernher', 10, 100);
INSERT INTO t1 VALUES (2, 'von', 20, 200);
INSERT INTO t1 VALUES (3, 'Braun', 30, 300);
CREATE INDEX t1bc ON t1(b, c);
PRAGMA writable_schema = ON;
.imposter t1bc t2
SELECT * FROM t2;
SELECT b, c FROM t1 ORDER BY b, c;
.quit
ATTACH DATABASE (':memory:' || '') AS aux87;
PRAGMA analysis_limit = '';
PRAGMA default_cache_size = -abs(NULL);
PRAGMA query_only = FALSE;
.shell pwd
create temp table t1(x);
insert into t1 values('amx');
insert into t1 values('anx');
insert into t1 values('amy');
insert into t1 values('bmy');
select * from t1 where x like 'a__' intersect select * from t1 where x like '_m_' intersect select * from t1 /**/ where x like '__x';
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_6526 ON t1((x + likelihood(1, 0.0))) WHERE x IS NOT NULL;
SELECT SUM(x) FROM t1;
DETACH DATABASE aux87;
ALTER TABLE t1 RENAME COLUMN x TO x_r9111;
CREATE TRIGGER IF NOT EXISTS trg_t1_3480 BEFORE UPDATE OF x ON t1 BEGIN SELECT RAISE(IGNORE); END;
ATTACH DATABASE ':memory:' AS aux87;
PRAGMA analysis_limit = '';
PRAGMA default_cache_size = -1000;
PRAGMA query_only = FALSE;
.shell pwd
create temp table t1(x);
insert into t1 values('amx');
insert into t1 values('anx');
insert into t1 values('amy');
insert into t1 values('bmy');
select * from t1 where x like 'a__' intersect select * from t1 where x like '_m_' intersect select * from t1 /**/ where x like '__x';
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_6526 ON t1((x + 1)) WHERE x IS NOT NULL;
SELECT SUM(x) FROM t1;
DETACH DATABASE aux87;
ALTER TABLE t1 RENAME COLUMN x TO x_r9111;
CREATE TRIGGER IF NOT EXISTS trg_t1_3480 BEFORE UPDATE OF x ON t1 BEGIN SELECT RAISE(IGNORE); END;
ATTACH DATABASE ':memory:' AS aux87;
PRAGMA analysis_limit = '';
PRAGMA default_cache_size = -1000;
PRAGMA query_only = FALSE;
.shell pwd
create temp table t1(x);
insert into t1 values('amx');
insert into t1 values('anx');
insert into t1 values('amy');
insert into t1 values('bmy');
select * from t1 where x like 'a__' intersect select * from t1 where x like '_m_' intersect select * from t1 /**/ where x like '__x';
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_6526 ON t1((x + 1)) WHERE x IS NOT NULL;
SELECT SUM(x) FROM t1;
DETACH DATABASE aux87;
ALTER TABLE t1 RENAME COLUMN x TO x_r9111;
CREATE TRIGGER IF NOT EXISTS trg_t1_3480 BEFORE UPDATE OF x ON t1 BEGIN SELECT RAISE(IGNORE); END;
ATTACH DATABASE ':memory:' AS aux87;
PRAGMA analysis_limit = '';
PRAGMA default_cache_size = -1000;
PRAGMA query_only = FALSE;
.shell pwd
create temp table t1(x);
insert into t1 values('amx');
insert into t1 values('anx');
insert into t1 values('amy');
insert into t1 values('bmy');
select * from t1 where x like 'a__' intersect select * from t1 where x like '_m_' intersect select * from t1 /**/ where x like '__x';
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_6526 ON t1((x + 1)) WHERE x IS NOT NULL;
SELECT SUM(x) FROM t1;
DETACH DATABASE aux87;
ALTER TABLE t1 RENAME COLUMN x TO x_r9111;
CREATE TRIGGER IF NOT EXISTS trg_t1_3480 BEFORE UPDATE OF x ON t1 BEGIN SELECT RAISE(IGNORE); END;
ANALYZE;
SELECT * FROM t1 AS a FULL JOIN t1 AS b ON a.rowid = b.rowid;
INSERT AND IGNORE INTO t1 VALUES (-1);
ANALYZE;
DETACH DATABASE aux15;
CREATE INDEX IF NOT EXISTS idx_t1_3835 ON t1(lower(x)) WHERE x > 0;
INSERT OR REPLACE INTO t1 VALUES ('x');
INSERT INTO t1 VALUES (NULL);
ALTER TABLE t1 RENAME /* PRAGMA defer_foreign_keys = 1; */ COLUMN x TO x_r5534;
SELECT COUNT(*) FROM t1;
VACUUM main;
ROLLBACK;
SELECT MAX(x) FROM t1;
CREATE UNIQUE INDEX IF NOT EXISTS idx_t1_2774 ON t1(x) WHERE x IS NOT NULL;
WITH a AS (SELECT * FROM t1), b AS (SELECT * FROM a), c AS (SELECT * FROM b), d AS (SELECT * FROM c) SELECT * FROM d;
ALTER TABLE t1 ADD COLUMN extra_6672 NONE DEFAULT CURRENT_TIMESTAMP;
DELETE FROM t1 WHERE 1;
REINDEX t1;
UPDATE t1 SET x = NULL;
```
## Actual output
```sql
https://yewtu.be/watch?v=dQw4w9WgXcQ
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
WARNING: writing to an imposter table will corrupt the "t1bc" index!
Braun|30|3
Wernher|10|0
von|20|2
Braun|30
Wernher|10
von|20
```
## Expectation
```sql
https://yewtu.be/watch?v=dQw4w9WgXcQ
CREATE TABLE "t2"("b","c","_ROWID_",PRIMARY KEY("b","c","_ROWID_"))WITHOUT ROWID;
Braun|30|3
Wernher|10|0
von|20|2
Braun|30
Wernher|10
von|20
```
## Flag
```
```