Die SQLite 3.51 Version wurde veröffentlicht, ein leichtgewichtiges DBMS, das als dynamische Bibliothek bereitgestellt wird. Der Code von SQLite wird als Public Domain veröffentlicht, d.h. er kann ohne EinschrĂ€nkungen und kostenlos fĂŒr beliebige Zwecke verwendet werden. Die finanzielle UnterstĂŒtzung fĂŒr die Entwickler von SQLite wird von einem eigens gegrĂŒndeten Konsortium geleistet.
Wesentliche Ănderungen:
- Neue JSON-Funktionen jsonb_each() und jsonb_tree() wurden hinzugefĂŒgt, die sich von den bisher verfĂŒgbaren Funktionen json_each() und json_tree() unterscheiden, da sie fĂŒr Daten mit den Typen Array oder Objekt JSONB-Werte zurĂŒckgeben.
- Der Code der Erweiterungen carray und percentile wurde in die Hauptdatei âsqlite3.câ mit dem integrierten SQLite-Code ĂŒbertragen. StandardmĂ€Ăig sind diese Erweiterungen deaktiviert und erfordern bei der Erstellung die Angabe der Parameter â-DSQLITE_ENABLE_CARRAYâ und â-DSQLITE_ENABLE_PERCENTILEâ.
- Die Schnittstelle fĂŒr die Nutzung von SQLite in Tcl-Skripten wurde verbessert. Der Befehl âevalâ erhielt die Option â-asdictâ, um Strings im Typ âdictâ anstelle von âarrayâ darzustellen. Auch die Möglichkeit wurde hinzugefĂŒgt, benutzerdefinierte Funktionen zu unterbrechen, um NULL-Werte zurĂŒckzugeben.
- Ănderungen in der Befehlszeilenschnittstelle:
- Die Genauigkeit des Befehls â.timerâ wurde auf Mikrosekunden erhöht;
- In den Formatmodi âboxâ und âcolumnâ wurde die UnterstĂŒtzung fĂŒr Symbole mit doppelter Breite implementiert;
- Der Befehl â.imposterâ kann jetzt nur im Nur-Lese-Modus Imposter-Tabellen bereitstellen (ermöglicht den Zugriff auf Daten im Index wie auf eine Tabelle), die mit der VACUUM-Operation arbeiten und nicht mit dem Flag ââunsafe-testingâ gestartet werden mĂŒssen;
- Der sqlite-Befehl â.openâ hat die Option ââifexistsâ hinzugefĂŒgt.
- Die maximale Zeichenbreite, die mit dem Befehl â.widthâ festgelegt wird, ist auf 30.000 Zeichen beschrĂ€nkt.
- Leistungsoptimierungen wurden vorgenommen:
- Die CPU-Belastung bei Transaktionsfixierungen, die durch Lesezugriff eingeschrÀnkt sind, wurde reduziert;
- Die Erkennung von Merge-Operationen (JOIN), die keine Zeilen zurĂŒckgeben, weil eine oder mehrere Tabellen keine Zeilen enthalten, wurde verbessert;
- Die AusfĂŒhrung von skalaren Unterabfragen, die keinen Einfluss auf das Ergebnis haben, wurde ausgeschlossen;
- Die Verarbeitung von Fensterfunktionen in Abfragen mit dem Ausdruck âBETWEEN đĄ FOLLOWING AND :y FOLLOWINGâ und einem sehr groĂen Wert fĂŒr â:yâ wurde beschleunigt.
- Es wurde die Pragmas âPRAGMA wal_checkpoint=NOOPâ und die API-Funktion sqlite3_wal_checkpoint() zur Fixierung von Ănderungen im WAL-Log hinzugefĂŒgt.
- Im API wurden die Funktionen sqlite3_set_errmsg() und sqlite3_db_status64() hinzugefĂŒgt.
- In der JavaScript/WASM-Version von SQLite wurde die UnterstĂŒtzung fĂŒr den Build in WebAssembly mit 64-Bit-Pointern implementiert.
- Die WiderstandsfĂ€higkeit gegen DatenbankbeschĂ€digungen in Anwendungen, die POSIX-Sperren ĂŒber den Close()-Aufruf entfernen, wurde erhöht.
- Die PlattformunterstĂŒtzung fĂŒr VxWorks wurde verbessert.
Quelle: opennet.ru
