Assertion Failure "target>0 && target<=pParse->nMem"
(1) By Yu Liang (LY1598773890) on 2021-07-07 16:12:03 [source]
Query
CREATE TABLE v0 ( v2, v3, v4 AS (v4 <= 0), v1, FOREIGN KEY ( v4, v1, v3, v2, v3, v1, v3, v4 ) REFERENCES t0);
PRAGMA foreign_key_check;
Run on debug version
sqlite3.c:106136: sqlite3ExprCode: Assertion `target>0 && target<=pParse->nMem' failed.
Run on non-debug version
Error: near line 2: generated column loop on "v4"
Bisect
1 BAD 2021-07-07 13:53:55 6b22f4e71dbc14c8
2 BAD 2020-01-15 16:20:16 03b003c988d27f3a
4 BAD 2019-12-14 19:55:31 a89b38605661e36d
5 BAD 2019-11-16 23:47:40 51525f9c3235967b
6 BAD 2019-10-30 18:50:08 2978b65ebe25eeab
9 BAD 2019-10-29 01:26:24 591973217f1caf24
10 BAD 2019-10-28 04:20:28 a1e1ba9145049491
11 BAD 2019-10-27 22:22:24 6d1bbba9a004a249
12 BAD 2019-10-26 23:51:44 5b4c0f2ddc6f324e CURRENT
8 GOOD 2019-10-26 18:56:12 713fe86b8c9f3c9e
7 GOOD 2019-10-23 21:00:40 1a6e009372cf9571
3 GOOD 2019-10-11 14:21:48 bf875dc59909f9c2
(2) By Larry Brasfield (larrybr) on 2021-07-07 16:26:19 in reply to 1 [link] [source]
Thanks for the report, and especially for the bisect!
(3) By Yu Liang (LY1598773890) on 2021-07-07 16:53:10 in reply to 2 [link] [source]
Thanks for the prompt fix!
(4) By Richard Hipp (drh) on 2021-07-07 16:54:48 in reply to 1 [link] [source]
This is a follow-up to forum post a6b0c05277.
The original problem was that the code generator was not allocating enough registers in the bytecode. That was fixed by check-in 68db1ff9c44fa9c3 However, the increase in the number of registered allocated happened too late for the assert() that you found in sqlite3ExprCode(). The solution (check-in 7072404ad0267b8e) is to move the increase in the number of bytecode registers a little earlier.
Thanks for using Fossil and for running bisect.