Vydání databáze SQLite 3.31 s podporou generovaných sloupců

Zverejnené uvoľnenie SQLite 3.31.0, ľahkého DBMS, ktorý je dodávaný ako knižnica. Kód SQLite je distribuovaný ako verejné vlastníctvo (public domain), t.j. môže byť používaný bez obmedzení a bez nákladov na akýkoľvek účel. Finančnú podporu pre vývojárov SQLite zabezpečuje špeciálne vytvorený konzorcium, do ktorého patrí aj spoločnosti ako Adobe, Oracle, Mozilla, Bentley a Bloomberg.

Hlavné zmeny:

  • Pridaná podpora generovaných stĺpcov (vypočítaných stĺpcov), ktoré umožňujú pri vytváraní tabuľky definovať stĺpec, ktorého hodnota sa automaticky vypočítava na základe obsahu iného stĺpca. Generované stĺpce môžu byť buď virtuálne (vytvárané na požiadanie pri každom prístupe), alebo uložené v databáze (uložené pri každej aktualizácii súvisiacich stĺpcov). Obsah generovaných stĺpcov je dostupný iba v režime čítania (zmena sa vykonáva iba cez modifikáciu hodnoty v inom stĺpci, ktorý sa podieľa na výpočte). Napríklad:

    VYTVORIŤ TABUĽKU t1 (
    a INTEGER HLAVNÝ KĽÚČ,
    b INT,
    c TEXT,
    d INT GENEROVANÉ VŽDY AKO (a*abs(b)) VIRTUÁLNY,
    e TEXT GENEROVANÉ VŽDY AKO (substr(c,b,b+1)) ULOŽENÝ
    );

  • Pridané PRAGMA trusted_schema, nastavenie SQLITE_DBCONFIG_TRUSTED_SCHEMA a zavádzacia možnosť „-DSQLITE_TRUSTED_SCHEMA“, ktoré umožňujú spravovať zapnutie ochrany pred útokmi prostredníctvom modifikácie schémy dát v databáze. Pri aktívnej ochrane sa obmedzuje používanie SQL-funkcií (neoznačených ako SQLITE_INNOCUOUS) v spúšťačoch, pohľadoch, výrazoch CHECK a DEFAULT, indexoch a generovaných stĺpcoch. Takisto sa zakazuje používanie virtuálnych tabuliek v spúšťačoch a pohľadoch, ak virtuálna tabuľka nie je jednoznačne deklarovaná s príznakom SQLITE_VTAB_INNOCUOUS.
  • Realizovaná možnosť priradenia určitým v aplikáciách SQL-funkciám vlastností SQLITE_INNOCUOUS (neškodné funkcie, ktoré nezávisia od vonkajších parametrov a nemôžu sa používať na vykonávanie škodlivých akcií) a SQLITE_DIRECTONLY (iba priamy volanie v SQL-žiadostiach, bez možnosti použitia v spúšťačoch, pohľadoch a schémach štruktúry dát);
  • Pridaný modul uuid s implementáciou funkcií na spracovanie UUID (RFC-4122);
  • Pridané PRAGMA hard_heap_limit a funkcia sqlite3_hard_heap_limit64() na riadenie maximálnej veľkosti haldy;
  • V PRAGMA function_list bol pridaný výstup typu, vlastností a počtu argumentov každej funkcie;
  • Do virtuálnej tabuľky DBSTAT bol pridaný režim agregovania údajov;
  • V sqlite3_open_v2() bola implementovaná možnosť SQLITE_OPEN_NOFOLLOW, ktorá zabraňuje otvoreniu symbolických odkazov;
  • Pre argument PATH, odosielaný do funkcií JSON, bola pridaná podpora notácie polí „#-N“;
  • V systéme prerozdelenia pamäte lookaside Implementovaná podpora dvoch samostatných pamäťových poolov, pričom každý z nich môže byť použitý na prideľovanie blokov rôznej veľkosti (rozdelenie umožňuje rozšíriť použitie systému lookaside, pričom znižuje veľkosť prideleného bufferu pre každé pripojenie z 120 na 48 kB);
  • Podpora PRAGMA bola zrušená legacy_file_format, ktorý bol nekompatibilný s VACUUM, generovanými stĺpcami a klesajúcimi indexmi (podpora zastaraného formátu môže byť vrátená cez flag SQLITE_DBCONFIG_LEGACY_FILE_FORMAT v sqlite3_db_config()).

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster