Versione SQLite 3.40

È stata pubblicata la versione di SQLite 3.40, 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:

  • Implementata la capacità sperimentale di compilare SQLite in un codice WebAssembly intermedio che può essere eseguito in un browser Web ed è adatto per organizzare il lavoro con il database da applicazioni Web nel linguaggio JavaScript. Agli sviluppatori Web viene fornita un'interfaccia orientata agli oggetti di alto livello per lavorare con i dati nello stile di sql.js o Node.js, avvolgendo un'API C di basso livello e un'API basata sul meccanismo Web Worker che ti consente per creare gestori asincroni che vengono eseguiti su thread separati. I dati archiviati dalle applicazioni Web nella versione WASM di SQLite possono essere archiviati sul lato client utilizzando OPFS (Origin-Private FileSystem) o l'API window.localStorage.
  • È stata aggiunta l'estensione di ripristino, progettata per recuperare i dati dai file danneggiati dal database. L'interfaccia della riga di comando utilizza il comando ".recover" per il ripristino.
  • Miglioramento delle prestazioni del pianificatore di query. Le restrizioni sono state rimosse quando si utilizzavano indici con tabelle con più di 63 colonne (in precedenza, l'indicizzazione non veniva applicata per le operazioni con colonne il cui numero ordinale superava 63). Migliorata l'indicizzazione dei valori utilizzati nelle espressioni. Interruzione del caricamento di stringhe e BLOB di grandi dimensioni dal disco durante l'elaborazione degli operatori NOT NULL e IS NULL. Materializzazione esclusa delle viste per le quali una scansione completa viene eseguita una sola volta.
  • Nella codebase, invece di utilizzare il tipo "char *", viene utilizzato un tipo sqlite3_filename separato per rappresentare i nomi dei file.
  • Aggiunta la funzione interna sqlite3_value_encoding().
  • Aggiunta la modalità SQLITE_DBCONFIG_DEFENSIVE, che impedisce la modifica della versione dello schema di archiviazione.
  • Ulteriori controlli sono stati aggiunti all'implementazione del parametro "PRAGMA integral_check". Ad esempio, le tabelle senza l'attributo STRICT non devono contenere valori numerici nelle colonne TEXT e valori stringa con numeri nelle colonne NUMERIC. Aggiunto anche il controllo della correttezza dell'ordine delle righe nelle tabelle con l'attributo "WITHOUT ROWID".
  • L'espressione "VACUUM INTO" rispetta le impostazioni "PRAGMA synchronous".
  • Aggiunta l'opzione di compilazione SQLITE_MAX_ALLOCATION_SIZE per limitare la dimensione del blocco durante l'allocazione della memoria.
  • L'algoritmo per la generazione di numeri pseudo-casuali integrato in SQLite è stato spostato dall'utilizzo del cifrario a flusso RC4 a Chacha20.
  • È consentito utilizzare indici con lo stesso nome in diversi schemi di dati.
  • Sono state apportate ottimizzazioni delle prestazioni per ridurre il carico sulla CPU di circa l'1% durante l'attività tipica.

Fonte: opennet.ru

Aggiungi un commento