SQLite 3.54.0 iznāca 9. oktobrī un pārtrauca atbalstu Windows XP un vecākām sistēmām, tostarp Windows CE. Windows būvējumiem tagad vajadzīga vismaz Windows Vista. Tajā pašā laidienā dzinis paātrinājās: projekta speedtest1 mērījumā tas patērē aptuveni 4 % mazāk procesora ciklu nekā versija 3.53 un par 7,5 % mazāk nekā pirms gada izlaistā 3.51, ko apstiprina arī neatkarīgi Linux testi.
Skaitļus SQLite ieguva ar rīku valgrind uz Linux x64, skaitot procesora ciklus testā speedtest1. Projekts pats brīdina, ka rezultāts atšķiras atkarībā no slodzes, būvēšanas opcijām, procesora, kompilatora un operētājsistēmas, tāpēc reālā lietojumprogramma nepaātrināsies tieši par šiem procentiem. Pilnu izmaiņu sarakstu SQLite publicē oficiālajā laidiena žurnālā.
SQLite ir iegults teju katrā tālrunī, pārlūkā un darbvirsmas lietotnē, tāpēc viena dzinēja versija skar ļoti plašu programmu loku. Projekts izlaiž jaunu versiju aptuveni reizi ceturksnī un tur solījumu par saderību: datubāzes faila formāts 3.54 nav mainīts, tāpēc esošās datubāzes atveras bez pārveidošanas un strādā arī ar vecākiem dzinējiem. Atjaunināšana parasti nozīmē tikai jaunas bibliotēkas iekopēšanu.
Windows XP paliek pagātnē
Windows XP un visas vecākās Windows versijas, ieskaitot Windows CE, vairs netiek atbalstītas. Zemākā prasība tagad ir Windows Vista. Vienlaikus mainījās, kā SQLite rīkojas ar slēdzenēm uz Windows: tas pārgāja no CriticalSection uz Slim Reader/Writer slēdzenēm, kas slēgšanu padara ātrāku. Linux, macOS, BSD un citi Unix būvējumi šīs izmaiņas neskar, par ko raksta arī Phoronix.
Lietotnēm, ko būvē kā Universal Windows Platform vai WebUI, SQLite tagad piedāvā kompilēšanas opciju -DSQLITE_UWP=1. Datubāzi joprojām var nolasīt visur, kur darbojas vecākas SQLite versijas, jo faila formāts nemainījās. Windows Vista iznāca 2007. gadā, tāpēc praksē prasība skar tikai ļoti vecas iekārtas un iegultās sistēmas, kas palikušas pie XP.
diskused() aizstāj atsevišķo analizatoru
Jaunā SQL funkcija diskused() parāda, cik vietas datubāzē aizņem tabula vai indekss. Tā pieejama kā neobligāts paplašinājums. Komandrindas čaula ieguva komandu .diskused, kas sedz to pašu, ko līdz šim darīja atsevišķā utilīta sqlite3_analyzer. Šī utilīta tagad ir atzīta par novecojušu, tāpēc disku lietojuma analīzi var veikt bez papildu rīka.
Agrāk, lai saprastu, kura tabula vai indekss aizņem visvairāk vietas, nācās lejupielādēt un palaist atsevišķu programmu. Tagad to pašu informāciju var dabūt tieši no čaulas vai ar SQL vaicājumu, kas noder lielu datubāžu apkopē un vietas plānošanā.
Komandrindas čaula maina noklusējumus
Čaulas uzvedne tagad var rādīt stāvokļa informāciju ar atsevišķām aizbēgšanas secībām. Sākotnējo uzvedni var iestatīt ar vides mainīgajiem SQLITE_PS1 un SQLITE_PS2. Noklusējuma uzvedne ņem vērā vides mainīgo NO_COLOR. Kolonnu režīmi tagad rāda kolonnu virsrakstu arī tad, ja vaicājums neatgriež nevienu rindu.
Komanda .mode ieguva vairākas jaunas opcijas: --rowcount on, --titles always (tagad noklusējums; -titles on atjauno veco uzvedību), kā arī --ifmt un --fpfmt, kas pieņem printf stila formāta virknes. Opcija -csv atslēdz attēlošanas ierobežojumus.
Vecais komandu noslēgums ar rindu, kurā ir tikai
govai/, vairs nedarbojas, ja vien SQLite nav būvēts ar karodziņu-DSQLITE_SHELL_LEGACY_COMMAND_TERMINATOR. Skripti, kas balstās uz šo noslēgumu, pēc atjaunināšanas apstāsies.
Plānotājs un SQL papildinājumi
Vaicājumu plānotājā ir vairāki labojumi. UPDATE vairs nepārrēķina izteiksmes indeksu, ja indeksētā vērtība nemainās. Uzlabota expr OR TRUE un expr OR FALSE apstrāde. Konstrukcijā IN pa labi esošajā SELECT tagad tiek ignorēts DISTINCT. UNION vaicājumi ar LIMIT 1 strādā ātrāk un patērē mazāk atmiņas.
Šie labojumi nozīmē mazāk lieka darba bieži izmantotos vaicājumos. Piemēram, UPDATE, kas skar rindu ar izteiksmes indeksu, bet nemaina pašu indeksēto vērtību, vairs netērē laiku indeksa pārrakstīšanai.
Funkcijas printf() un format() ieguva formātus %J un %j, kas atveido JSON virknes literāļus, tāpēc teksta ievietošana JSON laukā kļūst drošāka. Datumu un laika modifikatoros parādījās forma weekday -N un modifikators end of, kas ļauj aprēķināt nedēļas dienu vai perioda beigas tieši SQL. Caur sqlite3_limit() tagad var ierobežot arī shēmu un sprūda soļus ar jaunajām konstantēm SQLITE_LIMIT_SCHEMA un SQLITE_LIMIT_TRIGGER_STEPS. Sistēmās, kas to atbalsta, pagaidu failiem SQLite tagad izmanto O_TMPFILE.
Izstrādātājiem, kas iegulst SQLite savā kodā, pievienotas C saskarnes sqlite3_result_str() un sqlite3_incomplete(). Autorizācijas atzvans tagad nostrādā arī SQL funkcijām, ko lieto CREATE TABLE DEFAULT klauzulās, gan tabulas veidošanas brīdī, gan izmantojot noklusējuma vērtību. Laidiena SQLITE_SOURCE_ID ir 2026-10-09 15:46:58.
Komentāri
Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.