De release van SQLite 3.53 is gepubliceerd, een lichte DBMS, aangeboden als een in te laden bibliotheek. Release 3.52 is geannuleerd. De code van SQLite is vrijgegeven als publiek domein, wat betekent dat deze zonder beperkingen en gratis voor alle doeleinden gebruikt kan worden. De financiële ondersteuning voor de ontwikkelaars van SQLite wordt verzorgd door een speciaal opgerichte consortium.
Belangrijkste wijzigingen:
- Een bug is verholpen die leidde tot beschadiging van de database. Het probleem deed zich voor vanaf versie SQLite 3.7.0 (2010), en raakte databases in de WAL (Write-Ahead Logging) modus, manifestte zich door een raceconditie bij het gelijktijdig openen van twee of meer verbindingen naar de database die probeerden transacties in één database-instantie te schrijven of te bevestigen. Het wordt beweerd dat de omstandigheden die leiden tot de fout zeer zeldzaam zijn en alleen konden worden gereproduceerd in een speciaal gemaakte testsituatie.
- Het is toegestaan om de controles 'NOT NULL' en 'CHECK' te verwijderen in de 'ALTER TABLE' instructie.
- De 'REINDEX EXPRESSIONS' instructie is toegevoegd voor het herbouwen van indexen op basis van expressies waarbij een functie op een kolom of bewerkingen op kolommen worden gebruikt als indexelement. De instructie kan worden gebruikt om verouderde indexen te herstellen.
- Binnen tijdelijke triggers, gemaakt door de instructie 'CREATE TEMP TRIGGER' en toegepast op tabellen in andere databases, zijn wijzigingen in tabellen of gegevensopvragingen uit tabellen toegestaan.
- In de 'VACUUM INTO' instructie is bij het opgeven van een doelbestand via URL de parameter 'reserve=N' geïmplementeerd om het aantal te creëren back-ups van de database te bepalen.
- Nieuwe SQL-functies json_array_insert() en jsonb_array_insert() zijn geïmplementeerd voor het invoegen van elementen in JSON-arrays.
- De QRF (Query Result Formatter) bibliotheek is toegevoegd en werkzaam in de commandoregel utility voor het formatteren van de resultaten van SQL-query's in een leesbaar formaat.
- Wijzigingen in de commandoregel utility:
- De 'mode' instructie is aanzienlijk uitgebreid.
- De uitvoer is verbeterd, bijvoorbeeld, standaard worden randen getekend en numerieke waarden worden nu rechts uitgelijnd bij tabulaire uitvoer.
- Symbolen ';' na instructies worden genegeerd.
- De inhoud van de in de commandoregel opgegeven bestanden met de extensies *.sql en *.txt wordt nu gelezen en geïnterpreteerd als sets van SQL-expressies en dot-instructies.
- De opdracht «.timer» is uitgebreid met ondersteuning voor de waarde «once» om de timer alleen op de volgende SQL-uitdrukking toe te passen.
- De opdracht «.progress» heeft de optie «—timeout S» gekregen voor het gedwongen onderbreken van de SQL-uitdrukking na het verstrijken van de time-out.
- De opdracht «.indexes» heeft het gedrag van de sjablonen veranderd, die nu op indexnamen van toepassing zijn in plaats van op de namen van de geïndexeerde tabellen.
- Optimalisaties zijn aangebracht in de queryscheduler, waardoor de snelheid van het samenvoegen van tabellen en de operaties EXCEPT, INTERSECT en UNION is verbeterd.
- De prestaties van de functies voor het converteren van drijvende-komma getallen naar tekstweergave zijn verhoogd.
- In de implementatie, gecompileerd naar WebAssembly-intermediate code, is VFS «opfs-wl» toegevoegd, die identiek is aan VFS «opfs», maar gebruikmaakt van de Web Locks API voor het werken met vergrendelingen.
- De sqlite3_rsync utility heeft de optie «-p|—port» gekregen.
- Ondersteuning voor het Windows RT-platform is stopgezet.
Bron: opennet.ru
