SQLite 3.53.0

SQLite 3.53.0 SQLite 3.53.0

Pe 9 aprilie a fost lansată versiunea 3.53.0 a bazei de date încorporate compacte și multiplatformă. SQLite. Codul proiectului este scris în limbajul C și este distribuit ca domeniu public.

Modificări:

  • A fost corectată o eroare. Bug de corupție a bazei de date WAL-reset.. Vezi știrea anterioară. SQLite 3.51.3 cu corectura posibilei deteriorări a bazei de date în modul WAL.
  • A fost adăugată biblioteca de formatare a rezultatelor interogărilor SQL. Formator de rezultate pentru interogări (QRF). pentru a asigura o lectură ușoară pe ecran, cu font de lățime fixă.
  • A fost adăugată metoda format la interfața TCL. pentru accesul la QRF din TCL.
    • QRF este acum utilizat în utilitarul de consolă sqlite pentru formatarea rezultatelor interogărilor, îmbunătățind afișarea acestora.
  • Noile funcționalități ale limbajului SQL:
    • Sunt îmbunătățite funcționalitățile comenzii ALTER TABLE pentru a permite adăugarea și eliminarea constrângerilor NOT NULL și CHECK.
    • Operator REINDEX EXPRESSIONS efectuează reindexarea expresiilor de index. Este util pentru recuperarea indexurilor de expresie depășite..
    • Acum triggerele TEMP pot modifica și/sau interoga date din tabelele schemei principale.
    • Funcția VACUUM INTO: în cazul utilizării ca adresă de destinație a unui nume de fișier în format URI, care conține parametrul de interogare reserve=N (unde N este un număr între 0 și 255), volumul de rezervare pentru copia creată a bazei de date este setat la N.
  • Funcțiile SQL noi au fost adăugate:
  • Actualizări în utilitarul de consolă.:
    • Îmbunătățiri semnificative ale comenzii .mode.
    • Datorită extinderea QRF a îmbunătățit formatarea rezultatelor. De exemplu, numerele sunt acum aliniate la dreapta în mod implicit în modul afișării în tabel..
    • În mod implicit, QRF este acum utilizat în utilizarea interactivă a utilitarului de consolă pentru a afișa rezultatele interogărilor în blocuri formate cu simboluri Unicode de desenare a blocurilor, ceea ce a crescut lizibilitatea. Formatul de ieșire depășit este utilizat în execuția în lot a comenzilor pentru a asigura compatibilitatea.
    • Punctele și virgulele unice (neîncercuite în ghilimele) de la sfârșitul comenzilor cu punct sunt ignorate fără avertisment. Aceasta poate reprezenta o incompatibilitate!
    • Comenzile .testcase și .check au fost corectate. Acum funcționează efectiv și sunt folosite în scripturile incluse în setul standard de teste SQLite din codurile sursă.
    • Argumentele din linia de comandă care corespund șabloanelor *.sql sau *.txt și reprezintă nume de fișiere nenule sunt citite și interpretate ca scripturi care conțin operații SQL și/sau [comenzi cu punct](https://sqlite.org/cli.html#dotcmd).
    • Acum, ca argument al comenzii .timer, se poate specifica once pentru a activa timer-ul doar la executarea următoarei interogări SQL.
    • Noua opțiune —timeout S a comenzii .progress oprește executarea interogărilor SQL după S secunde.
    • Comanda .indexes a fost modificată astfel încât argumentul PATTERN să se potrivească acum cu numele indexului, nu cu numele tabelului indexat (ceea ce face ca argumentul PATTERN să fie cu adevărat util). De asemenea, au fost adăugate câteva opțiuni noi la comanda .indexes.
  • Îmbunătățiri în API-ul C:
  • Îmbunătățiri ale planificatorului de interogări:
    • Pentru EXCEPT, INTERSECT și UNION se folosește întotdeauna algoritmul de sortare și unire, deoarece este aproape întotdeauna mai rapid decât utilizarea tabelelor hash.
    • Îmbunătățiri în mecanismul de selecție a ordinii join în cazul executării de interogări mari cu multe interconexiuni în schema stelată.
    • Optimizarea procesului de transformare a EXISTS în JOIN a fost îmbunătățită astfel încât condițiile JOIN inserate să nu fie neapărat în ciclurile interne, atâta timp cât toate dependențele pentru ciclurile de transformare EXISTS în JOIN se află în ciclurile externe.
    • Optimizarea omit-noop-join a fost îmbunătățită astfel încât să poată omite o serie de interconexiuni care nu afectează rezultatul.
    • Optimizarea interogărilor care folosesc GROUP BY e1 ORDER BY e2, unde e1 și e2 sunt identice, cu excepția ordinii de sortare ASC/DESC, utilizând un singur index.
    • Optimizarea operatorului DISTINCT în tabele virtuale în cazurile în care setul de rezultate al interogării nu corespunde pe deplin condiției ORDER BY.
  • În extinderea sesiunii au fost adăugate noi interfețe care permit aplicației să adauge modificări individual în obiectul sqlite3_changegroup:
  • Îmbunătățiri în conversia numerelor în virgulă mobilă ↔ text.
    • Codul a fost complet rescris pentru a îmbunătăți performanța.
    • Acum, în mod implicit, rotunjirea se face la 17 cifre semnificative, în loc de 15, ca în versiunile anterioare. Dacă este necesar, această valoare poate fi modificată folosind funcția sqlite3_db_config cu opțiunea SQLITE_DBCONFIG_FP_DIGITS (vezi punctul 6g de mai sus).
  • A fost adăugată posibilitatea auto-repararea indexului pentru a rezolva problema indexurilor de expresie depășite..
  • În utilitarul de consolă sqlite3_rsync a fost adăugată opțiunea -p|—port.
  • Suportul a fost oprit Windows RT.
  • JavaScript/WASM
    • A fost adăugată VFS opfs-wl, funcțional identică cu opfs, dar care folosește pentru blocări Web Locks, permițând o distribuție mai echitabilă a blocajelor decât în protocolul opfs. opfs-wl necesită funcția Atomics.waitAsync(), așa că pentru a funcționa, sunt necesare versiuni mai noi ale browserelor decât pentru opfs.

Sursa: linux.org.ru

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster