sqlite3_backup_init returns null, but no error is set
(1) By anonymous on 2022-01-31 09:58:10 [source]
- open a connection to memory database (":memory:") => source database
- open a connection to memory database (":memory:") => destination database
sqlite3_backup_init(destination, "main", source, "temp")
sqlite3_backup_init to return
NULL, but no error is set on the destination database handle.
Quoting the docs:
If an error occurs within sqlite3_backup_init(D,N,S,M), then NULL is returned and an error code and error message are stored in the destination database connection D.
fossil bisect, and it points to 6a45d8fe8bfbc11a as the first bad commit.
fossil bisect good bisect complete 2 BAD 2022-01-30 21:09:03 c10ed4a7fe33fd93 6 BAD 2022-01-24 20:16:37 11df9187dad0eb33 8 BAD 2022-01-24 16:47:12 1f7fa46126ea33ed 9 BAD 2022-01-24 15:34:55 6a45d8fe8bfbc11a 10 GOOD 2022-01-24 14:01:31 53d4404458fb6f0b CURRENT 7 GOOD 2022-01-24 12:48:54 ad7aace761c6b21b 5 GOOD 2022-01-21 18:57:30 2f5dc7a9eed89baf 4 GOOD 2022-01-11 23:28:12 4cbb3e3efeb40cc4 1 GOOD 2022-01-06 13:25:41 872ba256cbf61d92 3 GOOD 2021-12-20 23:46:44 d9f814a6402ca7fd
Here's my debug output:
destination db = 0x7fd486707110 source db = 0x7fd486708f00 sqlite3_backup_init(0x7fd486707110, "main", 0x7fd486708f00, "temp") => 0x0 sqlite3_errcode(0x7fd486707110) => 0 sqlite3_errmsg(0x7fd486707110) => 'not an error' sqlite3_errcode(0x7fd486708f00) => 0 sqlite3_errmsg(0x7fd486708f00) => 'not an error'
For the record, calling
sqlite3_backup_init(target, "main", source, "main") works just fine.
(2) By Richard Hipp (drh) on 2022-01-31 12:31:59 in reply to 1 [link] [source]
Thanks for beta-testing trunk! We'd have fewer bugs in releases if more people would do the same.
The problem should be fixed as of check-in 639fc7633bd74042.
(3) By anonymous on 2022-01-31 14:22:33 in reply to 2 [link] [source]
Fantastic! I can verify that trunk as of 639fc7633bd74042 works as expected. Thank you for your quick response and bugfix, and thank you for SQLite!