Uscita del DBMS SQLite 3.53

È stata pubblicata la versione 3.53 di SQLite, un sistema di gestione di database leggero disponibile come libreria collegabile. La versione 3.52 è stata annullata. Il codice di SQLite è distribuito come pubblico dominio, quindi può essere utilizzato senza restrizioni e gratuitamente per qualsiasi scopo. Il supporto finanziario per gli sviluppatori di SQLite è fornito da un consorzio appositamente creato.

Principali modifiche:

  • È stato risolto un errore che portava alla corruzione del database. Il problema era presente dalla versione 3.7.0 di SQLite (anno 2010) e riguardava database in modalità WAL (Write-Ahead Logging), manifestandosi a causa di una condizione di race quando due o più connessioni venivano aperte contemporaneamente al database, cercando di scrivere o confermare transazioni in un'unica istanza del database. Si afferma che il concatenarsi di circostanze che portava al guasto si verifica estremamente raramente e che è stato possibile replicarlo solo in uno scenario di test creato appositamente.
  • Nel comando 'ALTER TABLE' è consentita la rimozione delle restrizioni 'NOT NULL' e 'CHECK'.
  • È stata aggiunta la comando «REINDEX EXPRESSIONS» per ricostruire gli indici basati su espressioni, in cui viene utilizzata una funzione su una colonna o operazioni su colonne come elemento dell'indice. Il comando può essere utilizzato per ripristinare indici danneggiati.
  • All'interno dei trigger temporanei creati con il comando «CREATE TEMP TRIGGER» e applicati a tabelle in altri database, è consentita la modifica delle tabelle o le query sui dati delle tabelle.
  • Nel comando «VACUUM INTO», specificando il file di destinazione tramite URL, è stato implementato l'uso del parametro «reserve=N» per determinare il numero di copie di backup create del database.
  • Sono state implementate nuove funzioni SQL json_array_insert() e jsonb_array_insert() per inserire elementi negli array JSON.
  • È stata aggiunta e attivata nella utility da riga di comando la libreria QRF (Query Result Formatter) per formattare i risultati delle query SQL in una forma leggibile.
  • Modifiche nella utility da riga di comando:
    • Il comando «.mode» è stato notevolmente ampliato.
    • È stato migliorato il formato di output, ad esempio, le cornici sono ora disegnate per impostazione predefinita e i valori numerici ora vengono allineati a destra nell'output tabulato.
    • È stata garantita l'ignoranza dei caratteri «;» dopo i comandi.
    • Il contenuto dei file specificati nella riga di comando con estensioni *.sql e *.txt viene ora letto e interpretato come insiemi di espressioni SQL e comandi dot.
    • Nel comando «.timer» è stato aggiunto il supporto per il valore «once» per applicare il timer solo alla prossima espressione SQL.
    • Nel comando «.progress» è stata aggiunta l'opzione «—timeout S» per forzare l'interruzione dell'espressione SQL dopo il timeout.
    • Nel comando «.indexes» è stata modificata la logica dei modelli, che ora si applicano ai nomi degli indici, e non ai nomi delle tabelle indicizzate.
  • Sono state apportate ottimizzazioni al pianificatore di query, migliorando le prestazioni della fusione delle tabelle e delle operazioni EXCEPT, INTERSECT e UNION.
  • È stata migliorata la performance delle funzioni di conversione dei numeri in virgola mobile in rappresentazione testuale.
  • Nell'implementazione compilata in codice intermedio WebAssembly è stata aggiunta la VFS «opfs-wl», identica alla VFS «opfs», ma utilizzando l'API Web Locks per gestire i lock.
  • Nel utility sqlite3_rsync è stata aggiunta l'opzione «-p|—port».
  • È stata interrotta la supporto per la piattaforma Windows RT.

Fonte: opennet.ru

Acquista un hosting affidabile per siti con protezione DDoS, server VPS VDS 🔥 Acquista un hosting affidabile per siti con protezione DDoS, server VPS VDS | ProHoster