Commit Graph

8 Commits

Author SHA1 Message Date
drh 68d28ea4f0 Disable the snapshot test scripts if not compiled with SQLITE_ENABLE_SNAPSHOT.
FossilOrigin-Name: 5fd008f0433833e4341d526dcc2387570ffe1fea
2015-12-11 03:20:39 +00:00
dan 7116dc60dc Update the sqlite3_snapshot_get() API so that if the caller does not have an open read transaction on the named database, one is automatically opened.
FossilOrigin-Name: b9c90f10297d8516a661449e8af898e682c930aa
2015-12-10 20:03:08 +00:00
dan 745c14eb15 Add tests to snapshot.test.
FossilOrigin-Name: f3b743623a4501833478c8a86c0922931955aeb6
2015-12-10 19:44:34 +00:00
dan a7aeb39836 Return SQLITE_BUSY (not SQLITE_BUSY_SNAPSHOT) if sqlite3_snapshot_open() fails to obtain the shared checkpointer lock.
FossilOrigin-Name: 5343060bcc6c99029f731f8020d2cba3f405f207
2015-12-10 19:11:34 +00:00
dan 7d15979420 Add tests to ensure that an sqlite3_snapshot_open() client cannot be tricked into reading a corrupt snapshot even if another process fails mid-checkpoint.
FossilOrigin-Name: b908048b6cfa1ee2fe1f7a17bae475ddd9d0376c
2015-12-10 18:06:21 +00:00
dan 3bf83ccd70 Have sqlite3_snapshot_open() avoid a race condition by taking a shared CHECKPOINTER lock while checking pInfo->nBackfillAttempted.
FossilOrigin-Name: 8084eae0bc4f6513b1147fb890a6b2813f1c0a09
2015-12-10 15:45:15 +00:00
dan 65127cd57d Update sqlite3_snapshot_open() to reduce the chances of reading a corrupt snapshot created by a checkpointer process exiting unexpectedly.
FossilOrigin-Name: 7315f7cbf4179aadda0f1a0baa1526a9b9f9729f
2015-12-09 20:05:27 +00:00
dan 818b11aebb Add tests for snapshot_get(), _open() and _free().
FossilOrigin-Name: 502cc6f353358946080d9bcd335aed526825b88a
2015-12-07 14:33:07 +00:00