Paglabas ng DBMS SQLite 3.31 na may suporta para sa mga nabuong column

Nai-publish pakawalan SQLite 3.31.0, isang magaan na DBMS na idinisenyo bilang isang plug-in na library. Ang SQLite code ay ipinamahagi bilang isang pampublikong domain, ibig sabihin. maaaring gamitin nang walang mga paghihigpit at walang bayad para sa anumang layunin. Ang suportang pinansyal para sa mga developer ng SQLite ay ibinibigay ng isang espesyal na nilikhang consortium, na kinabibilangan ng mga kumpanya tulad ng Adobe, Oracle, Mozilla, Bentley at Bloomberg.

Ang pangunahing pagbabago:

  • Nagdagdag ng suporta nabuong mga column (mga kalkuladong column), na nagbibigay-daan sa iyong tukuyin ang isang column kapag gumawa ka ng table na ang halaga ay awtomatikong kinakalkula batay sa mga nilalaman ng isa pang column. Ang mga nabuong column ay maaaring maging virtual (nabuo sa mabilisang pag-access) o nakaimbak sa database (nai-save sa tuwing ina-update ang mga nauugnay na column). Ang mga nilalaman ng nabuong mga column ay magagamit lamang sa read mode (ang mga pagbabago ay ginagawa lamang sa pamamagitan ng pagbabago ng halaga sa isa pang column na kasama sa pagkalkula). Halimbawa:

    GUMAWA NG TALAHANAYAN t1(
    isang INTEGER PRIMARY KEY,
    b INT,
    c TEKSTO,
    d INT NABUO LAGING BILANG (a*abs(b)) VIRTUAL,
    e TEXT NA NABUBUO LAGING BILANG (substr(c,b,b+1)) NA NAKI-store
    );

  • Idinagdag ang PRAGMA trusted_schema, setting SQLITE_DBCONFIG_TRUSTED_SCHEMA at ang opsyon sa pagpupulong "-DSQLITE_TRUSTED_SCHEMA", na nagbibigay-daan sa iyong kontrolin ang pagsasama ng proteksyon laban sa mga pag-atake sa pamamagitan ng pagbabago ng data schema sa database. Pinaghihigpitan ng aktibong proteksyon ang paggamit ng mga SQL function (hindi minarkahan ng SQLITE_INNOCUOUS) sa mga trigger, view, CHECK at DEFAULT na mga statement, index, at nabuong column. Ang paggamit ng mga virtual na talahanayan sa mga trigger at view ay hindi rin pinagana maliban kung ang virtual na talahanayan ay tahasang idineklara na may flag na SQLITE_VTAB_INNOCUOUS.
  • Ipinatupad ang kakayahang magtalaga ng mga katangian sa mga function ng SQL na tinukoy sa mga application SQLITE_INNOCUOUS (mga hindi nakakapinsalang function na hindi nakadepende sa mga panlabas na parameter at hindi magagamit para magsagawa ng mga malisyosong pagkilos) at SQLITE_DIRECTONLY (direktang tawag lamang sa mga query sa SQL, nang walang posibilidad na gamitin sa mga trigger, view at diagram ng istruktura ng data);
  • Nagdagdag ng module uuid na may pagpapatupad ng mga function para sa pagproseso ng UUID (RFC-4122);
  • Idinagdag ang PRAGMA hard_heap_limit at pagpapaandar sqlite3_hard_heap_limit64() upang kontrolin ang maximum na laki ng tambak;
  • Sa PRAGMA function_list idinagdag ang output ng uri, katangian at bilang ng mga argumento ng bawat function;
  • Sa virtual table na DBSTAT dagdag pa mode ng pagsasama-sama ng data;
  • Ang sqlite3_open_v2() ay nagpapatupad ng opsyong SQLITE_OPEN_NOFOLLOW, na nagpapahintulot sa iyo na huwag paganahin ang pagbubukas ng mga simbolikong link;
  • Para sa argumento PATH, ipinasa sa mga function ng JSON, nagdagdag ng suporta para sa notation ng array na "#-N";
  • Sa sistema ng pamamahagi ng memorya tingin sa tabi Ang suporta para sa dalawang magkahiwalay na memory pool ay ipinatupad, ang bawat isa ay maaaring magamit upang maglaan ng mga bloke ng iba't ibang laki (ang paghihiwalay ay nagbibigay-daan sa iyo upang palawakin ang paggamit ng lookaside system, habang binabawasan ang laki ng buffer na inilalaan sa bawat koneksyon mula 120 hanggang 48 KB);
  • Ang suporta sa PRAGMA ay hindi na ipinagpatuloy legacy_file_format, na hindi tugma sa VACUUM, mga nabuong column, at mga pababang index (maaaring ibalik ang suporta sa format ng legacy sa pamamagitan ng SQLITE_DBCONFIG_LEGACY_FILE_FORMAT na flag sa sqlite3_db_config()).

Pinagmulan: opennet.ru

Magdagdag ng komento