Megjelent az SQLite 3.40, egy könnyűsúlyú DBMS, mely dinamikusan használható könyvtárként. Az SQLite kódja közterületre került, tehát korlátozások nélkül és ingyenesen használható bármilyen céllal. Az SQLite fejlesztőit egy speciálisan létrehozott konzorcium támogatja, amelynek tagjai többek között az Adobe, Oracle, Mozilla, Bentley és Bloomberg.
Főbb változások:
- Kísérleti funkcióként megvalósult az SQLite WebAssembly köztes kódba történő fordítása, amely web-böngészőben futtatható, és alkalmas az adatbázisok kezelésére webalkalmazásokból JavaScript nyelven. A webfejlesztők magasan absztrakt, objektum-orientált felülethez jutnak, amely lehetővé teszi az adatok SQL.js vagy Node.js stílusú kezelését, egy alacsony szintű C API feletti borítás, valamint egy Web Worker alapú API biztosítja az aszinkron feldolgozók létrehozását, amelyek külön szálakban futnak. Azok az adatok, amelyeket a webalkalmazások a WASM verzióval rendelkező SQLite-ban tárolnak, a kliens oldalon az OPFS (Origin-Private FileSystem) vagy a window.localStorage API segítségével menthetők.
- Hozzáadásra került egy recovery kiterjesztés, amely az adatokat megsérült adatbázis-fájlokból állítja helyre. A parancssori felületen a helyreállításhoz a „.recover” parancsot használják.
- Javult a lekérdezésütemező működése. Megszüntették a korlátozásokat az indexek használatánál olyan táblák esetében, amelyek több mint 63 oszlopot tartalmaznak (korábban az olyan oszlopokkal végzett műveleteknél, melyek sorszáma meghaladta a 63-at, az indexelés nem alkalmazható). Javult az értékek indexelése, amelyeket kifejezésekben használnak. Megszűnt a nagy karakterláncok és blobok lemezről történő betöltése a NOT NULL és IS NULL operátorok feldolgozása során. Kizárták az anyagábrázolást az olyan nézetek számára, amelyeknél a teljes átvizsgálás egyszer történik.
- A kódalapban a fájlnevek reprezentálására a „char *” típus helyett egy külön sqlite3_filename típust használnak.
- Hozzáadva az sqlite3_value_encoding() belső funkció.
- Hozzáadva az SQLITE_DBCONFIG_DEFENSIVE üzemmód, amely megakadályozza az adatbázis tárolási séma verziójának módosítását.
- A "PRAGMA integrity_check" parameter implementation has been added with additional checks. For example, tables without the STRICT flag should not contain numeric values in TEXT columns and string values with numbers in NUMERIC columns. A check for the correct order of rows in tables with the "WITHOUT ROWID" flag has also been added.
- The "VACUUM INTO" statement has taken into account the "PRAGMA synchronous" settings.
- A compile-time option SQLITE_MAX_ALLOCATION_SIZE has been added, allowing for the limitation of block sizes during memory allocation.
- The built-in SQLite pseudorandom number generation algorithm has been changed from using the RC4 stream cipher to Chacha20.
- It is allowed to use indexes with the same names in different data schemas.
- Performance optimizations have been made, reducing CPU load by about 1% under typical activity.
Forrás: opennet.ru
