SQLite 3.53.0

SQLite 3.53.0 SQLite 3.53.0

Il 9 aprile è stata rilasciata la versione 3.53.0 del database embedded compatto cross-platform. SQLite. Il codice del progetto è scritto in linguaggio C ed è distribuito come pubblico dominio.

Modifiche:

  • Corretto un errore bug di corruzione del database WAL-reset. Vedi notizia precedente SQLite 3.51.3 con correzione di un possibile danneggiamento del database in modalità WAL.
  • Aggiunta la libreria per la formattazione dei risultati delle query SQL Query Result Formatter (QRF) per garantire una lettura comoda su schermo con font a larghezza fissa.
  • È stato aggiunto il metodo format al interfaccia TCL per accedere a QRF da TCL.
    • QRF è ora utilizzato nell'utilità da console sqlite per formattare i risultati delle query, migliorando la loro visualizzazione.
  • Nuove funzionalità del linguaggio SQL:
    • Migliorate le capacità del comando ALTER TABLE per consentire l'aggiunta e la rimozione di vincoli NOT NULL e CHECK.
    • Operatore REINDEX EXPRESSIONS esegue la reindicizzazione degli indici delle espressioni. Utile per ripristinare indici delle espressioni obsoleti.
    • Ora trigger TEMP possono modificare e/o interrogare dati dalle tabelle del schema principale.
    • Migliorato il comando VACUUM INTO: nel caso venga utilizzato come indirizzo di destinazione un nome file in formato URI che contiene un parametro di richiesta reserve=N (dove N è un numero da 0 a 255), la quantità di riserva per la copia del database creata è impostata uguale a N.
  • Aggiunte nuove funzioni SQL:
  • Aggiornamenti in utilità da console:
    • Importanti miglioramenti al comando .mode.
    • Grazie a estensione QRF migliorata la formattazione dei risultati. Ad esempio, i numeri ora vengono allineati a destra per impostazione predefinita in modalità output tabellare.
    • Per impostazione predefinita, QRF è ora utilizzato durante l'uso interattivo dell'utilità da console per mostrare i risultati delle query in blocchi formati con caratteri Unicode per l'arte dei blocchi, migliorando la leggibilità. Il formato di output obsoleto è utilizzato durante l'esecuzione di comandi batch per garantire compatibilità.
    • Punti e virgola singoli (non racchiusi tra virgolette) alla fine comandi con punto vengono ignorati senza preavviso.  Questa è una possibile incompatibilità!
    • Corrette le comandi .testcase e .check. Ora funzionano effettivamente e vengono utilizzate negli script inclusi nel set di test standard di SQLite, contenuti nel codice sorgente.
    • Gli argomenti della riga di comando che corrispondono ai modelli *.sql o *.txt e rappresentano nomi di file non vuoti vengono letti e interpretati come script contenenti comandi SQL e/o [comandi con punto]((https://sqlite.org/cli.html#dotcmd).
    • Ora, come argomento del comando .timer, è possibile specificare once per attivare il timer solo durante l'esecuzione della seguente query SQL.
    • Il nuovo parametro —timeout S del comando .progress porta all'interruzione dell'esecuzione delle query SQL dopo S secondi.
    • Il comando .indexes è stato modificato in modo che l'argomento PATTERN corrisponda ora al nome dell'indice e non al nome della tabella indicizzata (rendendo l'argomento PATTERN veramente utile). Inoltre, sono state aggiunte nuove opzioni al comando .indexes.
  • Miglioramenti all'API C:
  • Miglioramenti nell'ottimizzatore delle query:
    • Per EXCEPT, INTERSECT e UNION viene sempre utilizzato l'algoritmo di ordinamento e fusione, poiché di solito funziona più velocemente rispetto all'utilizzo di tabelle hash.
    • Miglioramenti nel meccanismo di selezione dell'ordine di join durante l'esecuzione di grandi join multipli in uno schema a stella.
    • Ottimizzazione migliorata della trasformazione di EXISTS in JOIN affinché le condizioni di JOIN inserite non debbano necessariamente trovarsi nei cicli interni, a condizione che tutte le dipendenze per i cicli di trasformazione di EXISTS in JOIN siano situate nei cicli esterni.
    • Ottimizzazione migliorata del omit-noop-join in modo che possa omettere una catena di join che non influiscono sul risultato.
    • Ottimizzazione delle query che utilizzano GROUP BY e1 ORDER BY e2, dove e1 ed e2 sono identici, ad eccezione dell'ordine di ordinamento ASC/DESC, utilizzando un solo indice.
    • Ottimizzazione dell'operatore DISTINCT nelle tabelle virtuali nei casi in cui il set di risultati della query non soddisfi completamente la condizione ORDER BY.
  • In estensione della sessione Sono stati aggiunti nuovi interfacce che consentono all'app di applicare modifiche una alla volta all'oggetto sqlite3_changegroup:
  • Miglioramenti nella conversione tra numeri a virgola mobile ↔ testo.
    • Il codice è stato completamente riscritto per migliorare le prestazioni.
    • Ora per impostazione predefinita l'arrotondamento viene effettuato fino a 17 cifre significative invece di 15, come accadeva in tutte le versioni precedenti. Questo valore può essere modificato se necessario tramite la funzione sqlite3_db_config con l'opzione SQLITE_DBCONFIG_FP_DIGITS (vedere punto 6g sopra).
  • È stata aggiunta la possibilità auto-ripristino dell'indice per risolvere il problema indici delle espressioni obsoleti.
  • Nell'utilità della console sqlite3_rsync è stata aggiunta l'opzione -p|--port.
  • Supporto interrotto per Windows RT.
  • JavaScript/WASM
    • È stata aggiunta VFS opfs-wl, funzionalmente identica a opfs, ma utilizza per i blocchi Web Locks, il che consente una distribuzione dei blocchi più equa rispetto al protocollo opfs. opfs-wl richiede la funzione Atomics.waitAsync(), quindi per funzionare richiede versioni più recenti dei browser rispetto a opfs.

Fonte: linux.org.ru

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