SQLite is a C language library that implements a small, fast, independent, highly reliable, full-featured SQL database engine. SQLite is the most used database engine in the world. The source code for SQLite is in the public domain and freely available to everyone for any purpose.
SQLite 3.40.1 is now officially released, with the following updates:
- Add support for compiling SQLite to WASM and running it in a web browser. Note: The WASM build and its interfaces are considered “beta” and may be subject to minor changes if needed; the interfaces are expected to be finalized in the next release.
- Add a recovery extension that might be able to recover something from a corrupted database file.
- Query planner enhancements:
- A covering index that identifies tables with more than 63 columns that are used in queries and/or are referenced by the index.
- Extracts the value of an expression contained in an expression index when feasible, rather than reevaluating the expression.
- The NOT NULL and IS NULL operators (and their equivalents) avoid loading the contents of large string and BLOB values from disk.
- Avoid materializing views that perform only one full scan.
- Allows flattening as a subquery for the right-hand operand of a LEFT JOIN in an aggregation query.
- A new type definition called sqlite3_filename has been added to denote the name of a database file. Various interfaces were modified to use new typedefs instead of ‘char*’. This interface change should be fully backward compatible, although it may cause (harmless) compiler warnings when rebuilding some legacy applications.
- Add sqlite3_value_encoding() interface.
- Security Enhancement: Enhanced SQLITE_DBCONFIG_DEFENSIVE to disallow changing schema_version. schema_version in defensive mode More details can be found at:becomes read-only.
- Enhancements to the PRAGMA integrity_check statement:
- Columns in non-STRICT tables with TEXT associations should not contain numeric values.
- Columns in non-STRICT tables with NUMERIC affinity should not contain TEXT values that can be converted to numbers.
- Verify that the rows of the WITHOUT ROWID table are in the correct order.
- The VACUUM INTO statement is enhanced to support the PRAGMA synchronization setting.
- Enhance the sqlite3_strglob() and sqlite3_strlike() APIs so that they can accept NULL pointers for their string arguments and still produce reasonable results.
- A new SQLITE_MAX_ALLOCATION_SIZE compile-time option is provided to limit the size of memory allocations.
- Changes the algorithm used by SQLite’s built-in pseudo-random number generator (PRNG) from RC4 to Chacha20.
- Two or more indexes are allowed to have the same name, as long as they are all in different schemas.
- Additional performance optimizations result in ~1% reduction in CPU cycles used on typical workloads.
- Fix the CLI’s –safe command-line option to correctly disallow the use of SQL functions that could cause unwanted side effects, such as writefile().
- Fix potential infinite loop in memsys5 alternate memory allocator. This bug was introduced by a performance optimization in version 3.39.0.
- Various other fixes.
More details can be viewed at:https://www.sqlite.org/releaselog/3_40_1.html
#SQLite #released #News Fast Delivery