DBMS SQLite 3.31:n julkaisu, joka tukee luotuja sarakkeita

julkaistu vapauta SQLite 3.31.0, kevyt DBMS, joka on suunniteltu laajennuskirjastoksi. SQLite-koodia jaetaan julkisena, ts. voidaan käyttää rajoituksetta ja maksutta mihin tahansa tarkoitukseen. Taloudellisen tuen SQLite-kehittäjille tarjoaa erityisesti luotu konsortio, johon kuuluvat muun muassa Adobe, Oracle, Mozilla, Bentley ja Bloomberg.

Pääasiallinen muutokset:

  • Lisätty tuki luodut sarakkeet (lasketut sarakkeet), joiden avulla voit määrittää sarakkeen, kun luot taulukon, jonka arvo lasketaan automaattisesti toisen sarakkeen sisällön perusteella. Luodut sarakkeet voivat olla joko virtuaalisia (luotettu lennossa jokaisen pääsyn yhteydessä) tai tallennettuja tietokantaan (tallennetaan aina, kun vastaavat sarakkeet päivitetään). Luotujen sarakkeiden sisältö on käytettävissä vain lukutilassa (muutoksia tehdään vain muuttamalla arvoa toisessa laskentaan osallistuvassa sarakkeessa). Esimerkiksi:

    LUO TAULUKKO t1(
    KOKONAISLUKU PÄÄAvain,
    b INT,
    c TEKSTI,
    d INT LUODATU AINA (a*abs(b)) VIRTUAALINNA,
    e TEKSTI LUOTU AINA KUIN (substr(c,b,b+1)) TALLENNETTU
    );

  • Lisätty PRAGMA luotettu_skeema, asetus SQLITE_DBCONFIG_TRUSTED_SCHEMA ja kokoonpanovaihtoehto "-DSQLITE_TRUSTED_SCHEMA", jonka avulla voit hallita suojauksen sisällyttämistä hyökkäyksiä tietokannan dataskeemaa muuttamalla. Aktiivinen suojaus rajoittaa SQL-funktioiden käyttöä (ei merkitty SQLITE_INNOCUOUS) triggereissä, näkymissä, CHECK- ja DEFAULT-käskyissä, indekseissä ja luoduissa sarakkeissa. Virtuaalitaulukoiden käyttö triggereissä ja näkymissä on myös poistettu käytöstä, ellei virtuaalitaulukkoa ole erikseen ilmoitettu SQLITE_VTAB_INNOCUOUS-lipulla.
  • Toteutettu kyky määrittää ominaisuuksia sovelluksissa määritetyille SQL-funktioille SQLITE_INNOCUOUS (vaarattomia toimintoja, jotka eivät ole riippuvaisia ​​ulkoisista parametreista ja joita ei voida käyttää haitallisten toimintojen suorittamiseen) ja SQLITE_DIRECTONLY (vain suora kutsu SQL-kyselyissä, ilman mahdollisuutta käyttää triggereissä, näkymissä ja tietorakennekaavioissa);
  • Lisätty moduuli uuid UUID-prosessointitoimintojen toteuttaminen (RFC-4122);
  • Lisätty PRAGMA hard_heap_limit ja toiminto sqlite3_hard_heap_limit64() hallitsemaan kasan enimmäiskokoa;
  • PRAGMAssa function_list lisätty kunkin funktion tyyppi, ominaisuudet ja argumenttien lukumäärä;
  • Virtuaalitaulukkoon DBSTAT lisätty tietojen yhdistämistila;
  • sqlite3_open_v2() toteuttaa SQLITE_OPEN_NOFOLLOW-vaihtoehdon, jonka avulla voit estää symbolisten linkkien avaamisen;
  • Väitteeksi PATH, välitetty JSON-funktioille, lisätty tuki "#-N"-taulukon merkinnälle;
  • Muistin jakelujärjestelmässä syrjään Tuki kahdelle erilliselle muistivarastolle on toteutettu, joista kumpaakin voidaan käyttää erikokoisten lohkojen allokoimiseen (erotuksella voit laajentaa lookaside-järjestelmän käyttöä ja samalla pienentää kullekin yhteydelle varatun puskurin kokoa 120:sta 48:aan KB);
  • PRAGMA-tuki on lopetettu legacy_file_format, joka ei ollut yhteensopiva VACUUMin, luotujen sarakkeiden ja laskevien indeksien kanssa (vanhojen muotojen tuki voidaan palauttaa SQLITE_DBCONFIG_LEGACY_FILE_FORMAT-lipun kautta tiedostossa sqlite3_db_config()).

Lähde: opennet.ru

Lisää kommentti