Verëffentlechung vun DBMS SQLite 3.42 an DuckDB 0.8.0. CG / SQL mat Ëmsetzung vun gespäichert Prozedure fir SQLite

D'Verëffentlechung vu SQLite 3.42, e liicht DBMS entworf als Plug-in Bibliothéik, gouf publizéiert. De SQLite Code gëtt als Public Domain verdeelt, d.h. kann ouni Restriktiounen a gratis fir all Zweck benotzt ginn. Finanziell Ënnerstëtzung fir SQLite Entwéckler gëtt vun engem speziell erstallte Konsortium geliwwert, deen Firmen wéi Adobe, Oracle, Mozilla, Bentley a Bloomberg enthält.

Main Ännerungen:

  • Fir FTS5 Volltext-Indexen ass de Kommando sécher-läschen ëmgesat ginn, wat all Reschtdaten no der Läschung komplett läscht.
  • Funktiounen fir d'Veraarbechtung vun JSON Daten ënnerstëtzen elo JSON5 Extensiounen.
  • Verbesserte Ufroplaner. Par défaut ass Count-of-View Optimisatioun aktivéiert. D'Veraarbechtung vun onbenotzten Sailen an Ënnerqueries gëtt eliminéiert. Verbessert Ëmsetzung vun Push-Down Optimisatioun.
  • D'Optioun "--unsafe-testing" bäigefüügt fir d'Command Line Interface, déi d'Benotzung vun e puer geféierleche Kommandoen erlaabt, wéi ".testctrl", geduecht fir ze testen. Am séchere Modus ("-safe") ass d'Benotzung vun de Kommandoen ".log on" an ".log off" erlaabt. Zousätzlech Ënnerstëtzung fir den "—" Ofgrenzer, fir Argumenter no deenen d'Optiounsveraarbechtung deaktivéiert ass. Zousätzlech ": inf" an ": nan" Parameteren verbonne mat der Infinity an NaN Wäerter.
  • Uwendungsdefinéiert SQL Funktiounsnamen sinn erlaabt mat de Schlësselwieder CROSS, FULL, INNER, LEFT, NATURAL, OUTER a RIGHT ze iwwerlappen.
  • D'Kapazitéite vum PRAGMA integrity_check goufen erweidert. Iwwerpréift bäigefüügt fir NaN Wäerter a Spalten mat der NOT NULL Conditioun ze spezifizéieren. Verbesserte Informatiounsinhalt vu Fehlermeldungen.
  • D'Sessioun Add-on erlaabt Ännerungen vun Dëscher ouni ROWID ofgefaangen.
  • De "subsec" Modifikateur gouf u Funktiounen bäigefüügt fir mat Zäiten an Datumen ze schaffen fir Fraktiounen vu Sekonnen ze benotzen.
  • D'Standard Rekursiounsdéift fir Arrays an JSON Objete gouf vun 2000 op 1000 reduzéiert.

Zousätzlech ass d'Verëffentlechung vum DuckDB 0.8.0 DBMS erstallt, deen eng Versioun vu SQLite entwéckelt, erweidert mat Fäegkeeten an Optimisatiounen fir analytesch Ufroen auszeféieren, déi e groussen Deel vun de gespäicherten Donnéeën ofdecken, zum Beispill d'Aggregatioun vum ganzen Inhalt. vun Dëscher oder e puer grouss Dëscher fusionéieren. Bitt e fortgeschrattenen SQL-Dialekt deen zousätzlech Fäegkeeten enthält fir ganz komplex an Zäitopwänneg Ufroen ze veraarbechten, an ënnerstëtzt och komplex Typen (Arrays, Strukturen, Gewerkschaften), Lafen verschidde Ufroe gläichzäiteg, a lafen Ufroen direkt vun CSV, JSON, a Parquet Dateien . Et ass méiglech aus dem PostgreSQL DBMS z'importéieren.

