Die SQLite-Version 3.51 wurde veröffentlicht, eine leichtgewichtige Datenbank, die als dynamische Bibliothek bereitgestellt wird. Der Code von SQLite wird als Gemeingut (public domain) verteilt, d.h. er kann ohne EinschrĂ€nkungen und kostenlos fĂŒr jegliche Zwecke verwendet werden. Die finanzielle UnterstĂŒtzung der SQLite-Entwickler erfolgt durch ein eigens gegrĂŒndetes Konsortium.
HauptÀnderungen:
- Neue JSON-Funktionen jsonb_each() und jsonb_tree() wurden hinzugefĂŒgt, die sich von den zuvor verfĂŒgbaren Funktionen json_each() und json_tree() dadurch unterscheiden, dass sie fĂŒr Daten des Typs Array oder Objekt einen JSONB-Wert zurĂŒckgeben.
- Der Code der Erweiterungen carray und percentile wurde in die Basisdatei 'sqlite3.c' mit dem eingebetteten SQLite-Code verschoben. StandardmĂ€Ăig sind diese ErgĂ€nzungen deaktiviert und erfordern bei der Kompilierung die Angabe der Parameter '-DSQLITE_ENABLE_CARRAY' und '-DSQLITE_ENABLE_PERCENTILE'.
- Die Schnittstelle zur Verwendung von SQLite in Skripten der Programmiersprache Tcl wurde verbessert. Der Befehl 'eval' hat ein Flag '-asdict' erhalten, um Zeilen mit dem Typ 'dict' anstelle von 'array' zu setzen. Es wurde die Möglichkeit hinzugefĂŒgt, benutzerdefinierte Funktionen zu unterbrechen, um den Wert NULL zurĂŒckzugeben.
- Ănderungen der Befehlszeilenschnittstelle:
- Die Genauigkeit des Befehls '.timer' wurde auf Mikrosekunden erhöht;
- In den Formatierungsmodi 'box' und 'column' wird die UnterstĂŒtzung fĂŒr doppelt breite Zeichen realisiert;
- Der Befehl '.imposter' kann nun im Nur-Lesen-Modus imposter-Tabellen bereitstellen (die den Zugriff auf Daten im Index wie bei einer Tabelle erlauben), die mit der VACUUM-Operation arbeiten und nicht mit dem Flag 'âunsafe-testing' ausgefĂŒhrt werden mĂŒssen;
- In das sqlite-Utility und den Befehl '.open' wurde die Option 'âifexists' hinzugefĂŒgt.
- Die maximale Breite der Zeile, die mit dem Befehl '.width' eingestellt wird, ist auf 30000 Zeichen begrenzt.
- Es wurden Leistungsoptimierungen vorgenommen:
- Die CPU-Belastung bei der Fixierung von Transaktionen mit Lesezugriff wurde verringert;
- Die Bestimmung von JOIN-Operationen, die aufgrund des Fehlens von Zeilen in einer oder mehreren Tabellen keine Zeilen zurĂŒckgeben, wurde verbessert;
- Die AusfĂŒhrung von skalaren Unterabfragen, die das Ergebnis nicht beeinflussen, wurde ausgeschlossen;
- Die Leistung von Fensterfunktionen in Abfragen mit dem Ausdruck 'BETWEEN đĄ FOLLOWING AND :y FOLLOWING' und einem sehr hohen Wert ':y' wurde beschleunigt.
- Pragma 'PRAGMA wal_checkpoint=NOOP' und die API-Funktion sqlite3_wal_checkpoint() zur Fixierung von Ănderungen im WAL-Protokoll wurden 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-ZeilenzĂ€hlern implementiert.
- Die WiderstandsfĂ€higkeit gegen BeschĂ€digungen von Datenbanken in Anwendungen, die POSIX-Sperren ĂŒber den Aufruf close() entfernen, wurde erhöht.
- Die UnterstĂŒtzung der Plattform VxWorks wurde verbessert.
Quelle: opennet.ru
