Më 9 Prill u publikua versioni 3.53.0 i sistemit të menaxhimit të të dhënave të integruar dhe shumëplatformat SQLite. Kodi i projektit është shkruar në gjuhën C dhe shpërndahet si pronë publike.
Ndryshimet:
- Korrektimi i një gabimi gabimi i korruptimit të databazës me WAL-reset. Shih lajmin e mëparshëm SQLite 3.51.3 me një korrigjim për mundësinë e korruptimit të databazës në modalitetin WAL.
- Shtuar bibloteka për formatimin e rezultateve të SQL pyetjeve Query Result Formatter (QRF) për të siguruar lexueshmërinë në ekran me një font me gjerësi fikse.
- Metoda e re format për interfisin TCL për qasje në QRF nga TCL.
- QRF tani përdoret në utilitarin e konsolës sqlite për formatimin e rezultateve të pyetjeve, duke përmirësuar shfaqjen e tyre.
- Funksionalitete të reja në gjuhën SQL:
- Përmirësuar funksionaliteti i komandës ALTER TABLE për të mundësuar shtimin dhe eliminimin e kufizimeve NOT NULL dhe CHECK.
- Operatori REINDEX EXPRESSIONS ekzekuton rindezjen e indekseve të shprehjeve. E dobishme për rikthimin indekseve të shprehjeve të skaduara.
- Tani trigjerët TEMP mund të modifikojnë dhe/ose të kërkojnë të dhëna nga tabelat e skemës kryesore.
- PĂ«rmirĂ«suar komanda VACUUM INTO: nĂ« rastin e pĂ«rdorimit si adresĂ« destinacioni tĂ« emrit tĂ« skedarit nĂ« formatin URI, qĂ« pĂ«rmban parametrin e kĂ«rkesĂ«s reserve=N (ku N â njĂ« numĂ«r nga 0 nĂ« 255), volumi i rezervimit pĂ«r kopjen e krijuar tĂ« bazĂ«s sĂ« tĂ« dhĂ«nave vendoset tĂ« jetĂ« i barabartĂ« me N.
- Funksione të reja SQL janë shtuar:
- Përditësime në utilitarin e konsolës:
- Përmirësime të rëndësishme të ekipit .mode.
- Falë zgjerimit QRF formatimi i rezultateve është përmirësuar. Për shembull, numrat tani rreshtohen në të djathtë si parazgjedhje në modin tabelar.
- Sot QRF përdoret si parazgjedhje gjatë përdorimit interaktiv të utilitarit të konsolës për të shfaqur rezultatet e kërkesave në blloqe të formuara me simbole Unicode të çizmeve, duke rritur lexueshmërinë. Formati i vjetër i daljes përdoret gjatë ekzekutimit në grup të komandave për të siguruar përputhshmërinë.
- Tashtë (jo të mbyllura në thonjëza) pikëpresje në fund i komandave me pikë injorohen pa paralajmërim. Kjo është një mundësi e mundshme!
- Komandat .testcase dhe .check janë rregulluar. Tani ato funksionojnë realmente dhe përdoren në skenaret që përfshihen në setin standard të testeve SQLite, të pranishme në kodin burimor.
- Argumentet e komandĂ«s nĂ« linjĂ«n e komandĂ«s qĂ« pĂ«rkojnĂ« me modelin *.sql ose *.txt dhe qĂ« pĂ«rfaqĂ«sojnĂ« emra skedarĂ«sh tĂ« pavendosur, lexohen dhe interpretohen si skenare qĂ« pĂ«rmbajnĂ« ĐŸĐżĐ”ŃаŃĐŸŃĂ« SQL dhe/ose [komanda me pikĂ«]((https://sqlite.org/cli.html#dotcmd).
- Tani, si argument i komandës .timer, mund të tregoni once për të aktivizuar timer-in vetëm për ekzekutimin e SQL-ës së ardhshme.
- Parametri i ri âtimeout S i komandĂ«s .progress çon nĂ« ndalimin e ekzekutimit tĂ« SQL-Ă«ve pas S sekondash.
- Komanda .indexes është ndryshuar në mënyrë që argumenti PATTERN tani përputhet me emrin e indeksit, e jo me emrin e tabelës së indeksuar (prandaj argumenti PATTERN është bërë realisht 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Ă« funksionin sqlite3_prepare_v3() Ă«shtĂ« shtuar opsioni SQLITE_PREPARE_FROM_DDL, i cili lejon implementimet e tabelave virtuale tĂ« pĂ«rgatitin nĂ« siguri ĐŸĐżĐ”ŃаŃĐŸŃĂ« SQL qĂ« janĂ« marrĂ« nga skema e bazĂ«s sĂ« tĂ« dhĂ«nave.
- E shtuar një konstante 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ë e koduar në UTF-8 dhe përfundon me zero.
- Në funksionin sqlite3_limit() është shtuar opsioni SQLITE_LIMIT_PARSER_DEPTH.
- Në funksionin sqlite3_db_config() është shtuar opsioni SQLITE_DBCONFIG_FP_DIGITS. Shih gjithashtu atje pikën 9b më poshtë.
- Përmirësime në planifikuesin e pyetjeve:
- Për EXCEPT, INTERSECT dhe UNION, gjithmonë përdoret algoritmi i renditjes dhe bashkimit, pasi ai pothuajse gjithmonë funksionon më shpejt sesa përdorimi i tabelave të heshit.
- Përmirësime në mekanizmin e zgjedhjes së renditjes së bashkimeve gjatë ekzekutimit të bashkimeve të mëdha shumëanëshe në një skemë yje.
- Optimizimi i përmirësuar i transformimit të EXISTS në JOIN, në mënyrë që kushtet e vendosura në JOIN të mos jenë domosdoshmërisht në ciklet e brendshme, në kushtin 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ë mënyrë që të mund të anashkalohet një zinxhir bashkimi që nuk ndikon në rezultat.
- Optimizimi i kërkesave që përdorin GROUP BY e1 ORDER BY e2, ku e1 dhe e2 janë identike, përveç renditjes ASC/DESC, duke përdorur një indeks.
- Optimizimi i operatorit DISTINCT në tabelat virtuale në rastet kur grumbulli i rezultateve të kërkimeve nuk përputhet plotësisht me kushtin ORDER BY.
- Në zgjerimi i sesionit shtuar interfaca të reja që lejojnë aplikacionin të shtojë ndryshime një e nga një në objektin sqlite3_changegroup:
- PĂ«rmirĂ«sime nĂ« konvertimin e numrave me presje lundruese â tekst.
- Kodi është shkruar plotësisht nga e para për të përmirësuar performancën.
- Tani, si standard, rrethimi kryhet deri në 17 numra të rëndësishëm në vend të 15, siç ishte në të gjitha versionet e mëparshme. Nëse është e nevojshme, ky vlerë mund të ndryshohet me funksionin sqlite3_db_config me opsionin SQLITE_DBCONFIG_FP_DIGITS (shih aty pikën 6g më lart).
- Shtuar mundësinë e rikthimit automatik të indeksit për të zgjidhur problemin indekseve të shprehjeve të skaduara.
- NĂ« utilitarin e konsolĂ«s sqlite3_rsync Ă«shtĂ« shtuar opsioni -p|âport.
- Ndalohet mbështetja për Windows RT.
- JavaScript/WASM
- E shto VFS opfs-wl është shtuar, me funksionalitet të njëjtë si opfs, por duke përdorur Web Locks për bllokime, që lejon një shpërndarje më të drejtë të bllokimeve se sa në protokollin opfs. opfs-wl kërkon prani të funksionit Atomics.waitAsync(), kështu që kërkon versione më të reja të shfletuesve se sa për opfs.
Burimi: linux.org.ru
