Files
ast-project/part1/results/1/bug_52656542-038c-457b-a458-822a6e321930_logic.md
2026-06-24 13:47:14 +02:00

532 lines
14 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
.once log.txt
PRAGMA case_sensitive_like = ON;
-- PRAGMA wal_checkpoint('FULL');
PRAGMA locking_mode;
PRAGMA vdbe_listing = FALSE;
.auth ON
PRAGMA page_size=1.0;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b BLOB);
WITH RECURSIVE c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<30) INSERT INTO t1(a,b) SELECT i, zeroblob(6500) FROM c;
UPDATE t1 SET b=zeroblob(3000);
UPDATE t1 SET b=zeroblob(64000) WHERE a=2;
PRAGMA integrity_check;
SELECT * FROM t1;
UPDATE t1 SET b = -44 WHERE rowid = 1;
SELECT GROUP_CONCAT(b, b) OVER (ORDER BY b GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t1;
INSERT INTO t1 VALUES (NULL, 1) ON CONFLICT(a) DO UPDATE SET a = excluded.a, b = excluded.b;
SELECT * FROM (SELECT * FROM t1) AS sub;
ALTER TABLE t1 ADD COLUMN extra_726 CHARACTER(20) COLLATE NOCASE;
REINDEX;
SELECT * FROM t1 AS a RIGHT JOIN t1 AS b ON a.rowid = b.rowid;
VACUUM;
DELETE FROM t1 WHERE 0;
CREATE TRIGGER IF NOT EXISTS trg_t1_1506 AFTER INSERT ON t1 FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'no'); END;
ANALYZE t1;
```
## Actual output
```sql
normal
authorizer: PRAGMA "page_size" "1.0" NULL NULL
authorizer: INSERT "sqlite_master" NULL "main" NULL
authorizer: CREATE_TABLE "t1" NULL "main" NULL
authorizer: UPDATE "sqlite_master" "type" "main" NULL
authorizer: UPDATE "sqlite_master" "name" "main" NULL
authorizer: UPDATE "sqlite_master" "tbl_name" "main" NULL
authorizer: UPDATE "sqlite_master" "rootpage" "main" NULL
authorizer: UPDATE "sqlite_master" "sql" "main" NULL
authorizer: READ "sqlite_master" "ROWID" "main" NULL
authorizer: INSERT "t1" NULL "main" NULL
authorizer: SELECT NULL NULL NULL NULL
authorizer: FUNCTION NULL "zeroblob" NULL NULL
authorizer: SELECT NULL NULL NULL "c"
authorizer: RECURSIVE NULL NULL NULL "c"
authorizer: SELECT NULL NULL NULL "c"
authorizer: SELECT NULL NULL NULL "c"
authorizer: FUNCTION NULL "zeroblob" NULL NULL
authorizer: UPDATE "t1" "b" "main" NULL
authorizer: FUNCTION NULL "zeroblob" NULL NULL
authorizer: UPDATE "t1" "b" "main" NULL
authorizer: READ "t1" "a" "main" NULL
authorizer: PRAGMA "integrity_check" NULL NULL NULL
ok
authorizer: SELECT NULL NULL NULL NULL
authorizer: READ "t1" "a" "main" NULL
authorizer: READ "t1" "b" "main" NULL
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|
authorizer: UPDATE "t1" "b" "main" NULL
authorizer: READ "t1" "a" "main" NULL
authorizer: SELECT NULL NULL NULL NULL
authorizer: FUNCTION NULL "group_concat" NULL NULL
authorizer: READ "t1" "b" "main" NULL
authorizer: READ "t1" "b" "main" NULL
authorizer: READ "t1" "b" "main" NULL
authorizer: SELECT NULL NULL NULL NULL
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
authorizer: INSERT "t1" NULL "main" NULL
authorizer: READ "t1" "a" "main" NULL
authorizer: UPDATE "t1" "a" "main" NULL
authorizer: UPDATE "t1" "b" "main" NULL
authorizer: SELECT NULL NULL NULL NULL
authorizer: READ "t1" "a" "main" NULL
authorizer: READ "t1" "b" "main" NULL
authorizer: SELECT NULL NULL NULL NULL
1|-44
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|1
authorizer: ALTER_TABLE "main" "t1" NULL NULL
authorizer: FUNCTION NULL "printf" NULL NULL
authorizer: READ "sqlite_master" "sql" "main" NULL
authorizer: FUNCTION NULL "substr" NULL NULL
authorizer: READ "sqlite_master" "sql" "main" NULL
authorizer: FUNCTION NULL "length" NULL NULL
authorizer: FUNCTION NULL "printf" NULL NULL
authorizer: READ "sqlite_master" "sql" "main" NULL
authorizer: UPDATE "sqlite_master" "sql" "main" NULL
authorizer: READ "sqlite_master" "type" "main" NULL
authorizer: READ "sqlite_master" "name" "main" NULL
authorizer: SELECT NULL NULL NULL NULL
authorizer: READ "t1" "a" "main" NULL
authorizer: READ "t1" "b" "main" NULL
authorizer: READ "t1" "extra_726" "main" NULL
authorizer: READ "t1" "a" "main" NULL
authorizer: READ "t1" "b" "main" NULL
authorizer: READ "t1" "extra_726" "main" NULL
authorizer: READ "t1" "a" "main" NULL
authorizer: READ "t1" "a" "main" NULL
1|-44||1|-44|
2|||2||
3|||3||
4|||4||
5|||5||
6|||6||
7|||7||
8|||8||
9|||9||
10|||10||
11|||11||
12|||12||
13|||13||
14|||14||
15|||15||
16|||16||
17|||17||
18|||18||
19|||19||
20|||20||
21|||21||
22|||22||
23|||23||
24|||24||
25|||25||
26|||26||
27|||27||
28|||28||
29|||29||
30|||30||
31|1||31|1|
authorizer: ATTACH "" NULL NULL NULL
authorizer: TRANSACTION "BEGIN" NULL NULL NULL
authorizer: SELECT NULL NULL NULL NULL
authorizer: READ "sqlite_master" "sql" "main" NULL
authorizer: READ "sqlite_master" "type" "main" NULL
authorizer: READ "sqlite_master" "name" "main" NULL
authorizer: FUNCTION NULL "coalesce" NULL NULL
authorizer: READ "sqlite_master" "rootpage" "main" NULL
authorizer: INSERT "sqlite_master" NULL "vacuum_db" NULL
authorizer: CREATE_TABLE "t1" NULL "vacuum_db" NULL
authorizer: UPDATE "sqlite_master" "type" "vacuum_db" NULL
authorizer: UPDATE "sqlite_master" "name" "vacuum_db" NULL
authorizer: UPDATE "sqlite_master" "tbl_name" "vacuum_db" NULL
authorizer: UPDATE "sqlite_master" "rootpage" "vacuum_db" NULL
authorizer: UPDATE "sqlite_master" "sql" "vacuum_db" NULL
authorizer: READ "sqlite_master" "ROWID" "vacuum_db" NULL
authorizer: SELECT NULL NULL NULL NULL
authorizer: READ "sqlite_master" "sql" "main" NULL
authorizer: READ "sqlite_master" "type" "main" NULL
authorizer: SELECT NULL NULL NULL NULL
authorizer: FUNCTION NULL "quote" NULL NULL
authorizer: READ "sqlite_master" "name" "vacuum_db" NULL
authorizer: FUNCTION NULL "quote" NULL NULL
authorizer: READ "sqlite_master" "name" "vacuum_db" NULL
authorizer: READ "sqlite_master" "type" "vacuum_db" NULL
authorizer: FUNCTION NULL "coalesce" NULL NULL
authorizer: READ "sqlite_master" "rootpage" "vacuum_db" NULL
authorizer: INSERT "t1" NULL "vacuum_db" NULL
authorizer: INSERT "sqlite_master" NULL "vacuum_db" NULL
authorizer: SELECT NULL NULL NULL NULL
authorizer: READ "sqlite_master" "type" "main" NULL
authorizer: READ "sqlite_master" "name" "main" NULL
authorizer: READ "sqlite_master" "tbl_name" "main" NULL
authorizer: READ "sqlite_master" "rootpage" "main" NULL
authorizer: READ "sqlite_master" "sql" "main" NULL
authorizer: READ "sqlite_master" "type" "main" NULL
authorizer: READ "sqlite_master" "type" "main" NULL
authorizer: READ "sqlite_master" "rootpage" "main" NULL
authorizer: DELETE "t1" NULL "main" NULL
authorizer: CREATE_TRIGGER "trg_t1_1506" "t1" "main" NULL
authorizer: INSERT "sqlite_master" NULL "main" NULL
authorizer: INSERT "sqlite_master" NULL "main" NULL
authorizer: INSERT "sqlite_master" NULL "main" NULL
authorizer: CREATE_TABLE "sqlite_stat1" NULL "main" NULL
authorizer: UPDATE "sqlite_master" "type" "main" NULL
authorizer: UPDATE "sqlite_master" "name" "main" NULL
authorizer: UPDATE "sqlite_master" "tbl_name" "main" NULL
authorizer: UPDATE "sqlite_master" "rootpage" "main" NULL
authorizer: UPDATE "sqlite_master" "sql" "main" NULL
authorizer: READ "sqlite_master" "ROWID" "main" NULL
authorizer: ANALYZE "t1" NULL "main" NULL
authorizer: SELECT NULL NULL NULL NULL
authorizer: READ "sqlite_stat1" "tbl" "main" NULL
authorizer: READ "sqlite_stat1" "idx" "main" NULL
authorizer: READ "sqlite_stat1" "stat" "main" NULL
```
## Expectation
```sql
normal
authorizer: PRAGMA "page_size" "1.0" NULL NULL
authorizer: INSERT "sqlite_master" NULL "main" NULL
authorizer: CREATE_TABLE "t1" NULL "main" NULL
authorizer: UPDATE "sqlite_master" "type" "main" NULL
authorizer: UPDATE "sqlite_master" "name" "main" NULL
authorizer: UPDATE "sqlite_master" "tbl_name" "main" NULL
authorizer: UPDATE "sqlite_master" "rootpage" "main" NULL
authorizer: UPDATE "sqlite_master" "sql" "main" NULL
authorizer: READ "sqlite_master" "ROWID" "main" NULL
authorizer: INSERT "t1" NULL "main" NULL
authorizer: SELECT NULL NULL NULL NULL
authorizer: FUNCTION NULL "zeroblob" NULL NULL
authorizer: SELECT NULL NULL NULL "c"
authorizer: RECURSIVE NULL NULL NULL "c"
authorizer: SELECT NULL NULL NULL "c"
authorizer: SELECT NULL NULL NULL "c"
authorizer: FUNCTION NULL "zeroblob" NULL NULL
authorizer: UPDATE "t1" "b" "main" NULL
authorizer: FUNCTION NULL "zeroblob" NULL NULL
authorizer: UPDATE "t1" "b" "main" NULL
authorizer: READ "t1" "a" "main" NULL
authorizer: PRAGMA "integrity_check" NULL NULL NULL
ok
authorizer: SELECT NULL NULL NULL NULL
authorizer: READ "t1" "a" "main" NULL
authorizer: READ "t1" "b" "main" NULL
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|
authorizer: UPDATE "t1" "b" "main" NULL
authorizer: READ "t1" "a" "main" NULL
authorizer: SELECT NULL NULL NULL NULL
authorizer: FUNCTION NULL "group_concat" NULL NULL
authorizer: READ "t1" "b" "main" NULL
authorizer: READ "t1" "b" "main" NULL
authorizer: READ "t1" "b" "main" NULL
authorizer: SELECT NULL NULL NULL NULL
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
-44
authorizer: INSERT "t1" NULL "main" NULL
authorizer: READ "t1" "a" "main" NULL
authorizer: UPDATE "t1" "a" "main" NULL
authorizer: UPDATE "t1" "b" "main" NULL
authorizer: SELECT NULL NULL NULL NULL
authorizer: READ "t1" "a" "main" NULL
authorizer: READ "t1" "b" "main" NULL
authorizer: SELECT NULL NULL NULL NULL
1|-44
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|1
authorizer: ALTER_TABLE "main" "t1" NULL NULL
authorizer: FUNCTION NULL "printf" NULL NULL
authorizer: READ "sqlite_master" "sql" "main" NULL
authorizer: FUNCTION NULL "substr" NULL NULL
authorizer: READ "sqlite_master" "sql" "main" NULL
authorizer: FUNCTION NULL "length" NULL NULL
authorizer: FUNCTION NULL "printf" NULL NULL
authorizer: READ "sqlite_master" "sql" "main" NULL
authorizer: UPDATE "sqlite_master" "sql" "main" NULL
authorizer: READ "sqlite_master" "type" "main" NULL
authorizer: READ "sqlite_master" "name" "main" NULL
authorizer: SELECT NULL NULL NULL NULL
authorizer: READ "t1" "a" "main" NULL
authorizer: READ "t1" "b" "main" NULL
authorizer: READ "t1" "extra_726" "main" NULL
authorizer: READ "t1" "a" "main" NULL
authorizer: READ "t1" "b" "main" NULL
authorizer: READ "t1" "extra_726" "main" NULL
authorizer: READ "t1" "a" "main" NULL
authorizer: READ "t1" "a" "main" NULL
1|-44||1|-44|
2|||2||
3|||3||
4|||4||
5|||5||
6|||6||
7|||7||
8|||8||
9|||9||
10|||10||
11|||11||
12|||12||
13|||13||
14|||14||
15|||15||
16|||16||
17|||17||
18|||18||
19|||19||
20|||20||
21|||21||
22|||22||
23|||23||
24|||24||
25|||25||
26|||26||
27|||27||
28|||28||
29|||29||
30|||30||
31|1||31|1|
authorizer: ATTACH "" NULL NULL NULL
authorizer: TRANSACTION "BEGIN" NULL NULL NULL
authorizer: SELECT NULL NULL NULL NULL
authorizer: READ "sqlite_master" "sql" "main" NULL
authorizer: READ "sqlite_master" "type" "main" NULL
authorizer: READ "sqlite_master" "name" "main" NULL
authorizer: FUNCTION NULL "coalesce" NULL NULL
authorizer: READ "sqlite_master" "rootpage" "main" NULL
authorizer: INSERT "sqlite_master" NULL "vacuum_a06fbc4403388215" NULL
authorizer: CREATE_TABLE "t1" NULL "vacuum_a06fbc4403388215" NULL
authorizer: UPDATE "sqlite_master" "type" "vacuum_a06fbc4403388215" NULL
authorizer: UPDATE "sqlite_master" "name" "vacuum_a06fbc4403388215" NULL
authorizer: UPDATE "sqlite_master" "tbl_name" "vacuum_a06fbc4403388215" NULL
authorizer: UPDATE "sqlite_master" "rootpage" "vacuum_a06fbc4403388215" NULL
authorizer: UPDATE "sqlite_master" "sql" "vacuum_a06fbc4403388215" NULL
authorizer: READ "sqlite_master" "ROWID" "vacuum_a06fbc4403388215" NULL
authorizer: SELECT NULL NULL NULL NULL
authorizer: READ "sqlite_master" "sql" "main" NULL
authorizer: READ "sqlite_master" "type" "main" NULL
authorizer: SELECT NULL NULL NULL NULL
authorizer: FUNCTION NULL "quote" NULL NULL
authorizer: READ "sqlite_master" "name" "vacuum_a06fbc4403388215" NULL
authorizer: FUNCTION NULL "quote" NULL NULL
authorizer: READ "sqlite_master" "name" "vacuum_a06fbc4403388215" NULL
authorizer: READ "sqlite_master" "type" "vacuum_a06fbc4403388215" NULL
authorizer: FUNCTION NULL "coalesce" NULL NULL
authorizer: READ "sqlite_master" "rootpage" "vacuum_a06fbc4403388215" NULL
authorizer: INSERT "t1" NULL "vacuum_a06fbc4403388215" NULL
authorizer: INSERT "sqlite_master" NULL "vacuum_a06fbc4403388215" NULL
authorizer: SELECT NULL NULL NULL NULL
authorizer: READ "sqlite_master" "type" "main" NULL
authorizer: READ "sqlite_master" "name" "main" NULL
authorizer: READ "sqlite_master" "tbl_name" "main" NULL
authorizer: READ "sqlite_master" "rootpage" "main" NULL
authorizer: READ "sqlite_master" "sql" "main" NULL
authorizer: READ "sqlite_master" "type" "main" NULL
authorizer: READ "sqlite_master" "type" "main" NULL
authorizer: READ "sqlite_master" "rootpage" "main" NULL
authorizer: DELETE "t1" NULL "main" NULL
authorizer: CREATE_TRIGGER "trg_t1_1506" "t1" "main" NULL
authorizer: INSERT "sqlite_master" NULL "main" NULL
authorizer: INSERT "sqlite_master" NULL "main" NULL
authorizer: INSERT "sqlite_master" NULL "main" NULL
authorizer: CREATE_TABLE "sqlite_stat1" NULL "main" NULL
authorizer: UPDATE "sqlite_master" "type" "main" NULL
authorizer: UPDATE "sqlite_master" "name" "main" NULL
authorizer: UPDATE "sqlite_master" "tbl_name" "main" NULL
authorizer: UPDATE "sqlite_master" "rootpage" "main" NULL
authorizer: UPDATE "sqlite_master" "sql" "main" NULL
authorizer: READ "sqlite_master" "ROWID" "main" NULL
authorizer: ANALYZE "t1" NULL "main" NULL
authorizer: SELECT NULL NULL NULL NULL
authorizer: READ "sqlite_stat1" "tbl" "main" NULL
authorizer: READ "sqlite_stat1" "idx" "main" NULL
authorizer: READ "sqlite_stat1" "stat" "main" NULL
```
## Flag
```
```