Rilaxx ta' DBMS SQLite 3.31 b'appoġġ għal kolonni ġġenerati

ippubblikat rilaxx SQLite 3.31.0, DBMS ħafif iddisinjat bħala librerija plug-in. Il-kodiċi SQLite huwa mqassam bħala dominju pubbliku, i.e. jistgħu jintużaw mingħajr restrizzjonijiet u mingħajr ħlas għal kwalunkwe skop. L-appoġġ finanzjarju għall-iżviluppaturi SQLite huwa pprovdut minn konsorzju maħluq apposta, li jinkludi kumpaniji bħal Adobe, Oracle, Mozilla, Bentley u Bloomberg.

Il-prinċipali bidliet:

  • Appoġġ miżjud kolonni ġġenerati (kolonni kkalkulati), li jippermettulek tiddefinixxi kolonna meta toħloq tabella li l-valur tagħha jiġi kkalkulat awtomatikament abbażi tal-kontenut ta’ kolonna oħra. Il-kolonni ġenerati jistgħu jkunu jew virtwali (ġenerati fuq il-fly ma' kull aċċess) jew maħżuna fid-database (issejvjati kull darba li l-kolonni relatati jiġu aġġornati). Il-kontenut tal-kolonni ġenerati huma disponibbli biss fil-modalità tal-qari (il-bidliet isiru biss permezz ta' modifika tal-valur f'kolonna oħra involuta fil-kalkolu). Pereżempju:

    OĦLOQ TABELLA t1(
    EWLENIN PRIMARJA INTEGER,
    b INT,
    c TEST,
    d INT ĠENERAT DEJJEM BĦALA (a*abs(b)) VRTWALI,
    e TEST IĠENERAT DEJJEM KIF (substr(c,b,b+1)) MAĦŻIN
    );

  • Miżjud PRAGMA skema_fiduċja, iffissar SQLITE_DBCONFIG_TRUSTED_SCHEMA u l-għażla ta 'assemblaġġ "-DSQLITE_TRUSTED_SCHEMA", li jippermettulek tikkontrolla l-inklużjoni ta' protezzjoni kontra attakki permezz ta' modifika tal-iskema tad-data fid-database. Protezzjoni attiva tirrestrinġi l-użu ta 'funzjonijiet SQL (mhux immarkati SQLITE_INNOCUOUS) fi triggers, fehmiet, dikjarazzjonijiet CHECK u DEFAULT, indiċi, u kolonni ġenerati. L-użu ta' tabelli virtwali fi triggers u fehmiet huwa wkoll diżattivat sakemm it-tabella virtwali ma tiġix iddikjarata b'mod espliċitu bil-marka SQLITE_VTAB_INNOCUOUS.
  • Implimenta l-abbiltà li tassenja proprjetajiet għal funzjonijiet SQL definiti fl-applikazzjonijiet SQLITE_INNOCUOUS (funzjonijiet li ma jagħmlux ħsara li ma jiddependux fuq parametri esterni u ma jistgħux jintużaw biex iwettqu azzjonijiet malizzjużi) u SQLITE_DIRECTONLY (sejħiet diretti biss f'mistoqsijiet SQL, mingħajr il-possibbiltà li jintużaw fi triggers, fehmiet u dijagrammi tal-istruttura tad-dejta);
  • Modulu miżjud uuid bl-implimentazzjoni ta' funzjonijiet għall-ipproċessar tal-UUID (RFC-4122);
  • Miżjud PRAGMA hard_heap_limit u l-funzjoni sqlite3_hard_heap_limit64() biex jikkontrolla d-daqs massimu tal-borġ;
  • Fi PRAGMA function_list output miżjud tat-tip, proprjetajiet u numru ta 'argumenti ta' kull funzjoni;
  • Għal tabella virtwali DBSTAT miżjud Mod ta' aggregazzjoni tad-dejta;
  • sqlite3_open_v2() timplimenta l-għażla SQLITE_OPEN_NOFOLLOW, li tippermettilek li tiddiżattiva l-ftuħ ta 'links simboliċi;
  • Għall-argument PATH, mgħoddi għal funzjonijiet JSON, żied appoġġ għan-notazzjoni tal-array "#-N";
  • Fis-sistema tad-distribuzzjoni tal-memorja lookaside ġie implimentat appoġġ għal żewġ pools ta 'memorja separati, li kull wieħed minnhom jista' jintuża biex jalloka blokki ta 'daqsijiet differenti (is-separazzjoni tippermettilek tespandi l-użu tas-sistema lookaside, filwaqt li tnaqqas id-daqs tal-buffer allokat għal kull konnessjoni minn 120 għal 48 KB);
  • L-appoġġ PRAGMA twaqqaf legacy_file_format, li kien inkompatibbli mal-VACUUM, il-kolonni ġġenerati, u l-indiċi dixxendenti (l-appoġġ tal-format tal-wirt jista’ jintbagħat lura permezz tal-bandiera SQLITE_DBCONFIG_LEGACY_FILE_FORMAT fi sqlite3_db_config()).

Sors: opennet.ru

Żid kumment