Liberazione di DBMS SQLite 3.42 è DuckDB 0.8.0. CG/SQL cù implementazione di prucedure almacenate per SQLite

A liberazione di SQLite 3.42, un DBMS ligeru cuncepitu cum'è una biblioteca plug-in, hè stata publicata. U codice SQLite hè distribuitu in u duminiu publicu, i.e. pò esse usatu senza restrizioni è gratuitu per ogni scopu. U supportu finanziariu per i sviluppatori SQLite hè furnitu da un cunsorziu creatu apposta, chì include cumpagnie cum'è Adobe, Oracle, Mozilla, Bentley è Bloomberg.

I cambiamenti principali:

  • Per l'indici full-text FTS5, u cumandamentu di eliminazione sicura hè stata implementata, chì sguassate cumplettamente tutti i dati residuali dopu a eliminazione.
  • E funzioni per processà i dati JSON supportanu avà l'estensione JSON5.
  • Pianificatore di dumande miglioratu. Per automaticamente, l'ottimisazione di u conte di vista hè attivata. U processu di e colonne inutilizate in sottoquestioni hè eliminatu. Implementazione mejorata di l'ottimisazione push-down.
  • Aggiunta l'opzione "--unsafe-testing" à l'interfaccia di linea di cumanda, chì permette l'usu di certi cumandamenti periculosi, cum'è ".testctrl", destinatu à aduprà in teste. In modu sicuru ("-safe"), l'usu di i cumandamenti ".log on" è ".log off" hè permessu. Aghjunghje supportu per u delimitatore "-", per l'argumenti dopu chì u processu di l'opzione hè disattivatu. Aggiunti ":inf" è ":nan" paràmetri assuciati cù i valori infinitu è ​​NaN.
  • I nomi di e funzioni SQL definite da l'applicazione permettenu l'intersezzione cù e parole chjave CROSS, FULL, INNER, LEFT, NATURAL, OUTER è RIGHT.
  • E capacità di PRAGMA integrity_check sò state allargate. Cuntrolla aghjuntu per specificà i valori NaN in colonne cù a cundizione NOT NULL. Cuntenutu di l'infurmazioni migliuratu di i missaghji d'errore.
  • L'add-on di sessione permette di interceptà i cambiamenti da e tavule senza ROWID.
  • U modificatore "subsec" hè statu aghjuntu à e funzioni per travaglià cù i tempi è e date per utilizà frazioni di seconde.
  • A prufundità di recursione predeterminata per arrays è oggetti JSON hè stata ridutta da 2000 à 1000.

Inoltre, a liberazione di u DuckDB 0.8.0 DBMS hè stata creata, chì sviluppa una versione di SQLite, allargata cù capacità è ottimisazioni per eseguisce dumande analitiche chì coprenu una parte significativa di i dati almacenati, per esempiu, eseguendu l'agregazione di u cuntenutu sanu. di tavule o fusione parechje tavule grandi. Fornisce un dialettu avanzatu di SQL chì include capacità supplementari per processà e dumande assai cumplesse è di tempu, è supporta ancu tippi cumplessi (matrici, strutture, unioni), eseguendu parechje dumande simultaneamente, è eseguendu dumande direttamente da i schedari CSV, JSON è Parquet. . Hè pussibule impurtà da u DBMS PostgreSQL.

In più di u codice di shell da SQLite, u prughjettu usa un parser da PostgreSQL in una biblioteca separata, u cumpunente Data Math da MonetDB, a so propria implementazione di e funzioni di finestra (basatu nantu à l'algoritmu Segment Tree Aggregation), un processatore di espressione regulare basatu in a biblioteca RE2, u so propiu ottimisatore di query, è un mecanismu di cuntrollu MVCC esecuzione simultanea di i compiti (Controllu di Concurrenza Multi-Versione), è ancu un mutore di esecuzione di query vectorized basatu annantu à l'algoritmu di Esecuzione di Query Hyper-Pipelining, chì permette grandi gruppi di valori. per esse trattatu in una volta in una operazione. U codice di u prugettu hè distribuitu sottu a licenza MIT.

In a nova versione di DuckDB:

  • Aghjunghjite novi espressioni "PIVOT" è "UNPIVOT" per trasfurmà e fila in colonne è viceversa.
  • Parallelizazione mejorata durante l'importazione è l'esportazione di dati. Per automaticamente, a lettura multi-threaded da i fugliali CSV è a scrittura multi-threaded sò implementate quandu si usa i formati Parquet, CSV è JSON.
  • Aghjunghje l'operatore "**" per iterare recursivamente attraversu i cartulari quandu determinanu i percorsi di u schedariu (per esempiu, FROM "'data/glob/crawl/stackoverflow/**/*.csv';").
  • Aghjunghje supportu per l'operazione di fusione (JOIN) per i dati in a forma di una serie temporale (fette di valori di parametri à intervalli di tempu specificati), in quale u criteriu per unisce i registri ùn hè micca una coincidenza esatta, ma approssimativa di i valori. in un campu cù u tempu (per esempiu, pudete unisce i registri, u tempu chì differisce micca più di 1 minutu).
  • Implementatu a carica lazy di metadata di basa di dati, chì hà permessu di accelerà u lanciamentu di u DBMS da decine di volte.
  • Aghjunghje supportu per cunnette funzioni persunalizati in Python.
  • Aggiuntu supportu per l'API ADBC ​​(Arrow Database Connectivity) per u trasferimentu di dati cù Apache Arrow.
  • Hè stata implementata una vinculazione per l'integrazione cù u codice Swift.
  • Cambiatu u cumpurtamentu di l'operatore di divisione ("/") per fà calculi in virgule flottante invece di l'operazioni intere per automaticamente. Un novu operatore "//" hè prupostu per a divisione intera. U vechju cumportamentu pò esse tornatu da l'imposta "SET integer_division = true;".
  • U metudu di piglià in contu zero records quandu l'ordine hè statu cambiatu da "NULLS FIRST" à "NULLS LAST", i.e. I valori NULL seranu avà stampati à a fine invece di u principiu di a lista. U vechju cumportamentu pò esse tornatu da l'imposta "SET default_null_order = 'nulls_first';".

Inoltre, pudemu nutà u prughjettu CG / SQL sviluppatu da Facebook, chì furnisce un generatore di codice per utilizà e prucedure almacenate cù SQLite. CG / SQL permette di scrive prucedure almacenate in un dialettu speciale di T-SQL (Transact-SQL), chì permette di chjamà funzioni di a libreria C standard è accede à e dati in SQLite. I prucedure almacenati generati sò compilati in codice C chì usa l'API SQLite C per eseguisce l'azzioni specificate è processà e dumande cumplesse. I prucedure almacenati cumpilati ponu esse cunnessi à i prugrammi C, Java è Objective-C. U codice di u prughjettu hè scrittu in C è hè distribuitu sottu a licenza MIT.

Source: opennet.ru

Add a comment