Die neue Version der Datenbank-Engine optimiert die JSON-Funktionen und den Query-Planer. Darüber hinaus haben die Entwickler das Kommandozeilenprogramm verbessert und an den Application-defined SQL-Funktionen geschraubt.
Zunächst bietet SQLite 3.45 komplett neu implementierte JSON-Funktionen. Diese nutzen jetzt intern ein neues Parse-Tree-Format namens JSONB. Dieses lässt sich serialisieren und so in der Datenbank (als BLOB) speichern. Das neue Format verhindert insbesondere, dass SQLite die JSON-Daten mehrfach beziehungsweise erneut parsen muss. Davon unabhängig erlaubt die Funktion „json_valid()“ jetzt ein optionales, zweites Argument. Über dieses lässt sich angeben, wann der erste Parameter „wohlgeformt“ ist.
SQLite liegt in erster Linie als Bibliothek vor, die Programmierer in ihre Anwendungen einbinden. Letztgenannte dürfen eigene SQL-Funktionen vorgeben, die dann wiederum über Code in der Anwendung ihre Ergebnisse berechnen. Für diese Application-defined SQL Functions führt SQLite 3.45 die Eigenschaft SQLITE_RESULT_SUBTYPE ein. Alle Application-defined SQL Functions, die die Funktion „sqlite3_result_subtype()“ aufrufen, müssen sich mit der neuen Eigenschaft registrieren. Andernfalls arbeitet „sqlite3_result_subtype()“ nicht.
SQLite 3.45 erhöht drastisch die Datenmenge, die eine Datenbankdatei aufnehmen kann (SQLITE_MAX_PAGE_COUNT). So passen ab sofort 4.294.967.294 Seiten in eine Datei. Standardmäßig aktiv ist „SQLITE_DIRECT_OVERFLOW_READ“. Mit ihr verbessert sich sich vor allem die Lesegeschwindigkeit von Datenbanken mit vielen BLOBs und Strings.
Zu SQLite gehört auch ein Client-Programm, mit dem sich die Datenbank direkt manipulieren lassen. Dieses erkennt ein Playback von „.dump“-Skripten und passt die entsprechenden Einstellungen an — die Release-Notes nennen „.dbconfig defensive off“ und „.dbconfig dqs_dll on“ als Beispiele. Unter Windows zeigt das Tool zudem UTF-8 kodierte Inhalte besser an.





