---
This commit is contained in:
@@ -0,0 +1,496 @@
|
||||
## 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=65536;
|
||||
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;
|
||||
```
|
||||
|
||||
## Actual output
|
||||
|
||||
```sql
|
||||
normal
|
||||
authorizer: PRAGMA "page_size" "65536" 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
|
||||
```
|
||||
|
||||
## Expectation
|
||||
|
||||
```sql
|
||||
normal
|
||||
authorizer: PRAGMA "page_size" "65536" 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_e61b69b9fb0aa1d6" NULL
|
||||
authorizer: CREATE_TABLE "t1" NULL "vacuum_e61b69b9fb0aa1d6" NULL
|
||||
authorizer: UPDATE "sqlite_master" "type" "vacuum_e61b69b9fb0aa1d6" NULL
|
||||
authorizer: UPDATE "sqlite_master" "name" "vacuum_e61b69b9fb0aa1d6" NULL
|
||||
authorizer: UPDATE "sqlite_master" "tbl_name" "vacuum_e61b69b9fb0aa1d6" NULL
|
||||
authorizer: UPDATE "sqlite_master" "rootpage" "vacuum_e61b69b9fb0aa1d6" NULL
|
||||
authorizer: UPDATE "sqlite_master" "sql" "vacuum_e61b69b9fb0aa1d6" NULL
|
||||
authorizer: READ "sqlite_master" "ROWID" "vacuum_e61b69b9fb0aa1d6" 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_e61b69b9fb0aa1d6" NULL
|
||||
authorizer: FUNCTION NULL "quote" NULL NULL
|
||||
authorizer: READ "sqlite_master" "name" "vacuum_e61b69b9fb0aa1d6" NULL
|
||||
authorizer: READ "sqlite_master" "type" "vacuum_e61b69b9fb0aa1d6" NULL
|
||||
authorizer: FUNCTION NULL "coalesce" NULL NULL
|
||||
authorizer: READ "sqlite_master" "rootpage" "vacuum_e61b69b9fb0aa1d6" NULL
|
||||
authorizer: INSERT "t1" NULL "vacuum_e61b69b9fb0aa1d6" NULL
|
||||
authorizer: INSERT "sqlite_master" NULL "vacuum_e61b69b9fb0aa1d6" 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
|
||||
```
|
||||
|
||||
## Flag
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user