Die Veröffentlichung von SQLite 3.40, einem schlanken DBMS, das als Plug-in-Bibliothek konzipiert ist, wurde veröffentlicht. Der SQLite-Code wird in der öffentlichen DomĂ€ne verteilt, d. h. uneingeschrĂ€nkt und kostenfrei fĂŒr jeden Zweck nutzbar. Die finanzielle UnterstĂŒtzung fĂŒr SQLite-Entwickler erfolgt durch ein eigens gegrĂŒndetes Konsortium, dem Unternehmen wie Adobe, Oracle, Mozilla, Bentley und Bloomberg angehören.
Wichtigste Ănderungen:
- Die experimentelle Möglichkeit zum Kompilieren von SQLite in einen WebAssembly-Zwischencode wurde implementiert, der in einem Webbrowser ausgefĂŒhrt werden kann und zum Organisieren der Arbeit mit der Datenbank aus Webanwendungen in der JavaScript-Sprache geeignet ist. Webentwicklern steht eine objektorientierte Schnittstelle auf hoher Ebene fĂŒr die Arbeit mit Daten im Stil von sql.js oder Node.js zur VerfĂŒgung, die ĂŒber eine C-API auf niedriger Ebene und eine auf dem Web Worker-Mechanismus basierende API verfĂŒgt, die dies ermöglicht um asynchrone Handler zu erstellen, die in separaten Threads ausgefĂŒhrt werden. Die Daten, die Webanwendungen in der WASM-Version von SQLite speichern, können auf der Clientseite mithilfe von OPFS (Origin-Private FileSystem) oder der window.localStorage-API gespeichert werden.
- Die Wiederherstellungserweiterung wurde hinzugefĂŒgt, um Daten aus beschĂ€digten Dateien aus der Datenbank wiederherzustellen. Die Befehlszeilenschnittstelle verwendet zum Wiederherstellen den Befehl â.recoverâ.
- Verbesserte Leistung des Abfrageplaners. EinschrĂ€nkungen wurden bei der Verwendung von Indizes fĂŒr Tabellen mit mehr als 63 Spalten entfernt (zuvor wurde die Indizierung nicht fĂŒr VorgĂ€nge mit Spalten angewendet, deren Ordnungszahl 63 ĂŒberstieg). Verbesserte Indizierung der in AusdrĂŒcken verwendeten Werte. Beim Verarbeiten der NOT NULL- und IS NULL-Operatoren wurde das Laden groĂer Zeichenfolgen und Blobs von der Festplatte gestoppt. Ausgeschlossene Materialisierung von Ansichten, fĂŒr die ein vollstĂ€ndiger Scan nur einmal durchgefĂŒhrt wird.
- In der Codebasis wird anstelle des Typs âchar *â ein separater Typ sqlite3_filename zur Darstellung von Dateinamen verwendet.
- Interne Funktion sqlite3_value_encoding() hinzugefĂŒgt.
- Der SQLITE_DBCONFIG_DEFENSIVE-Modus wurde hinzugefĂŒgt, der das Ăndern der Speicherschemaversion verhindert.
- Der Implementierung des Parameters âPRAGMA Integrity_checkâ wurden zusĂ€tzliche PrĂŒfungen hinzugefĂŒgt. Tabellen ohne das STRICT-Attribut dĂŒrfen beispielsweise keine numerischen Werte in TEXT-Spalten und Zeichenfolgenwerte mit Zahlen in NUMERIC-Spalten enthalten. ĂberprĂŒfen Sie auĂerdem die Richtigkeit der Zeilenreihenfolge in Tabellen mit dem Zeichen âOHNE ROWIDâ.
- Der âVACUUM INTOâ-Ausdruck berĂŒcksichtigt die âPRAGMA synchronousâ-Einstellungen.
- Die Build-Option SQLITE_MAX_ALLOCATION_SIZE wurde hinzugefĂŒgt, um die GröĂe von Blöcken bei der Speicherzuweisung zu begrenzen.
- Der in SQLite integrierte Algorithmus zur Generierung von Pseudozufallszahlen wurde von der Verwendung der RC4-Stream-VerschlĂŒsselung auf Chacha20 umgestellt.
- Es ist erlaubt, Indizes mit demselben Namen in verschiedenen Datenschemata zu verwenden.
- Es wurden Leistungsoptimierungen vorgenommen, um die Belastung der CPU bei typischer AktivitÀt um etwa 1 % zu reduzieren.
Source: opennet.ru