Zousätzlech zum Shellcode vu SQLite benotzt de Projet e Parser vu PostgreSQL an enger separater Bibliothéik, den Date Math Komponent vu MonetDB, seng eege Implementatioun vu Fënsterfunktiounen (baséiert op dem Segment Tree Aggregation Algorithmus), e reguläre Ausdrockprozessor baséiert op d'RE2 Bibliothéik, säin eegene Query Optimizer, an e MVCC Kontrollmechanismus gläichzäiteg Ausféierung vun Aufgaben (Multi-Version Concurrency Control), souwéi e vektoriséierte Query Ausféierungsmotor baséiert op dem Hyper-Pipelining Query Execution Algorithmus, wat grouss Sätz vu Wäerter erlaabt op eemol an enger Operatioun veraarbecht ze ginn. De Projet Code gëtt ënner der MIT Lizenz verdeelt.

An der neier Versioun vun DuckDB:

  • Nei Ausdréck "PIVOT" an "UNPIVOT" bäigefüügt fir Reihen a Kolonnen ze transforméieren a vice versa.
  • Verbesserte Paralleliséierung beim Import an Export vun Daten. Par défaut, Multi-threaded Liesen aus CSV-Dateien a Multi-threaded Schreiwen gi implementéiert wann Dir Parquet, CSV an JSON Formater benotzt.
  • "**" Bedreiwer bäigefüügt fir rekursiv duerch Verzeichnisser ze iteréieren wann Dir Dateiweeër bestëmmt (zum Beispill VUN "'data/glob/crawl/stackoverflow/**/*.csv';").
  • Zousätzlech Ënnerstëtzung fir Fusiounsoperatioune (JOIN) fir Donnéeën a Form vun enger Zäitserie (Scheiwen vu Parameterwäerter a spezifizéierte Zäitintervaller), an där de Critère fir d'Fusiounsrecords net exakt ass, awer en ongeféieren Zoufall vu Wäerter an engem Feld mat Zäit (zum Beispill, Dir kënnt records fusionéieren, Zäit déi net méi wéi 1 Minutt ënnerscheeden).
  • Implementéiert faul Luede vun Datebank Metadaten, wat et méiglech gemaach huet de Start vun der DBMS ëm zéng Mol ze beschleunegen.
  • Zousätzlech Ënnerstëtzung fir personaliséiert Funktiounen am Python ze verbannen.
  • Zousätzlech Ënnerstëtzung fir d'ADBC (Arrow Database Connectivity) API fir d'Iwwerdroung vun Daten mat Apache Arrow.
  • Eng Bindung gouf fir Integratioun mam Swift Code ëmgesat.
  • Verännert d'Behuele vum Divisiounsbedreiwer ("/") fir Floating Point Berechnungen auszeféieren anstatt ganz Zuelen Operatiounen als Standard. En neie Bedreiwer "//" gëtt fir ganz Zuelen Divisioun proposéiert. Dat alt Verhalen kann zréckgesat ginn andeems Dir "SET integer_division = true;" setzt.
  • D'Method fir Null records ze berücksichtegen wann d'Sortéierung gouf vun "NULLS FIRST" op "NULLS LAST" geännert, d.h. NULL Wäerter ginn elo um Enn gedréckt anstatt um Ufank vun der Lëscht. Dat alt Verhalen kann zréckgesat ginn andeems Dir "SET default_null_order = 'nulls_first';".

Zousätzlech kënne mir de CG / SQL-Projet notéieren, dee vu Facebook entwéckelt gouf, deen e Code Generator fir d'Benotzung vu gespäichert Prozedure mat SQLite ubitt. CG / SQL erlaabt Iech gespäichert Prozeduren an engem speziellen Dialekt vun T-SQL (Transact-SQL) ze schreiwen, wat d'Funktioune vun der Standard C-Bibliothéik rufft an Zougang zu Daten an SQLite erlaabt. Déi generéiert gespäichert Prozedure ginn an C Code zesummegesat, deen d'SQLite C API benotzt fir spezifizéiert Handlungen auszeféieren a komplex Ufroen ze veraarbecht. Kompiléiert gespäichert Prozedure kënne mat C, Java, an Objective-C Programmer verbonne sinn. De Projet Code ass an C geschriwwen a gëtt ënner der MIT Lizenz verdeelt.

Source: opennet.ru

Setzt e Commentaire