SQLite 3.35 vrystelling

Die vrystelling van SQLite 3.35, 'n liggewig DBMS wat ontwerp is as 'n inprop-biblioteek, is gepubliseer. Die SQLite-kode word in die publieke domein versprei, d.w.s. kan sonder beperkings en gratis vir enige doel gebruik word. Finansiële ondersteuning vir SQLite-ontwikkelaars word verskaf deur 'n spesiaal geskepte konsortium, wat maatskappye soos Adobe, Oracle, Mozilla, Bentley en Bloomberg insluit.

Belangrikste veranderinge:

  • Bygevoeg ingeboude wiskunde funksies (log2(), cos(), tg(), exp(), ln(), pow(), ens.) wat in SQL gebruik kan word. Aktivering van ingeboude funksies vereis bou met die "-DSQLITE_ENABLE_MATH_FUNCTIONS" opsie.
  • Ondersteuning geïmplementeer vir die "ALTER TABLE DROP COLUMN" uitdrukking om kolomme uit 'n tabel te verwyder en data wat voorheen in 'n gegewe kolom gestoor is, skoon te maak.
  • Die implementering van die UPSERT (byvoeg-of-wysig)-bewerking is uitgebrei, wat deur uitdrukkings soos "INSERT ... ON CONFLICT DO NOTHING/UPDATE" toelaat om 'n fout te ignoreer of 'n opdatering uit te voer in plaas van om in te voeg as dit onmoontlik is om by te voeg data deur "INSERT" (byvoorbeeld, as 'n rekord reeds bestaan, kan jy UPDATE doen in plaas van INSERT). Die nuwe weergawe laat jou toe om veelvuldige ON CONFLICT-blokke te spesifiseer, wat in volgorde verwerk sal word. Die laaste "ON CONFLICT"-blok laat toe dat die konflikdefinisieparameter weggelaat word om "DOEN UPDATE" te gebruik.
  • Die DELETE-, INSERT- en UPDATE-bewerkings ondersteun die RETURNING-uitdrukking, wat gebruik kan word om die inhoud van 'n geskrap, ingevoegde of gewysigde rekord te vertoon. Byvoorbeeld, die uitdrukking "insert into ... returning id" sal die identifiseerder van die bygevoegde reël terugstuur, en "update ... set price = price * 1.10 returning price" sal die veranderde pryswaarde terugstuur.
  • Vir Common Table Expressions (CTE), wat die gebruik van tydelike benoemde resultaatstelle toelaat wat gespesifiseer is deur die WITH-stelling te gebruik, word die keuse van "MATERIALISED" en "NOT MATERIALISED" modusse toegelaat. "MATERIALISEERD" impliseer die kas van die navraag gespesifiseer in die aansig in 'n aparte fisiese tabel en dan haal data uit hierdie tabel, en met "NIE MATERIALISEERD" sal herhaalde navrae uitgevoer word elke keer as die aansig verkry word. SQLite het oorspronklik as "NOT MATERIALISED" gestel, maar het nou verander na "MATERIALISED" vir CTE's wat meer as een keer gebruik word.
  • Verminderde geheueverbruik wanneer 'n VAKUUM-bewerking uitgevoer word op databasisse wat baie groot TEKS- of BLOB-waardes insluit.
  • Werk is gedoen om die werkverrigting van die optimeerder en navraagbeplanner te verhoog:
    • Optimalisasies bygevoeg wanneer die min en maksimum funksies met die "IN" uitdrukking gebruik word.
    • Die uitvoering van die EXISTS-stelling is versnel.
    • Geïmplementeerde uitbreiding van subnavrae vanaf UNION ALL uitdrukkings wat gebruik word as deel van JOIN.
    • Die indeks word gebruik vir IS NOT NULL uitdrukkings.
    • Verseker dat "x IS NULL" en "x IS NIE NULL" omgeskakel word na ONWAAR of WAAR vir kolomme wat die "NOT NULL"-kenmerk het.
    • Slaan die nagaan van vreemde sleutels in UPDATE oor as die bewerking nie die kolomme wat met die vreemde sleutel geassosieer word, verander nie.
    • Dit word toegelaat om dele van 'n WHERE-blok te skuif na subnavrae wat vensterfunksies bevat, solank daardie dele beperk is tot werk met konstantes en kopieë van uitdrukkings van PARTITION BY-blokke wat in vensterfunksies gebruik word.
  • Veranderinge in die opdragreël-koppelvlak:
    • Bygevoeg ".filectrl data_version" opdrag.
    • Die ".once"- en ".output"-opdragte ondersteun nou die deurgee van uitvoer na 'n hanteerder wat naamlose pype gebruik ("|").
    • Die "stmt" en "vmstep" argumente is by die ".stats" opdrag gevoeg om statistieke oor uitdrukkings en virtuele masjien tellers te vertoon.

Bron: opennet.ru

Voeg 'n opmerking