SQLite開発チームは11月16日(現地時間)、SQLiteデータベースの最新版v3.40.0をリリースしました。
v3.40.0では、SQLiteをWASMにコンパイルし、Webブラウザで実行できるようにする新機能が追加されています。SQLiteのWASM化は、Webブラウザでの使用を目的としたものですが、さまざまなWASMデスクトップ ランタイムでも動作するとみこまれます。WASMビルドとインタフェースは現在ベータ版で、次期バージョンで正式版となる予定です。
また、リカバリ拡張機能の導入も行われています。SQLiteデータベースファイルは非常に堅牢であることが知られていますが、万が一破損してしまった場合に、可能な限りデータの復旧を試みることができるようになりました。
リカバリ拡張機能は、復旧のためのAPIが公開されていて、コマンドラインインターフェイスでは「.recover」コマンドを使用することができます。アプリからもAPIを利用し、復旧処理を呼び出すことができます。
その他クエリプランナーの強化や、パフォーマンスの最適化、細かな改良が行われています。
リリースノートは以下の通りです。
- 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.- Add the sqlite3_value_encoding() interface.
- Security enhancement: SQLITE_DBCONFIG_DEFENSIVE is augmented to prohibit
changing the schema_version. The schema_version
becomes read-only in defensive mode.- Enhancements to the PRAGMA integrity_check statement:
- Columns in non-STRICT tables with TEXT affinity should not contain numeric values.
- Columns in non-STRICT tables with NUMERIC affinity should not
contain TEXT values that could be converted into numbers.- Verify that the rows of a WITHOUT ROWID table are in the correct order.
- Enhance the VACUUM INTO statement so that it honors they
PRAGMA synchronous setting.- 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.Hashes:
- SQLITE_SOURCE_ID: 2022-11-16 12:10:08 89c459e766ea7e9165d0beeb124708b955a4950d0f4792f457465d71b158d318
- SHA3-256 for sqlite3.c: ab8da6bc754642989e67d581f26683dc705b068cea671970f0a7d32cfacbad19
リリースノートはこちらで確認可能です。
タイトル | SQLite | |
---|---|---|
公式サイト | http://www.sqlite.org/ | |
ソフトアンテナ | https://softantenna.com/softwares/1993-sqlite | |
説明 | 埋め込み可能なSQLデータベースエンジン。 |