System.Data.SQLite
View Ticket
Not logged in
Ticket UUID: 9c41399a28a30e645adc2e984571be4f43fcda4a
Title: PRAGMA integrity_check; doesn't catch file corruption
Status: Closed Type: Code_Defect
Severity: Important Priority: Medium
Subsystem: Native_Assembly Resolution: External_Bug
Last Modified: 2017-10-16 03:05:20
Version Found In: 3.20.1
User Comments:
anonymous added on 2017-09-04 09:03:51:

I have a database where “PRAGMA integrity_check;” returns ok in sqlite3.exe and sqlite3.dll. The database can be downloaded here: https://schneider-electric.box.com/s/nwx5k8h7xa0l0gufs7o8vo2u3xptiq2f Integrity check gives ok, but the following query shows there’s a file corruption SELECT * FROM t_7E_2FSystem_2FEvents_2FEventLog_2FEventRecords ORDER BY TimeStamp DESC


dan added on 2017-09-04 21:03:11:
Thanks for this.

The corruption is inside a table record, in the "size" field of a non-indexed column. Which integrity-check doesn't currently look for. It could - and we'll look into whether or not it should - but there are other, similar types of corruption that are not possible to detect. If a few characters in the middle of a text value are exchanged for example.

mistachkin added on 2017-10-16 03:05:20:
Fixed upstream.