UtgÄvan av SQLite 3.40 har publicerats, en lÀttviktsdatabas som Àr formaterad som ett bibliotek. Koden för SQLite distribueras som offentlig egendom (public domain), vilket innebÀr att den kan anvÀndas utan begrÀnsningar och kostnadsfritt för alla ÀndamÄl. Den finansiella stödet för SQLite-utvecklarna ges av ett sÀrskilt bildat konsortium som inkluderar företag som Adobe, Oracle, Mozilla, Bentley och Bloomberg.
Huvudsakliga förÀndringar:
- En experimentell funktion för att kompilera SQLite till WebAssembly-kod har implementerats, vilket möjliggör körning i webblÀsare och Àr lÀmplig för att arbeta med databaser frÄn web-applikationer i JavaScript. Webbprogrammerare fÄr ett hög nivÄ, objektorienterat grÀnssnitt för att arbeta med data i stil med sql.js eller Node.js, en wrapper över ett lÄgnivÄ C API och ett API baserat pÄ Web Worker-mekanismen, som gör det möjligt att skapa asynkrona hanterare som körs i separata trÄdar. Data som web-applikationer sparar i WASM-versionen av SQLite kan lagras pÄ klientsidan med hjÀlp av OPFS (Origin-Private FileSystem) eller API window.localStorage.
- Ett recovery-tillÀgg har lagts till, avsett för att ÄterstÀlla data frÄn skadade databasfiler. I kommandoradsgrÀnssnittet anvÀnds kommandot " .recover " för ÄterstÀllning.
- Arbetet med frÄgeplaneraren har förbÀttrats. BegrÀnsningar vid anvÀndning av index med tabeller som har fler Àn 63 kolumner har tagits bort (tidigare tillÀmpades inte indexering vid operationer med kolumner vars ordningstal översteg 63). Indexeringen av vÀrden som anvÀnds i uttryck har förbÀttrats. Laddning av stora rader och blobbar frÄn disk vid bearbetning av operatorer som NOT NULL och IS NULL har upphört. Materialisering av vyer för vilka en fullstÀndig skanning endast görs en gÄng har uteslutits.
- I kodbasen har en separat typ för att representera filnamn, sqlite3_filename, anvÀnts istÀllet för typen "char *".
- En intern funktion, sqlite3_value_encoding(), har lagts till.
- LÀget SQLITE_DBCONFIG_DEFENSIVE har lagts till, vilket förbjuder Àndring av versionen av databasens lagringsschema.
- I genomförandet av parametern "PRAGMA integrity_check" har ytterligare kontroller lagts till. Till exempel fÄr tabeller utan tecknet STRICT inte innehÄlla numeriska vÀrden i kolumner av typen TEXT och strÀngvÀrden med siffror i kolumner av typen NUMERIC. En kontroll av korrekt ordning pÄ rader i tabeller med tecknet "WITHOUT ROWID" har ocksÄ lagts till.
- I uttrycket "VACUUM INTO" har instÀllningarna "PRAGMA synchronous" beaktats.
- En byggalternativ SQLITE_MAX_ALLOCATION_SIZE har lagts till, som gör det möjligt att begrÀnsa storleken pÄ block vid minnesallokering.
- Den inbyggda algoritmen för att generera pseudotillfÀlliga nummer i SQLite har bytt frÄn att anvÀnda strömmande chiffret RC4 till Chacha20.
- AnvÀndning av index med samma namn i olika datamodeller har tillÄtits.
- PrestandaförbÀttringar har genomförts, vilket minska CPU-belastningen med cirka 1% vid typisk aktivitet.
KĂ€lla: opennet.ru
