SQLite 3.35 include nuove funzioni matematiche integrate e altro ancora

È stata rilasciata la versione 3.35 di SQLite e in questa nuova versione di questo database manager sono evidenziate le aggiunte di funzioni matematiche, oltre al supporto per l'espressione ALTER TABLE DROP COLUMN per eliminare colonne da una tabella, operazioni migliorate e altro ancora.

Per chi non ha familiarità con il pacchetto SQLite è un DBMS leggero, progettato come una libreria di plugin. Il codice SQLite è distribuito come dominio pubblico, ovvero, può essere utilizzato senza restrizioni e gratuitamente per qualsiasi scopo.

Principali novità di SQLite 3.35

Come accennato all'inizio, in questa nuova versione aggiunte funzioni matematiche incorporate (log2 (), cos (), tg (), exp (), ln (), pow (), ecc.) che può essere utilizzato in SQL. Per abilitare le funzioni incorporate, è richiesto un assembly con l'opzione "-DSQLITE_ENABLE_MATH_FUNCTIONS".

L'espressione "ALTER TABLE DROP COLUMN" ora supporta l'eliminazione di colonne da una tabella ed eliminare i dati precedentemente memorizzati in questa colonna.

L'implementazione dell'operazione UPSERT (aggiungere o modificare), che consente di utilizzare espressioni come "INSERT ON CONFLICT DO NOTHING / UPDATE" per ignorare un errore o eseguire un aggiornamento invece di inserire se è impossibile aggiungere dati tramite "INSERT" (ad esempio, se un record, è possibile eseguire UPDATE invece di INSERT).

Nella nuova versione è consentito specificare diversi blocchi «IN CONFLITTO«, Che verrà elaborato in ordine. Nell'ultimo blocco "ON CONFLICT", è consentito non specificare il parametro di definizione del conflitto per utilizzare "DO UPDATE".

operazioni DELETE, INSERT e UPDATE supportano l'espressione RETURNING, che può essere utilizzato per visualizzare il contenuto di un record eliminato, inserito o modificato. Ad esempio, "inserisci in ... ID di restituzione" restituirà l'identificatore di riga aggiunto e "aggiorna ... imposta prezzo = prezzo * 1.10 prezzo di restituzione" restituirà il valore del prezzo aggiornato.

Per le espressioni di tabella generalizzate (Common Table Expression, CTE), che consente l'uso di insiemi di risultati denominati temporalmente, utilizzando WITH chiesto all'operatore, ha approvato la scelta delle modalità «MATERIALIZED» e «NOT MATERIALIZED».

  1. "MATERIALIZZATO" significa memorizzare nella cache la query specificata nella vista in una tabella fisica separata con successivo recupero dei dati da questa tabella.
  2. E con "NOT MATERIALIZED", le query ripetute verranno eseguite ogni volta che si accede alla visualizzazione. Inizialmente, SQLite era impostato su "NOT MATERIALIZED", ma ora è stato modificato in "MATERIALIZED" per i CTE utilizzati più di una volta.

Delle altre modifiche che si distinguono da questa nuova versione:

  • Consumo di memoria ridotto durante l'esecuzione di operazioni VACUUM per database che includono valori molto grandi con tipi TEXT o BLOB.
  • È stato fatto del lavoro per aumentare le prestazioni dell'ottimizzatore e dell'utilità di pianificazione delle query.
  • Le ottimizzazioni sono state aggiunte quando si utilizzano le funzioni min e max con l'espressione "IN".
  • L'esecuzione dell'istruzione EXISTS è stata accelerata.
  • Viene implementata l'espansione delle sottoquery delle espressioni UNION ALL utilizzate in JOIN.
  • Indice utilizzato per le espressioni IS NOT NULL.
  • La conversione di "x IS NULL" e "x IS NOT NULL" in FALSE o TRUE è stata fornita per le colonne con il flag "NOT NULL".
  • Il controllo della chiave esterna in UPDATE viene saltato se l'operazione non modifica le colonne associate alla chiave esterna.
  • Lo spostamento di parti della clausola WHERE in sottoquery contenenti funzioni finestra è consentito se queste parti sono limitate a lavorare con costanti e copie delle espressioni della clausola "PARTITION BY" utilizzate nelle funzioni finestra.

Modifiche all'interfaccia della riga di comando:

  • Aggiunto il comando ".filectrl data_version".
  • I comandi ".once" e ".output" hanno aggiunto il supporto per il passaggio dell'output a un controller chiamato utilizzando pipe senza nome ("|").
  • Il comando ".stats" ha aggiunto gli argomenti "stmt" e "vmstep" per visualizzare le statistiche sui contatori e sulle espressioni della macchina virtuale.

Infine se sei interessato a saperne di più su questa nuova versione di SQLite, puoi controllare i dettagli andando al seguente collegamento.


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.