Április 9-én jelent meg a kompakt, platformfüggetlen beágyazott adatbázis-kezelő rendszer 3.53.0-s verziója. SQLiteA projekt kódja C nyelven íródott és nyilvánosan terjeszthető.
Változtatások:
- Javítva a hiba WAL-reset adatbázis sérülési hibaLásd a korábbi híreket Az SQLite 3.51.3 kijavítja a WAL módban előforduló adatbázis-hibákat.
- Hozzáadott egy könyvtárat az SQL lekérdezések eredményeinek formázásához Lekérdezés eredményformázó (QRF) hogy fix szélességű betűtípussal rendelkező képernyőn könnyen olvasható legyen.
- Hozzáadott módszer formátum к TCL interfész a QRF eléréséhez a TCL-től.
- A QRF mostantól használható a konzol segédprogramban. sqlite a lekérdezési eredmények formázásához, a megjelenítésük javításához.
- Az SQL nyelv új funkciói:
- Továbbfejlesztett parancsnoki képességek ALTER TABLE hogy lehetővé tegye a NOT NULL és CHECK korlátozások hozzáadását és eltávolítását.
- operátor KIFEJEZÉSEK ÚJRAINDEXELÉSE kifejezésindexek újraindexelését végzi. Hasznos a helyreállításhoz örökölt kifejezésindexek.
- Most TEMP-eseményindítók módosíthatja és/vagy lekérdezheti az adatokat a fő sématáblákból.
- Továbbfejlesztett parancs PORSZÍV BE: Ha a cél egy URI formátumú fájlnév, amely tartalmazza a reserve=N lekérdezési paramétert (ahol N egy 0 és 255 közötti szám), akkor a létrehozott adatbázispéldány foglalási mérete N értékre van állítva.
- Új SQL függvények hozzáadva:
- Frissítések be konzol segédprogram:
- Jelentős csapatfejlesztések .mód.
- köszönöm QRF bővítés Az eredmények formázása is javult. Például a számok mostantól alapértelmezés szerint jobbra vannak igazítva a táblázatos kimenet.
- Alapértelmezés szerint a QRF formátumot használja a rendszer a konzol segédprogram interaktív használatakor a lekérdezési eredmények Unicode blokkrajzoló karakterekkel létrehozott blokkokban történő megjelenítéséhez, ami javítja az olvashatóságot. Kompatibilitási okokból a parancsok kötegelt végrehajtásakor a korábbi kimeneti formátumot használja a rendszer.
- Egyszeres (idézőjelek nélküli) pontosvessző a végén pontparancsok figyelmeztetés nélkül figyelmen kívül hagyják. Ez egy lehetséges összeférhetetlenség!
- A .testcase és .check parancsok javításra kerültek. Most már működnek, és a forráskódban található standard SQLite tesztcsomagban található szkriptekben is használatban vannak.
- A *.sql vagy *.txt mintáknak megfelelő, nem üres fájlok neveit tartalmazó parancssori argumentumokat a rendszer SQL utasításokat és/vagy [pontparancsokat](( tartalmazó szkriptekként olvassa és értelmezi.https://sqlite.org/cli.html#dotcmd).
- Mostantól egyszer megadható argumentumként a .timer parancsnak, hogy az időzítő csak a következő SQL lekérdezés végrehajtásakor induljon el.
- A .progress parancs új --timeout S opciója miatt az SQL lekérdezések végrehajtása S másodperc után leáll.
- Az .indexes parancsot úgy módosították, hogy a PATTERN argumentum mostantól az index nevére egyezik, nem pedig az indexelt tábla nevére (így a PATTERN argumentum valóban hasznossá vált). Ezenkívül számos új opció került hozzáadásra az .indexes parancshoz.
- Fejlesztések a C API-ban:
- sqlite3_str_truncate()
- sqlite3_str_free()
- sqlite3_carray_bind_v2()
- Funkcióban sqlite3_prepare_v3() opció hozzáadva SQLITE_PREPARE_FROM_DDL, amely lehetővé teszi a virtuális tábla implementációk számára, hogy biztonságosan előkészítsék az adatbázis sémából származó SQL utasításokat.
- Konstans hozzáadva SQLITE_UTF8_ZT, amely kódolási paraméterként használható függvényekben sqlite3_eredmény_szöveg64() vagy sqlite3_bind_text64() annak jelzésére, hogy az érték UTF-8 kódolású és null terminációjú.
- Funkcióban sqlite3_limit() opció hozzáadva SQLITE_LIMIT_PARSER_DEPTH.
- Funkcióban sqlite3_db_config() opció hozzáadva SQLITE_DBCONFIG_FP_DIGITSLásd még a lenti 9b. pontot.
- Lekérdezéstervező fejlesztései:
- Az EXCEPT, INTERSECT és UNION esetén mindig a rendezési és egyesítési algoritmust használjuk, mivel ez szinte mindig gyorsabb, mint a hash táblák használata.
- Fejlesztések a csatlakozási sorrend kiválasztási mechanizmusában nagyméretű, többirányú csatlakozások csillag alakú elrendezésben történő végrehajtásakor.
- Továbbfejlesztettük az EXISTS-ből JOIN-ba konverzió optimalizálását, így a beszúrt JOIN feltételeknek nem kell belső ciklusokban lenniük, feltéve, hogy az EXISTS-ből JOIN konverziós ciklusok összes függősége külső ciklusokban van.
- Továbbfejlesztett omit-noop-join optimalizálás, így kihagyható az eredményt nem befolyásoló join lánc.
- Lekérdezések optimalizálása a GROUP BY e1 és ORDER BY e2 használatával, ahol e1 és e2 azonosak, kivéve az ASC/DESC rendezési sorrendet, egyetlen index használatával.
- Optimalizálja a DISTINCT operátort virtuális táblákban, ha a lekérdezés eredményhalmaza nem felel meg teljesen az ORDER BY feltételnek.
- В munkamenet-kiterjesztés Új interfészek kerültek hozzáadásra, amelyek lehetővé teszik az alkalmazások számára, hogy egyenként adják hozzá a módosításokat az sqlite3_changegroup objektumhoz:
- Fejlesztések a lebegőpontos ↔ szöveg konverzióban.
- A kódot teljesen átírták a teljesítmény javítása érdekében.
- A kerekítés mostantól az alapértelmezett 17-ig gyártották értékes számjegyek 15 helyett, mint az összes korábbi verzióban. Szükség esetén ez az érték a függvénnyel módosítható. sqlite3_db_config opcióval SQLITE_DBCONFIG_FP_DIGITS (lásd a fenti 6g. pontot).
- Hozzáadott funkció öngyógyító index a probléma megoldására örökölt kifejezésindexek.
- A konzol segédprogramban sqlite3_rsync Hozzáadott -p|—port kapcsoló.
- A támogatás megszűnt RT Windows-.
- JavaScript/WASM
- Hozzáadtuk az opfs-wl VFS-t. Funkcionálisan megegyezik az opfs-szel, de Web Locks-ot használ a zárolásokhoz, biztosítva a zárolások igazságosabb elosztását, mint az opfs protokoll. Az opfs-wl megköveteli az Atomics.waitAsync() függvényt, így újabb böngészőverziókat igényel, mint az opfs.
Forrás: linux.org.ru
