De release van SQLite 3.51 is gepubliceerd, een lichte database-engine, gepresenteerd als een te gebruiken bibliotheek. De code van SQLite wordt verspreid als publieke domein, wat betekent dat het onbeperkt en gratis voor alle doeleinden gebruikt kan worden. De financiƫle ondersteuning voor de ontwikkelaars van SQLite wordt uitgevoerd door een speciaal opgerichte consortia.
Belangrijkste wijzigingen:
- Nieuwe JSON-functies jsonb_each() en jsonb_tree() zijn toegevoegd, die verschillen van de eerder beschikbare functies json_each() en json_tree() doordat ze een JSONB-waarde retourneren voor gegevens met het type array of object.
- De code van de extensies carray en percentile is verplaatst naar het hoofdbestand 'sqlite3.c' met de ingebouwde SQLite-code. De gegevens van deze extensies zijn standaard uitgeschakeld en vereisen opbouwparameters '-DSQLITE_ENABLE_CARRAY' en '-DSQLITE_ENABLE_PERCENTILE'.
- De interface voor het gebruik van SQLite in Tcl-scripts is verbeterd. Aan het commando 'eval' is de vlag '-asdict' toegevoegd om rijen met het type 'dict' in plaats van 'array' te retourneren. De mogelijkheid om gebruikersfuncties te onderbreken voor het retourneren van een NULL-waarde is toegevoegd.
- Wijzigingen in de commandoregelinterface:
- De nauwkeurigheid van het commando '.timer' is verhoogd tot microseconden;
- In de opmaakmodi 'box' en 'column' is ondersteuning voor dubbelbreedte symbolen geĆÆmplementeerd;
- Het commando '.imposter' kan nu een alleen-lezen imposter-tabel aanbieden (die toegang geeft tot gegevens in de index als een tabel), werkt met de VACUUM-operatie en vereist geen flag 'āunsafe-testing' bij het starten;
- Aan de sqlite-tool en het commando '.open' is de optie 'āifexists' toegevoegd.
- De maximale breedte van de rij, ingesteld met het commando '.width', is beperkt tot 30000 tekens.
- Prestatieoptimalisaties zijn doorgevoerd:
- De CPU-last bij het vastleggen van transacties, beperkt tot alleen-lezen toegang, is verminderd;
- De detectie van join-operaties die geen rijen retourneren omdat een of meer tabellen geen rijen bevatten, is verbeterd;
- Het uitvoeren van scalare subquery's die geen invloed hebben op het resultaat is geƫlimineerd;
- De uitvoering van windowfuncties in queries met de uitdrukking 'BETWEEN š” FOLLOWING AND :y FOLLOWING' met een zeer grote waarde voor ':y' is versneld.
- De pragma 'PRAGMA wal_checkpoint=NOOP' en de API-functie sqlite3_wal_checkpoint() zijn toegevoegd voor het vastleggen van wijzigingen in de WAL-log.
- De API is uitgebreid met de functies sqlite3_set_errmsg() en sqlite3_db_status64().
- In de JavaScript/WASM-versie van SQLite is ondersteuning voor het bouwen van de WebAssembly-representatie met 64-bits pointers geĆÆmplementeerd.
- De duurzaamheid van databases in applicaties die POSIX-locks via de close()-aanroep beƫindigen is verbeterd.
- De ondersteuning van het VxWorks-platform is verbeterd.
Bron: opennet.ru
