Release van de database SQLite 3.35

De release van SQLite 3.35 is gepubliceerd, een lichte databasebeheersysteem dat als een koppelbare bibliotheek is vormgegeven. De code van SQLite wordt verspreid als publieke domein, dat wil zeggen dat het zonder beperkingen en kosteloos in alle doeleinden kan worden gebruikt. De financiële ondersteuning van de ontwikkelaars van SQLite wordt verzorgd door een speciaal opgerichte consortium, dat bedrijven zoals Adobe, Oracle, Mozilla, Bentley en Bloomberg omvat.

Belangrijkste wijzigingen:

  • Er zijn ingebouwde wiskundige functies toegevoegd (log2(), cos(), tg(), exp(), ln(), pow() etc.) die in SQL kunnen worden gebruikt. Voor het inschakelen van de ingebouwde functies is een build vereist met de optie "-DSQLITE_ENABLE_MATH_FUNCTIONS".
  • Ondersteuning voor de expressie "ALTER TABLE DROP COLUMN" is geïmplementeerd om kolommen uit een tabel te verwijderen en eerder opgeslagen gegevens in die kolom te wissen.
  • De implementatie van de UPSERT-operatie (toevoegen-of-wijzigen) is uitgebreid, waardoor expressies zoals "INSERT … ON CONFLICT DO NOTHING/UPDATE" fouten kunnen negeren of een update kunnen uitvoeren in plaats van een invoeging wanneer het toevoegen van gegevens via "INSERT" niet lukt (bijvoorbeeld als de registratie al bestaat, kan in plaats van INSERT een UPDATE worden uitgevoerd). In de nieuwe versie is het toegestaan om meerdere "ON CONFLICT"-blokken op te geven die in volgorde zullen worden verwerkt. In het laatste "ON CONFLICT"-blok is het toegestaan om de parameter voor het bepalen van de conflict niet op te geven voor het gebruik van "DO UPDATE".
  • In de operaties DELETE, INSERT en UPDATE is ondersteuning voor de expressie RETURNING geïmplementeerd, waarmee de inhoud van de verwijderde, ingevoegde of gewijzigde registratie kan worden weergegeven. Bijvoorbeeld, de expressie "insert into … returning id" zal de identificatie van de toegevoegde rij retourneren, en "update … set price = price * 1.10 returning price" zal de gewijzigde waarde van price retourneren.
  • Voor gemeenschappelijke tabeluitdrukkingen (Common Table Expression, CTE), die het gebruik van tijdelijke benoemde resultaatsets mogelijk maken die met de WITH-operator worden opgegeven, zijn de modi "MATERIALIZED" en "NOT MATERIALIZED" toegestaan. "MATERIALIZED" houdt in dat de resultaten van het opgegeven verzoek in een afzonderlijke fysieke tabel worden gecachet, met daaropvolgende gegevensopvraging uit deze tabel, terwijl bij "NOT MATERIALIZED" elke toegang tot de weergave opnieuw verzoeken zal uitvoeren. Oorspronkelijk werd in SQLite standaard de modus "NOT MATERIALIZED" gebruikt, maar nu is deze voor CTE, die meer dan eens worden gebruikt, veranderd naar "MATERIALIZED".
  • Geheugenverbruik verminderd bij het uitvoeren van de VACUUM-operatie voor databases die zeer grote waarden bevatten van de types TEXT of BLOB.
  • Er zijn werkzaamheden verricht om de prestaties van de optimizer en query-planner te verhogen:
    • Optimalisaties toegevoegd voor het gebruik van de functies min en max met de expressie 'IN'.
    • De uitvoering van de EXISTS-operator is versneld.
    • Het is mogelijk gemaakt om subquery's in UNION ALL-expressies te implementeren die deel uitmaken van JOIN.
    • Een index is toegepast op expressies IS NOT NULL.
    • Er is gezorgd voor de conversie van 'x IS NULL' en 'x IS NOT NULL' naar FALSE of TRUE voor kolommen met de eigenschap 'NOT NULL'.
    • De controle op buitenlandse sleutels is overgeslagen in UPDATE, als de operatie de kolommen die met de buitenlandse sleutel zijn verbonden niet wijzigt.
    • Het is toegestaan om delen van de WHERE-clausule te verplaatsen naar subquery's die vensterfuncties bevatten, mits deze delen beperkt zijn tot werken met constanten en kopieën van expressies uit de 'PARTITION BY'-clausules die worden gebruikt in vensterfuncties.
  • Wijzigingen in de commandoregelinterface:
    • De opdracht '.filectrl data_version' is toegevoegd.
    • In de opdrachten '.once' en '.output' is ondersteuning toegevoegd voor het doorsturen van uitvoer naar een handler die wordt aangeroepen met behulp van niet-naamgegeven kanalen ('|').
    • Aan de opdracht '.stats' zijn de argumenten 'stmt' en 'vmstep' toegevoegd voor het weergeven van statistieken over expressies en telwerkers van de virtuele machine.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster