Utgivelsen av SQLite 3.51 er publisert, en lettvekts DB som er tilgjengelig som en tilkoblingsbibliotek. Koden til SQLite distribueres som offentlig eiendom (public domain), dvs. den kan brukes uten begrensninger og gratis til enhver hensikt. Den finansielle støtten til SQLite-utviklerne gis av et spesielt opprettet konsortium.
Hovedendringer:
- Nye JSON-funksjoner jsonb_each() og jsonb_tree() er lagt til, som skiller seg fra de tidligere tilgjengelige funksjonene json_each() og json_tree() ved at de returnerer JSONB-verdi for data med type array eller objekt.
- Koden for utvidelsene carray og percentile er flyttet til den grunnleggende filen «sqlite3.c» med innebygd SQLite-kode. Som standard er disse tilleggene deaktivert og krever spesifisering av «-DSQLITE_ENABLE_CARRAY» og «-DSQLITE_ENABLE_PERCENTILE» ved kompilering.
- Grensesnittet for bruk av SQLite i Tcl-skript er forbedret. Flagget «-asdict» er lagt til i kommandoen «eval» for å returnere strenger som bruker typen «dict» i stedet for «array». Muligheten for å avbryte brukerdefinerte funksjoner for å returnere NULL-verdi er lagt til.
- Endringer i kommandolinjegrensesnittet:
- Nøyaktigheten til kommandoen «.timer» er økt til mikrosekunder;
- I formateringsmodusene «box» og «column» er støtte for tegn med dobbel bredde implementert;
- Kommandoen «.imposter» kan nå gi tilgang til imposter-tabeller i skrivebeskyttet modus (som gir tilgang til data i indeksen som en tabell), som fungerer med VACUUM-operasjonen og ikke krever at den kjøres med flagget «—unsafe-testing»;
- Det er lagt til en alternativ «—ifexists» til sqlite-verktøyet og kommandoen «.open».
- Den maksimale bredden på en linje som angitt av kommandoen «.width» er begrenset til 30000 tegn.
- Ytelsesoptimaliseringer er gjennomført:
- Redusert CPU-belastning ved fiksering av transaksjoner begrenset til lesetilgang;
- Forbedret gjenkjenning av sammenføyningsoperasjoner (JOIN) som ikke returnerer rader fordi en eller flere tabeller ikke inneholder rader;
- Utføringen av skalar underforespørsel som ikke påvirker resultatet er utelatt;
- Kjøring av vindusfunksjoner i spørringer med uttrykket «BETWEEN 😡 FOLLOWING AND :y FOLLOWING» og med svært høyt «:y»-verdi er akselerert.
- En pragma «PRAGMA wal_checkpoint=NOOP» og API-funksjonen sqlite3_wal_checkpoint() er lagt til for å fikse endringer i WAL-loggen.
- Det er lagt til API-funksjoner sqlite3_set_errmsg() og sqlite3_db_status64().
- I JavaScript/WASM-versjonen av SQLite er støtte for bygging til WebAssembly-visning med 64-bits pekere implementert.
- Økt motstand mot databasedefekter i applikasjoner som bruker POSIX-lås ved å kalle close().
- Forbedret støtte for plattformen VxWorks.
Kilde: opennet.ru
