Remix.run Logo
jmull 2 days ago

> What’s interesting is that when a frame is found to have a missing or invalid checksum, SQLite drops that frame and all the subsequent frames.

Skipping a frames but processing later ones would corrupt the database.

> SQLite doesn’t throw any error on detection of corruption

I don’t think it’s actually a corruption detection feature though. I think it’s to prevent a physical failure while writing (like power loss) from corrupting the database. A corruption detection feature would work differently. E.g., it would cover the whole database, not just the WAL. Throwing an error here doesn’t make sense.