Den 9 april slÀpptes version 3.53.0 av den kompakta plattformsoberoende inbÀddade DBMS. SQLite. Projektkoden Àr skriven i C och distribueras som offentlig egendom (public domain).
Ăndringar:
- Ett fel har ÄtgÀrdats. WAL-reset databas korruptionsfel.. Se föregÄende meddelande. SQLite 3.51.3 med fix för möjligt databasöverskridande i WAL-lÀget..
- En bibliotek för formatering av SQL-frÄgeresultat har lagts till. Query Result Formatter (QRF) för att sÀkerstÀlla lÀsbarhet pÄ skÀrmen med ett fast breddteckensnitt.
- Metod tillagd format till TCL-grÀnssnittet för att fÄ Ätkomst till QRF frÄn TCL.
- QRF anvÀnds nu i kommandoradsverktyget sqlite för att formatera frÄgeresultat, vilket förbÀttrar deras visning.
- Nya funktioner i SQL-sprÄket:
- FörbÀttrade möjligheter i kommandot ALTER TABLE för att möjliggöra tillÀgg och borttagning av NOT NULL- och CHECK-restriktioner.
- Operator REINDEX EXPRESSIONS utför en omindexering av uttrycksindex. Nyttigt för att ÄterstÀlla utgÄngna uttrycksindex..
- Nu TEMP-triggerar kan Àndra och/eller begÀra data frÄn tabeller i huvudschemat.
- FörbÀttrade kommandot VACUUM INTO: om det anvÀnds som destinationsadress för ett filnamn i URI-format som innehÄller query-parametern reserve=N (dÀr N Àr ett tal frÄn 0 till 255), sÀtts volymen för reservutrymmet för den skapade kopian av databasen till N.
- Nya SQL-funktioner har lagts till:
- Uppdateringar i kommandoradsverktyget.:
- Betydande förbÀttringar av kommandot .mode.
- Tack vare QRF-tillÀgget förbÀttrad resultatformatering. Till exempel justeras nu siffror till höger som standard i lÀget tabellutmatning..
- Som standard anvÀnds QRF nu vid interaktiv anvÀndning av kommandoradsverktyget för att visa frÄgeresultat i block som Àr formaterade med hjÀlp av Unicode-teckensnitt, vilket har förbÀttrat lÀsbarheten. Det förÄldrade utmatningsformatet anvÀnds vid batchkörning av kommandon för att sÀkerstÀlla kompatibilitet.
- Enstaka (inte inneslutna i citationstecken) semikolon i slutet av kommandon med punkt ignoreras utan varning. Det hÀr kan vara en tÀnkbar inkompatibilitet!
- Kommandona .testcase och .check har ÄtgÀrdats. Nu fungerar de verkligen och anvÀnds i skript som ingÄr i den standardiserade testuppsÀttningen för SQLite, som ingÄr i kÀllorna.
- Kommandoradsargument som matchar mönstren *.sql eller *.txt och representerar namn pÄ icke-tomma filer lÀses in och tolkas som skript som innehÄller SQL-operationer och/eller [kommandon med punkt]((https://sqlite.org/cli.html#dotcmd).
- Nu kan argumentet once anvÀndas med kommandot .timer för att endast aktivera timern vid utförandet av nÀsta SQL-frÄga.
- Den nya parametern âtimeout S med kommandot .progress stoppar utförandet av SQL-frĂ„gor efter S sekunder.
- Kommandot .indexes har Àndrats sÄ att argumentet PATTERN nu matchar namnet pÄ indexet istÀllet för namnet pÄ den indexerade tabellen (vilket gör att argumentet PATTERN nu Àr verkligt anvÀndbart). Dessutom har flera nya alternativ lagts till i kommandot .indexes.
- FörbÀttringar i C API:
- sqlite3_str_truncate()
- sqlite3_str_free()
- sqlite3_carray_bind_v2()
- I funktionen sqlite3_prepare_v3() lÀggs till en alternativ SQLITE_PREPARE_FROM_DDL, vilket gör det möjligt för implementationer av virtuella tabeller att sÀkert förbereda SQL-operatorer frÄn databasens schema.
- En konstant har lagts till SQLITE_UTF8_ZT, som kan anvÀndas som en kodningsparameter i funktionerna sqlite3_result_text64() eller sqlite3_bind_text64() för att ange att vÀrdet Àr kodad i UTF-8 och avslutas med noll.
- I funktionen sqlite3_limit() lÀggs till en alternativ SQLITE_LIMIT_PARSER_DEPTH.
- I funktionen sqlite3_db_config() lÀggs till en alternativ SQLITE_DBCONFIG_FP_DIGITS. Se ocksÄ punkt 9b nedan.
- FörbÀttringar i frÄgeplaneraren:
- För EXCEPT, INTERSECT och UNION anvÀnds alltid sorterings- och sammanslagningsalgoritmen, eftersom den nÀstan alltid Àr snabbare Àn anvÀndning av hash-tabeller.
- FörbÀttringar i mekanismen för val av join-ordning vid utförande av stora mÄngsidiga sammanfogningar i en stjÀrnformad struktur.
- FörbÀttrad optimering av omvandlingen EXISTS till JOIN sÄ att de inlÀggna JOIN-villkoren inte nödvÀndigtvis behöver befinna sig i de inre cyklerna, förutsatt att alla beroenden för cyklarna för omvandlingen EXISTS till JOIN befinner sig i de yttre cyklerna.
- Optimering av omit-noop-join sÄ att den kan hoppa över en kedja av samband som inte pÄverkar resultatet.
- Optimering av frÄgor som anvÀnder GROUP BY e1 ORDER BY e2, dÀr e1 och e2 Àr identiska, med undantag för sorteringsordningen ASC/DESC, med hjÀlp av ett enda index.
- Optimering av DISTINCT-operatören i virtuella tabeller nÀr resultatuppsÀttningen av frÄgan inte helt överensstÀmmer med ORDER BY-villkoret.
- I sessionsutvidgning nya grÀnssnitt har lagts till för att göra det möjligt för programmet att lÀgga till Àndringar en i taget i objektet sqlite3_changegroup:
- FörbĂ€ttringar i konvertering av flyttal â text.
- Koden Àr helt omskriven för att förbÀttra prestandan.
- Nu Àr avrundning som standard gjord till 17 signifikanta siffror istÀllet för 15, som i alla tidigare versioner. Detta vÀrde kan Àndras vid behov med funktionen sqlite3_db_config med alternativet SQLITE_DBCONFIG_FP_DIGITS (se punkt 6g ovan).
- Möjligheten har lagts till sjÀlvÄterstÀllning av index för att lösa problemet utgÄngna uttrycksindex..
- I kommandoradsverktyget sqlite3_rsync har alternativet -p|âport lagts till.
- Stödet för Windows RT.
- JavaScript/WASM
- VFS opfs-wl har lagts till, funktionellt identisk med opfs, men anvÀnder Web Locks för lÄsning, vilket möjliggör en mer rÀttvis fördelning av lÄs Àn i opfs-protokollet. opfs-wl krÀver funktionen Atomics.waitAsync(), sÄ nyare versioner av webblÀsare Àn de som krÀvs för opfs behövs för att det ska fungera.
KĂ€lla: linux.org.ru
