Më 9 prill u publikua versioni 3.53.0 i DBMS kompakt dhe platformë e ndërtueshme. SQLite. Kodi i projektit është shkruar në gjuhën C dhe shpërndahet si pronë publike (public domain).
Ndryshimet:
- Korrigjimi i gabimit Bug-i i korruptimit të bazës së të dhënave nga rikthimi i WAL. Shihni lajmin e mëparshëm SQLite 3.51.3 me korrigjimin për mundësinë e dëmtimit të bazës së të dhënave në modalitetin WAL.
- Shtohet biblioteka për formatimin e rezultateve të SQL-eshteve Formati i Rezultateve të SQL (QRF) për të siguruar lehtësinë e lexueshmërisë në ekran me një font me gjerësi fikse.
- Shtuar metoda format në interface TCL për qasje në QRF nga TCL.
- QRF tani përdoret në utilitarin konsolë sqlite për formatimin e rezultateve të kërkesave, që përmirëson shfaqjen e tyre.
- Mundësitë e reja të gjuhës SQL:
- ĂshtĂ« pĂ«rmirĂ«suar funksionaliteti i komandĂ«s ALTER TABLE pĂ«r tĂ« mundĂ«suar shtimin dhe heqjen e kufizimeve NOT NULL dhe CHECK.
- Operatori REINDEX EXPRESSIONS ekzekuton rikthimin e indekseve të shprehjeve. I dobishëm për rikthimin e indekseve të vjetruara të shprehjeve.
- tregon atë që pritej: triggere TEMP mund të ndryshojnë dhe / ose të kërkojnë të dhëna nga tabelat e skemës kryesore.
- ĂshtĂ« pĂ«rmirĂ«suar komandĂ«s VACUUM INTO: nĂ« rast se pĂ«rdoret si adresĂ« destinacioni emri i skedarit nĂ« formatin URI, qĂ« pĂ«rmban parametrin e kĂ«rkesĂ«s reserve=N (ku N Ă«shtĂ« njĂ« numĂ«r nga 0 deri nĂ« 255), sasia e rezervimit pĂ«r kopjen e krijuar tĂ« bazĂ«s sĂ« tĂ« dhĂ«nave pĂ«rcaktohet si N.
- Funksione të reja SQL janë shtuar:
- Përmirësime në utilitarin konsolë:
- Përmirësime të rëndësishme të komandës .mode.
- Falë zgjerimit të QRF është përmirësuar formatimi i rezultateve. P.sh., numrat tani janë të rregulluar djathtas si parazgjedhje në modin tabelar.
- Si parazgjedhje, QRF tani përdoret gjatë përdorimit interaktiv të utilitarit konsolë për të shfaqur rezultatet e kërkesave në blloqe, të formuara me simbole Unicode të bllokimit, duke përmirësuar lexueshmërinë. Formati i vjetruar i daljes përdoret gjatë ekzekutimit në grupe të komandave për të siguruar përputhshmërinë.
- Pikat e vetme (jo të mbyllura në thonjëza) që ndodhen në fundin të komandave me pikë injorohen pa paralajmërim. Kjo është një mundësi mosndarjeje!
- Komandat .testcase dhe .check janë rregulluar. Tani ato funksionojnë vërtet dhe përdoren në skenaret që janë pjesë e paketës standarde të testeve SQLite, të përfshira në kodet burimore.
- Argumentet e komandës, që përputhen me modelet *.sql ose *.txt dhe përfaqësojnë emra skedarësh jo të zbrazët, lexohen dhe interpretohen si skripte që përmbajnë operacione SQL dhe/ose [komanda me pikë]((https://sqlite.org/cli.html#dotcmd).
- Tani si një argument të komandës .timer, mund të jepni once për të aktivizuar kronometrin vetëm kur ekzekutohet SQL kërkesa e ardhshme.
- Parametri i ri âtimeout S i komandĂ«s .progress shkakton ndĂ«rprerjen e ekzekutimit tĂ« SQL kĂ«rkesave pas S sekondash.
- Komanda .indexes është modifikuar në mënyrë që argumenti PATTERN tani të përputhet me emrin e indeksit dhe jo me emrin e tabelës së indeksuar (çka do të thotë se argumenti PATTERN tani është vërtet i dobishëm). Për më tepër, disa opsione të reja janë shtuar në komandën .indexes.
- Përmirësime në API-në C:
- sqlite3_str_truncate()
- sqlite3_str_free()
- sqlite3_carray_bind_v2()
- Në funksion sqlite3_prepare_v3() shtuar opsioni SQLITE_PREPARE_FROM_DDL, që lejon implementimet e tabelave virtuale të përgatisin në siguri operacione SQL të marra nga skema e bazës së të dhënave.
- Shtuar konstanta SQLITE_UTF8_ZT, e cila mund të përdoret si parametër kodimi në funksionet sqlite3_result_text64() ose sqlite3_bind_text64() për të treguar se vlera është koduar në UTF-8 dhe përfundon me zero.
- NĂ« funksion sqlite3_limit() shtuar opsioni SQLITE_LIMIT_PARSER_DEPTH.
- Në funksion sqlite3_db_config() shtuar opsioni SQLITE_DBCONFIG_FP_DIGITS. Shih gjithashtu aty pika 9b më poshtë.
- Përmirësime në planifikuesin e kërkesave:
- Për EXCEPT, INTERSECT dhe UNION gjithmonë përdoret algoritmi i kategorizimit dhe bashkimit, pasi ai zakonisht funksionon më shpejt se përdorimi i tabelave me hash.
- Përmirësime në mekanizmin e zgjedhjes së rendit të bashkimeve gjatë ekzekutimit të bashkimeve të mëdha shumëpalëshe në një skemë yllore.
- Optimizimi i përmirësuar i transformimit të EXISTS në JOIN në mënyrë që kushtet e bashkimeve të vendosura të mos qëndrojnë domosdoshmërisht në ciklet e brendshme, me kusht që të gjitha varësitë për ciklet e transformimit të EXISTS në JOIN të jenë në ciklet e jashtme.
- Optimizimi i përmirësuar omit-noop-join në atë mënyrë që ajo mund të anashkalojë një zinxhir bashkimesh që nuk ndikon në rezultat.
- Optimizimi i kërkesave që përdorin GROUP BY e1 ORDER BY e2, ku e1 dhe e2 janë identike, me përjashtim të rendit të renditjes ASC/DESC, me ndihmën e një indeksi.
- Optimizimi i operatorit DISTINCT në tabelat virtuale në raste kur grupi i rezultateve të kërkesës nuk përputhet plotësisht me kushtin ORDER BY.
- Në zgjerimi i sesionit Janë shtuar ndërfaqe të reja që lejojnë aplikacionin të shtojë ndryshime një nga një në objektin sqlite3_changegroup:
- PĂ«rmirĂ«sime nĂ« konvertimin e numrave me pikĂ« tĂ« lĂ«vizshme â tekst.
- Kodi është rishkruar plotësisht për të përmirësuar performancën.
- Tani, në mënyrë të paracaktuar, radhitja kryhet deri në 17 shifra me rëndësi në vend të 15, siç ishte në të gjitha versionet e mëparshme. Nëse është e nevojshme, ky vlerësim mund të ndryshohet duke përdorur funksionin sqlite3_db_config me opsionin SQLITE_DBCONFIG_FP_DIGITS (shih atje pikën 6g më lart).
- ĂshtĂ« shtuar mundĂ«sia RindĂ«rtesa e vetvetes pĂ«r tĂ« zgjidhur problemin indekseve tĂ« vjetruara tĂ« shprehjeve.
- NĂ« utilitarin e konsolĂ«s sqlite3_rsync Ă«shtĂ« shtuar opsioni -p|âport.
- është ndalur mbështetja Windows RT.
- JavaScript/WASM
- VFS opfs-wl është shtuar, funksionalisht identike me opfs, por duke përdorur për bllokimet Web Locks, duke siguruar kështu një shpërndarje më të drejtë të bllokimeve se sa në protokollin opfs. opfs-wl kërkon prani të funksionit Atomics.waitAsync(), prandaj për të funksionuar kërkohet versione më të reja të shfletuesve se për opfs.
Burimi: linux.org.ru
