È stata pubblicata la versione di SQLite 3.38, un DBMS leggero progettato come libreria plug-in. Il codice SQLite è distribuito nel pubblico dominio, cioè può essere utilizzato senza restrizioni e gratuitamente per qualsiasi scopo. Il supporto finanziario per gli sviluppatori SQLite è fornito da un consorzio appositamente creato, che comprende aziende come Adobe, Oracle, Mozilla, Bentley e Bloomberg.
Principali modifiche:
- Aggiunto il supporto per gli operatori -> e ->> per facilitare l'estrazione dei dati in formato JSON. La nuova sintassi dell'operatore è compatibile con MySQL e PostgreSQL.
- La struttura principale include funzioni per lavorare con i dati in formato JSON, la cui connessione in precedenza richiedeva un assembly con il flag "-DSQLITE_ENABLE_JSON1". Il flag "-DSQLITE_OMIT_JSON" è stato aggiunto per disabilitare il supporto JSON.
- Aggiunta la funzione unixepoch() che restituisce il tempo epocale (il numero di secondi dal 1 gennaio 1970).
- Per le funzioni che funzionano con il tempo sono stati implementati i modificatori “auto” e “julianday”.
- La funzione SQL printf() è stata rinominata format() per migliorare la compatibilità con altri DBMS (viene mantenuto il supporto per il vecchio nome).
- Aggiunta l'interfaccia sqlite3_error_offset() per facilitare l'individuazione degli errori in una query.
- Sono state aggiunte nuove interfacce di programma all'implementazione delle tabelle virtuali: sqlite3_vtab_distinct(), sqlite3_vtab_rhs_value() e sqlite3_vtab_in(), nonché nuovi tipi di operatori SQLITE_INDEX_CONSTRAINT_LIMIT e SQLITE_INDEX_CONSTRAINT_OFFSET.
- L'interfaccia della riga di comando garantisce la corretta gestione dei caratteri di tabulazione e di avanzamento riga nell'output di testo in modalità a più colonne. Aggiunto il supporto per l'utilizzo delle opzioni "--wrap N", "--wordwrap on" e "-quote" durante l'output su più colonne. Il comando .import consente la correzione dei nomi delle colonne.
- Per accelerare l'esecuzione di query analitiche di grandi dimensioni, il query planner utilizza una struttura di filtro probabilistico per determinare se un elemento è presente in un set. Un albero di unione bilanciato viene utilizzato per ottimizzare l'elaborazione dei blocchi UNION e UNION ALL che abbracciano istruzioni SELECT con clausole ORDER BY.
Inoltre, puoi notare la pubblicazione di una versione del set sqlite-utils 3.24, che include utilità e una libreria per manipolare file dal database SQLite. Operazioni come caricamento diretto di dati JSON, CSV o TSV in un file di database con creazione automatica dello schema di archiviazione necessario, esecuzione di query SQL su file CSV, TSV e JSON, ricerca full-text nel database, conversione dei dati e schemi di archiviazione nelle situazioni in cui ALTER non è applicabile sono supportati TABLE (ad esempio per cambiare il tipo di colonne), estraendo le colonne in tabelle separate.
Fonte: opennet.ru