Erscheinung der SQLite DB 3.35

Die Veröffentlichung von SQLite 3.35, einer schlanken DB, die als Plug-in-Bibliothek bereitgestellt wird, wurde bekannt gegeben. Der Quellcode von SQLite wird als Public Domain veröffentlicht, d.h. er kann uneingeschrĂ€nkt und kostenlos fĂŒr jede Anwendung verwendet werden. Die finanzielle UnterstĂŒtzung der SQLite-Entwickler wird von einem speziell gegrĂŒndeten Konsortium ĂŒbernommen, zu dem Unternehmen wie Adobe, Oracle, Mozilla, Bentley und Bloomberg gehören.

HauptÀnderungen:

  • Es wurden integrierte mathematische Funktionen (log2(), cos(), tg(), exp(), ln(), pow() usw.) hinzugefĂŒgt, die in SQL verwendet werden können. Um die integrierten Funktionen zu aktivieren, ist ein Build mit der Option „-DSQLITE_ENABLE_MATH_FUNCTIONS“ erforderlich.
  • Die UnterstĂŒtzung fĂŒr den Ausdruck „ALTER TABLE DROP COLUMN“ wurde implementiert, um Spalten aus einer Tabelle zu entfernen und zuvor in dieser Spalte gespeicherte Daten zu bereinigen.
  • Die Implementierung der UPSERT-Operation (einfĂŒgen-oder-modifizieren) wurde erweitert, sodass ĂŒber AusdrĂŒcke wie „INSERT 
 ON CONFLICT DO NOTHING/UPDATE“ der Fehler ignoriert oder ein Update anstelle eines EinfĂŒgens durchgefĂŒhrt werden kann, wenn das HinzufĂŒgen von Daten ĂŒber „INSERT“ nicht möglich ist (zum Beispiel, wenn der Datensatz bereits existiert, kann anstelle von INSERT ein UPDATE durchgefĂŒhrt werden). In der neuen Version ist es erlaubt, mehrere „ON CONFLICT“-Blöcke anzugeben, die in der Reihenfolge verarbeitet werden. Im letzten „ON CONFLICT“-Block ist es erlaubt, den Konfliktparameter fĂŒr die Verwendung von „DO UPDATE“ nicht anzugeben.
  • In den Operationen DELETE, INSERT und UPDATE wurde die UnterstĂŒtzung des Ausdrucks RETURNING implementiert, mit dem der Inhalt eines gelöschten, eingefĂŒgten oder geĂ€nderten Datensatzes ausgegeben werden kann. Zum Beispiel gibt der Ausdruck „insert into 
 returning id“ die ID der hinzugefĂŒgten Zeile zurĂŒck, und „update 
 set price = price * 1.10 returning price“ gibt den aktualisierten Preis zurĂŒck.
  • FĂŒr die allgemeinen tabellarischen AusdrĂŒcke (Common Table Expression, CTE), die temporĂ€re benannte Ergebnismengen ermöglichen, die mit der WITH-Anweisung definiert werden, wurden die Modusauswahlen „MATERIALIZED“ und „NOT MATERIALIZED“ genehmigt. „MATERIALIZED“ impliziert, dass das in der Sicht definierte Abfrageergebnis in einer separaten physischen Tabelle zwischengespeichert wird, wobei die Daten aus dieser Tabelle abgerufen werden, wĂ€hrend bei „NOT MATERIALIZED“ bei jedem Zugriff auf die Sicht wiederholte Abfragen durchgefĂŒhrt werden. UrsprĂŒnglich wurde in SQLite standardmĂ€ĂŸig der Modus „NOT MATERIALIZED“ verwendet, aber nun wurde er fĂŒr CTE, die mehr als einmal verwendet werden, auf „MATERIALIZED“ geĂ€ndert.
  • Der Speicherverbrauch wĂ€hrend der AusfĂŒhrung der VACUUM-Operation fĂŒr Datenbanken mit sehr großen TEXT- oder BLOB-Werten wurde reduziert.
  • Es wurden Arbeiten zur Verbesserung der Leistung des Optimierers und des Abfrageplans durchgefĂŒhrt:
    • Optimierungen wurden bei der Verwendung der Funktionen min und max mit dem Ausdruck „IN“ hinzugefĂŒgt.
    • Die AusfĂŒhrung des EXISTS-Operators wurde beschleunigt.
    • Unterabfragen aus UNION ALL-AusdrĂŒcken, die in JOINs verwendet werden, wurden implementiert.
    • Ein Index wurde fĂŒr IS NOT NULL-AusdrĂŒcke verwendet.
    • Die Umwandlung von „x IS NULL“ und „x IS NOT NULL“ in FALSE oder TRUE fĂŒr Spalten mit dem Attribut „NOT NULL“ wurde sichergestellt.
    • Die ÜberprĂŒfung von FremdschlĂŒsseln in UPDATE wurde ĂŒbersprungen, wenn die Operation keine Spalten Ă€ndert, die mit dem FremdschlĂŒssel verbunden sind.
    • Das Verschieben von Teilen der WHERE-Klausel in Unterabfragen, die Fensterfunktionen enthalten, wurde erlaubt, wenn diese Teile auf Konstanten und Kopien von AusdrĂŒcken aus den „PARTITION BY“-Klauseln, die in Fensterfunktionen verwendet werden, beschrĂ€nkt sind.
  • Änderungen der Befehlszeilenschnittstelle:
    • Der Befehl „.filectrl data_version“ wurde hinzugefĂŒgt.
    • In den Befehlen „.once“ und „.output“ wurde die UnterstĂŒtzung fĂŒr die Weitergabe der Ausgabe an einen Handler, der ĂŒber benannte Pipes („|“) aufgerufen wird, hinzugefĂŒgt.
    • Dem Befehl „.stats“ wurden die Argumente „stmt“ und „vmstep“ zur Ausgabe von Statistiken ĂŒber AusdrĂŒcke und ZĂ€hler der virtuellen Maschine hinzugefĂŒgt.

Quelle: opennet.ru

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster