SQLite 3.40-Version

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

Kommentar hinzufügen