>
one where the WAL is dropped, and another showing whatever we have recovered. If I had such an option, I would almost always pick the latterI can't imagine picking the latter unless you were treating sqlite like a filesystem of completely unrelated blobs.
If I run three transactions where:
1. John gives $100 to Sue.
2. Sue gives $100 to Mark.
3. Mark $100 money to Paul.
If sqlite, just erases transaction (2), then Mark materializes $100 from nowhere. The rest of your database is potentially completely corrupted. At that point your database is no longer consistent - I can't see how you would "almost always" prefer this.
If (2) is corrupt, then the restore stops at (1), and you are guaranteed consistency.