rilascio , un DBMS leggero, fornito come libreria di collegamento. Il codice di SQLite è rilasciato come dominio pubblico, ossia può essere utilizzato senza restrizioni e gratuitamente per qualsiasi scopo. Il supporto finanziario per gli sviluppatori di SQLite è garantito da un consorzio appositamente creato, che comprende aziende come Adobe, Oracle, Mozilla, Bentley e Bloomberg.
Principali :
- Aggiunto supporto per (colonne calcolate), che consentono di definire una colonna al momento della creazione di una tabella il cui valore è calcolato automaticamente in base al contenuto di un'altra colonna. Le colonne generate possono essere sia virtuali (formate al volo ad ogni accesso) che memorizzate nel database (conservate ad ogni aggiornamento delle colonne correlate). Il contenuto delle colonne generate è accessibile solo in modalità di sola lettura (le modifiche vengono effettuate solo tramite la modifica del valore di un'altra colonna coinvolta nel calcolo). Ad esempio:
CREATE TABLE t1(
a INTEGER PRIMARY KEY,
b INT,
c TEXT,
d INT GENERATED ALWAYS AS (a*abs(b)) VIRTUAL,
e TEXT GENERATED ALWAYS AS (substr(c,b,b+1)) STORED
); - Aggiunti PRAGMA , configurazione e opzione di compilazione «-DSQLITE_TRUSTED_SCHEMA», che consentono di gestire l'attivazione della protezione da attraverso la modifica dello schema dei dati nel DB. Con la protezione attiva l'uso delle funzioni SQL (non contrassegnate come SQLITE_INNOCUOUS) è limitato nei trigger, nelle viste, nelle espressioni CHECK e DEFAULT, negli indici e nelle colonne generate. È inoltre disabilitato l'uso di tabelle virtuali nei trigger e nelle viste, se la tabella virtuale non è esplicitamente dichiarata con il flag SQLITE_VTAB_INNOCUOUS.
- È stata implementata la possibilità di assegnare a determinate funzioni SQL nelle applicazioni proprietà (funzioni innocue, che non dipendono da parametri esterni e non possono essere utilizzate per azioni dannose) e (solo chiamata diretta nelle query SQL, senza possibilità di applicazione in trigger, viste e schemi di struttura dei dati);
- Modulo aggiunto con l'implementazione delle funzioni per la gestione degli UUID (RFC-4122);
- È stata aggiunta la PRAGMA e la funzione per gestire la dimensione massima del heap;
- Nella PRAGMA è stata aggiunta l'uscita del tipo, delle proprietà e del numero di argomenti di ciascuna funzione;
- Nella tabella virtuale DBSTAT modalità di aggregazione dei dati;
- Nella sqlite3_open_v2() è stata implementata l'opzione SQLITE_OPEN_NOFOLLOW, che consente di vietare l'apertura di link simbolici;
- Per l'argomento , passato nelle funzioni JSON, è stato aggiunto il supporto per la notazione degli array «#-N»;
- Nel sistema di distribuzione della memoria è stato implementato il supporto per due pool di memoria separati, ciascuno dei quali può essere utilizzato per allocare blocchi di dimensioni diverse (la separazione consente di ampliare l'uso del sistema lookaside, riducendo al contempo la dimensione del buffer allocato per ogni connessione da 120 a 48 KB);
- È stato interrotto il supporto per PRAGMA , che era incompatibile con VACUUM, colonne generate e indici discendenti (il supporto per il formato obsoleto può essere ripristinato tramite il flag SQLITE_DBCONFIG_LEGACY_FILE_FORMAT in sqlite3_db_config()).
Fonte: opennet.ru
