The new version 3.1.0 of wxSQLite3 - a thin wrapper for the SQLite database for wxWidgets applications - supports the current version 3.8.4.3 of SQLite. This version is compatible with wxWidgets 2.8.12 and wxWidgets 3.0.0.
Added flag isDeterministic to method wxSQLite3Database::CreateFunction
Added new GUI sample
Changed implementation of the SQLite3 encryption extension
The new GUI sample application demonstrates the use of
Starting with this release of wxSQLite3 the code of the encryption extension has been adjusted to fix a potential problem with creating unusable encrypted databases.
Chances were low that users of the prior versions of the encryption extension experienced problems, namely at most 1 out of 8192 cases (that is less than 0.02 %). However, it was decided to eliminate this flaw.
From now on bytes 16 to 23 of the database header are saved to file unencrypted (as for the proprietary SQLite Extensions SEE (SQLite Encryption Extension) offered by the creators of SQLite). This is important, because these bytes are read and interpreted by the SQLite code before any encryption extension gets the chance to decrypt the database header.
The good news for users of prior versions of the wxSQLite3 encryption extension is that the new version transparently converts existing encrypted databases to the new format. However, this is a one-way process, that is, once converted a database file can't be handled anymore by prior versions of the encryption extension. Instead one will get the error message "not a database file or encrypted".