SQLite 3.51 er udgivet, en letvægtsdatabase, der præsenteres som et plugin-bibliotek. Koden til SQLite distribueres som offentlig ejendom (public domain), hvilket betyder, at den kan bruges uden begrænsninger og gratis til enhver formål. Den finansielle støtte til SQLite-udviklerne leveres af et specifikt oprettet konsortium.
Vigtige ændringer:
- Der er tilføjet nye JSON-funktioner jsonb_each() og jsonb_tree(), som adskiller sig fra de tidligere tilgængelige funktioner json_each() og json_tree() ved at returnere JSONB-værdier for data af typen array eller objekt.
- Koden til udvidelserne carray og percentile er blevet overført til basisfilen «sqlite3.c» med indbygget SQLite-kode. Som standard er disse funktioner deaktiverede og kræver angivelse af parameterne «-DSQLITE_ENABLE_CARRAY» og «-DSQLITE_ENABLE_PERCENTILE» under bygningen.
- Grænsefladen til brug af SQLite i Tcl-scripts er forbedret. Flaget «-asdict» er blevet tilføjet til kommandoen «eval» for at returnere strenge ved hjælp af typen «dict» i stedet for «array». Muligheden for at afbryde brugerdefinerede funktioner for at returnere værdien NULL er også blevet tilføjet.
- Ændringer i kommandolinjegrænsefladen:
- Præcisionen af kommandoen «.timer» er øget til mikrosekunder;
- I formateringsindstillingerne «box» og «column» er der blevet tilføjet understøttelse af tegn med dobbelt bredde;
- Kommandoen «.imposter» kan nu levere imposter-tabeller i skrivebeskyttet tilstand (giver adgang til data i indekset som om det var en tabel), der fungerer med VACUUM-operationen og ikke kræver, at flaget «—unsafe-testing» aktiveres;
- Til sqlite-værktøjet og kommandoen «.open» er der tilføjet muligheden «—ifexists».
- Den maksimale bredde af en række, der angives ved hjælp af kommandoen «.width», er begrænset til 30000 tegn.
- Der er blevet gennemført ydeevneoptimeringer:
- CPU-belastningen er reduceret ved at låse transaktioner, der er begrænset til læseadgang;
- Forbedret opdagelse af sammenføjningsoperationer (JOIN), der ikke returnerer rækker, fordi en eller flere tabeller ikke indeholder rækker;
- Udførelse af skalarunder-spørgsmål, der ikke påvirker resultatet, er udelukket;
- Ydeevnen for vinduesfunktioner i forespørgsler med udtrykket «BETWEEN 😡 FOLLOWING AND :y FOLLOWING» og et meget stort værdi for «:y» er accelereret.
- Pragmaen «PRAGMA wal_checkpoint=NOOP» og API-funktionen sqlite3_wal_checkpoint() er tilføjet til at logge ændringer i WAL-loggen.
- I API'et er der tilføjet funktioner sqlite3_set_errmsg() og sqlite3_db_status64().
- I JavaScript/WASM-versionen af SQLite er der tilføjet støtte til bygning i WebAssembly-præsentationen med 64-bit pekere.
- Øget modstandsdygtighed over for databasedefekter i applikationer, der fjerner POSIX-låse via close()-kald.
- Forbedret support til VxWorks-platformen.
Kilde: opennet.ru
