SQLite 3.35 andmebaasisüsteemi väljaandmine

SQLite 3.35, kergekaaluline andmebaasi haldur, on välja antud plugina kujul. SQLite kood on avalikus omandis, st seda võib kasutada piiranguteta ja tasueta igasugustel eesmärkidel. SQLite arendajate rahastamist toetab spetsiaalselt loodud konsortsium, kuhu kuuluvad ettevõtted nagu Adobe, Oracle, Mozilla, Bentley ja Bloomberg.

Peamised muudatused:

  • Lisatud on sisseehitatud matemaatilised funktsioonid (log2(), cos(), tg(), exp(), ln(), pow jne), mida saab kasutada SQL-is. Sisseehitatud funktsioonide aktiveerimiseks on vajalik kompileerimine valikuga «-DSQLITE_ENABLE_MATH_FUNCTIONS».
  • Rakendatud on toetust väljendile «ALTER TABLE DROP COLUMN», et kustutada veerge tabelist ja eemaldada varem selles veerus hoiustatud andmed.
  • UPSERT (lisa või muuda) operatsiooni rakendust on laiendatud, võimaldades väljendite kaudu «INSERT … ON CONFLICT DO NOTHING/UPDATE» ignoreerida viga või teostada uuendust, kui andmete lisamine «INSERT» kaudu on võimatu (näiteks, kui kirje juba eksisteerib, saab «INSERT»-i asemel teha «UPDATE»). Uues versioonis on lubatud mitu «ON CONFLICT» plokki, mis töödeldakse järjestuses. Viimases «ON CONFLICT» plokis ei ole nõutud konflikti määratlemise parameetri määramine «DO UPDATE» kasutamiseks.
  • DELETE, INSERT ja UPDATE operatsioonides on rakendatud väljendi RETURNING toetus, mille abil saab kuvada kustutatud, sisestatud või muudetud kirje sisu. Näiteks väljend «insert into … returning id» tagastab lisatud rea ID, samas kui «update … set price = price * 1.10 returning price» tagastab muudetud hinna väärtuse.
  • Üldiste tabelite väljendite (Common Table Expression, CTE), mis võimaldavad kasutada ajutisi nimelisi tulemuste kogumeid, määratletud «WITH» operaatori kaudu, valimist on lubatud režiimid «MATERIALIZED» ja «NOT MATERIALIZED». «MATERIALIZED» tähendab küsimise tulemuste salvestamist eraldi füüsilisse tabelisse, mille kaudu andmeid hiljem hankida, samas kui «NOT MATERIALIZED» toob igal lähenemisel esile korduvad päringud. Alguses kasutas SQLite vaikimisi režiimi «NOT MATERIALIZED», kuid nüüd on CTE-de puhul, mida kasutatakse rohkem kui üks kord, muudetud see «MATERIALIZED»-iks.
  • Mälu tarbimist on vähendatud VACUUM operatsiooni teostamisel väga suurte TEXT või BLOB tüüpi väärtustega andmebaasides.
  • Optimeerimismootori ja päringute planeerija sooritusvõimet on parandatud:
    • Min ja max funktsioonide puhul on tehtud optimeerimisi koos väljendiga «IN».
    • EXISTS operaatori teostamist on kiirendatud.
    • SUBQUERY-d on rakendatud UNION ALL väljenditest, mida kasutatakse JOINis.
    • Indeks on rakendatud väljenditele IS NOT NULL.
    • Konverteerimine «x IS NULL» ja «x IS NOT NULL» FALSE-ks või TRUE-ks on tagatud veergude jaoks, millel on omadus «NOT NULL».
    • Väliste võtmete kontrollimist on UPDATE operatsioonis möödud, kui tegevus ei muuda veerge, mis on seotud väliste võtmetega.
    • WHERE ploki osi on lubatud liigutada alamküsitlustesse, mis sisaldavad aknafunktsioone, kui need osad on piiratud pidevate ja väljendite koopiatega, mis on võetud «PARTITION BY» plokkidest, mida kasutatakse aknafunktsioonides.
  • Käskude rida liidese muudatused:
    • Lisatud on käsk «.filectrl data_version».
    • Käskudes «.once» ja «.output» on lisatud toimetamise häälestuse edastamise tugi kasutades nimetamata kanaleid («|»).
    • Käsku «.stats» on lisatud argumendid «stmt» ja «vmstep», et kuvada väljendite ja virtuaalmasina loendurite statistikat.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster