Add support for compiling SQLite to WASM
+ and running it in web browsers. NB: The WASM build and its interfaces
+ are considered "beta" and are subject to minor changes if the need
+ arises. We anticipate finalizing the interface for the next release.
+
Add the recovery extension that might be able to recover some content
+ from a corrupt database file.
+
Query planner enhancements:
+
+
Recognize covering indexes on tables with more than 63 columns where
+ columns beyond the 63rd column are used in the query and/or are
+ referenced by the index.
+
Extract the values of expressions contained within expression indexes
+ where practical, rather than recomputing the expression.
+
The NOT NULL and IS NULL operators (and their equivalents) avoid
+ loading the content of large strings and BLOB values from disk.
+
Avoid materializing a view on which a full scan is performed
+ exactly once. Use and discard the rows of the view as they are computed.
+
Allow flattening of a subquery that is the right-hand operand of
+ a LEFT JOIN in an aggregate query.
+
+
A new typedef named sqlite3_filename is added and used to represent
+ the name of a database file. Various interfaces are
+ modified to use the new typedef instead of "char*". This interface
+ change should be fully backwards compatible, though it might cause
+ (harmless) compiler warnings when rebuilding some legacy applications.
+
Security enhancement: SQLITE_DBCONFIG_DEFENSIVE is augmented to prohibit
+ changing the schema_version. The schema_version
+ becomes read-only in defensive mode.
+
Enhance the sqlite3_strglob() and sqlite3_strlike() APIs so that they are able
+ to accept NULL pointers for their string parameters and still generate a sensible
+ result.
+
Provide the new SQLITE_MAX_ALLOCATION_SIZE compile-time option for limiting
+ the size of memory allocations.
+
Change the algorithm used by SQLite's built-in pseudo-random number generator (PRNG)
+ from RC4 to Chacha20.
+
Allow two or more indexes to have the same name as long as they are all in
+ separate schemas.
+
Miscellaneous performance optimizations result in about 1% fewer CPU cycles
+ used on typical workloads.
+
+
Additional changes in version 3.40.1 (2022-12-28):
+
+
Fix the --safe command-line option to the CLI such that it correctly disallows the
+ use of SQL functions like writefile() that can cause harmful side-effects.
+
Fix a potential infinite loop in the memsys5 alternative memory allocator. This
+ bug was introduced by a performance optimization in version 3.39.0.
+