SQLite andmebaasi versioon 3.31, mis toetab genereeritavaid veerge

Avaldatud väljalase SQLite 3.31.0, kergekaaluline andmebaas, mis on kujundatud dünaamilise ühendusraamatukoguna. SQLite kood on vabalt saadaval (public domain), see tähendab, et seda tohib kasutada ilma piiranguteta ja tasuta mistahes otstarbel. SQLite arendajate rahalist toetust annab spetsiaalselt loodud konsortsium, kuhu kuuluvad sellised ettevõtted nagu Adobe, Oracle, Mozilla, Bentley ja Bloomberg.

Peamised muudatused:

  • Lisatud tugi genereeritud veergudele (arvutatud veergude) abil, mis võimaldavad tabeli loomisel määrata veeru, mille väärtus arvutatakse automaatselt teise veeru sisu põhjal. Genereritud veerud võivad olla virtuaalsed (koostatakse igal korral reaalajas) või salvestatud andmebaasis (salvestatakse iga kord, kui seotud veerge uuendatakse). Generatiivsete veergude sisu on saadaval ainult lugemisrežiimis (muutmine toimub ainult teise veeru väärtuse muutmise kaudu, mis osaleb arvutamises). Näiteks:

    LOO TABEL t1 (
    a INTEGER PEAMINE VÕTI,
    b INT,
    c TEXT,
    d INT GENERATEERITUD ALATI KUI (a*abs(b)) VIRTUAALNE,
    e TEXT GENERATEERITUD ALATI KUI (substr(c,b,b+1)) SALVESTATUD
    );

  • Lisatud PRAGMA trusted_schema, seadistus SQLITE_DBCONFIG_TRUSTED_SCHEMA ja kokkupaneku valik «-DSQLITE_TRUSTED_SCHEMA», mis võimaldavad hallata kaitse lubamiseks rünnakute andmete skeemi muutmise kaudu andmebaasis. Aktiivse kaitse korral piiratakse SQL-funktsioonide (mida ei ole märgitud kui SQLITE_INNOCUOUS) kasutamist triggerites, vaadetes, CHECK ja DEFAULT väljendites, indeksites ning genereeritud veergudes. Samuti keelatakse virtuaalsete tabelite kasutamine triggerites ja vaadetes, kui virtuaalne tabel ei ole selgelt deklareeritud SQLITE_VTAB_INNOCUOUS lipukesega.
  • Rakendustes SQL-funktsioonidele omaduste määramise võimalus. SQLITE_INNOCUOUS (kahjutud funktsioonid, mis ei sõltu välistest parameetritest ja mida ei saa kasutada kahjulike tegevuste tegemiseks) ning SQLITE_DIRECTONLY (ainult otsene kutsumine SQL-päringutes, ilma võimaluseta kasutada triggerites, vaadetes ja andmestruktuuri skeemides);
  • Lisatud moodul uuid UUID-de töötlemise funktsioonide rakendusega (RFC-4122);
  • Lisatud PRAGMA hard_heap_limit ja funktsioon sqlite3_hard_heap_limit64() maksimaalse kuhjade suuruse haldamiseks;
  • PRAGMA-s function_list on lisatud funktsiooni tüübi, omaduste ja argumentide arvu esitamine;
  • Virtuaaltabelis DBSTAT lisatud andmete agregatsiooni režiim;
  • sqlite3_open_v2() funktsioonis on rakendatud SQLITE_OPEN_NOFOLLOW valik, mis keelab sümboolsete linkide avamise;
  • Argument PATH, mis edastatakse JSON-funktsioonidele, toetab nüüd massiivide süntaksit «#-N»;
  • Mäluhalduse süsteemis lookaside on toetatud kahe eraldi mälu basseini rakendamine, millest igaüht saab kasutada erineva suurusega blokkide eraldamiseks (jaotus võimaldab laiemat lookaside süsteemi rakendust, samas vähendades igaühenduse jaoks eraldatud puhvri suurust 120-lt 48 KB-le);
  • PRAGMA legacy_file_format, mis oli kokkusobimatu VACUUM, genereeritud veergude ja vähenevate indeksitega (vananenud formaadi toe saab taastada SQLITE_DBCONFIG_LEGACY_FILE_FORMAT lipu kaudu sqlite3_db_config()).

Allikas: opennet.ru

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