SQLite

View Ticket
Login
2013-05-15
17:58 Fixed ticket [0fc59f90]: Missing COLLATE function does not result in an error plus 5 other changes (artifact: d9a6a8fc user: drh)
15:16
When loading a database schema that contains an index definition that includes a COLLATE clause for which the collation sequence is unavailable, do not assume that that index uses BINARY instead. Fix for [0fc59f908b]. (check-in: 6dae62c4 user: dan tags: trunk)
13:23 New ticket [0fc59f90] Missing COLLATE function does not result in an error. (artifact: a88ea24f user: drh)

Ticket Hash: 0fc59f908b074712165cd76ca2fa9344124fe755
Title: Missing COLLATE function does not result in an error
Status: Fixed Type: Code_Defect
Severity: Severe Priority: Immediate
Subsystem: Unknown Resolution: Fixed
Last Modified: 2013-05-15 17:58:20
Version Found In: 3.7.16.2
User Comments:
drh added on 2013-05-15 13:23:33:

If a database schema uses an application-defined collating sequence, and an instance of SQLite is run on that database that does not have the necessary collating sequence defined, then the "REINDEX" and "PRAGMA integrity_check" commands run without generating an error and substitute the built-in BINARY collating sequence in place of the application-defined collating sequence. Running the REINDEX command this way corrupts the index (though the corruption can be reversed by rerunning REINDEX in a new database connection where the application-defined collating sequence has been defined). Running PRAGMA integrity_check this way results in spurious errors.

This problem appears to have been introduced by check-in [8542e6180d4321d] and first appeared in release 3.7.15.