Rilascio del DBMS SQLite 3.40

È stata pubblicata la versione 3.40 di SQLite, un database leggero disponibile come libreria di collegamento. Il codice di SQLite è distribuito come dominio pubblico, il che significa che può essere utilizzato senza restrizioni e gratuitamente per qualsiasi scopo. Il supporto finanziario per gli sviluppatori di SQLite è fornito da un consorzio creato appositamente, che include aziende come Adobe, Oracle, Mozilla, Bentley e Bloomberg.

Principali modifiche:

  • È stata implementata una funzionalità sperimentale per compilare SQLite in codice intermedio WebAssembly, capace di essere eseguito nei browser web e utile per gestire database da applicazioni web scritte in JavaScript. Gli sviluppatori web hanno a disposizione un'interfaccia orientata agli oggetti ad alto livello per lavorare con i dati in stile sql.js o Node.js, una gestione sopra l'API C di basso livello e un'API basata sul meccanismo dei Web Worker, che consente di creare gestori asincroni eseguiti in thread separati. I dati che le applicazioni web salvano nella versione WASM di SQLite possono essere memorizzati sul lato client utilizzando OPFS (Origin-Private FileSystem) o l'API window.localStorage.
  • È stata aggiunta un'estensione di recupero, progettata per il recupero dei dati da file danneggiati del database. Nell'interfaccia della linea di comando, per il recupero si usa il comando «.recover».
  • Migliorato il funzionamento dello scheduler delle query. Rimosse le limitazioni nell'uso degli indici con tabelle che contano più di 63 colonne (in precedenza, per le operazioni su colonne il cui numero di sequenza supera 63, l'indicizzazione non veniva applicata). Ottimizzata l'indicizzazione dei valori utilizzati nelle espressioni. Interrotta il caricamento da disco di grandi righe e blob durante l'elaborazione degli operatori NOT NULL e IS NULL. Esclusa la materializzazione delle viste per le quali la scansione completa viene eseguita solo una volta.
  • Nel codice sorgente, anziché il tipo «char *» per rappresentare i nomi dei file, viene utilizzato un tipo separato sqlite3_filename.
  • Aggiunta la funzione interna sqlite3_value_encoding().
  • Aggiunta la modalità SQLITE_DBCONFIG_DEFENSIVE, che vieta la modifica della versione dello schema di memorizzazione dei dati.
  • Nell'implementazione del parametro «PRAGMA integrity_check» sono state aggiunte ulteriori verifiche. Ad esempio, le tabelle senza il flag STRICT non devono contenere valori numerici nelle colonne di tipo TEXT e valori di stringa con numeri nelle colonne di tipo NUMERIC. È stata inoltre aggiunta una verifica della correttezza dell'ordine delle righe nelle tabelle con il flag «WITHOUT ROWID».
  • Nell'espressione «VACUUM INTO» sono state considerate le impostazioni di «PRAGMA synchronous».
  • È stata aggiunta l'opzione di compilazione SQLITE_MAX_ALLOCATION_SIZE, che consente di limitare la dimensione dei blocchi durante l'allocazione della memoria.
  • L'algoritmo integrato di SQLite per la generazione di numeri pseudocasuali è stato modificato passando dall'uso del cifrario a flusso RC4 a Chacha20.
  • È consentito l'uso di indici con nomi identici in schemi di dati diversi.
  • Sono state apportate ottimizzazioni delle prestazioni che hanno permesso di ridurre il carico sulla CPU di circa l'1% durante un'attività tipica.

Fonte: opennet.ru

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