Kutolewa kwa DBMS SQLite 3.31 kwa kutumia safu wima zinazozalishwa

iliyochapishwa kutolewa SQLite 3.31.0, DBMS nyepesi iliyoundwa kama maktaba ya programu-jalizi. Nambari ya SQLite inasambazwa kama kikoa cha umma, i.e. inaweza kutumika bila vikwazo na bila malipo kwa madhumuni yoyote. Usaidizi wa kifedha kwa wasanidi wa SQLite hutolewa na muungano maalum ulioundwa, unaojumuisha makampuni kama vile Adobe, Oracle, Mozilla, Bentley na Bloomberg.

kuu mabadiliko:

  • Aliongeza msaada safu wima zinazozalishwa (safu zilizohesabiwa), ambayo hukuruhusu kufafanua safu wakati unapounda jedwali ambalo thamani yake huhesabiwa kiatomati kulingana na yaliyomo kwenye safu nyingine. Safu wima zinazozalishwa zinaweza kuwa za mtandaoni (zinazozalishwa kwa kuruka na kila ufikiaji) au kuhifadhiwa kwenye hifadhidata (kuhifadhiwa kila wakati safu wima zinazohusiana zinasasishwa). Yaliyomo ya safu zinazozalishwa zinapatikana tu katika hali ya kusoma (mabadiliko yanafanywa tu kupitia urekebishaji wa thamani katika safu nyingine inayohusika katika hesabu). Kwa mfano:

    UNDA JEDWALI T1(
    UFUNGUO MSINGI KAMILI,
    b INT,
    c MAANDISHI,
    d INT HUZALIWA DAIMA (a*abs(b)) VIRTUAL,
    e MAANDIKO YANAYOTOLEWA DAIMA (substr(c,b,b+1)) YANAYOHIFADHIWA
    );

  • Imeongezwa PRAGMA kuaminiwa_schema, mpangilio SQLITE_DBCONFIG_TRUSTED_SCHEMA na chaguo la mkusanyiko "-DSQLITE_TRUSTED_SCHEMA", ambayo hukuruhusu kudhibiti ujumuishaji wa ulinzi dhidi ya mashambulizi kupitia marekebisho ya schema ya data katika hifadhidata. Ulinzi amilifu huzuia matumizi ya vitendaji vya SQL (havijawekwa alama SQLITE_INNOCUOUS) katika vianzishi, mionekano, ANGALIA na kauli CHAGUO, faharasa, na safu wima zilizoundwa. Matumizi ya majedwali pepe katika vichochezi na mionekano pia yamezimwa isipokuwa jedwali pepe limetangazwa kwa uwazi kwa alamisho ya SQLITE_VTAB_INNOCUOUS.
  • Imetekelezwa uwezo wa kugawa sifa kwa vitendakazi vya SQL vilivyofafanuliwa katika programu SQLITE_INNOCUOUS (kazi zisizo na madhara ambazo hazitegemei vigezo vya nje na haziwezi kutumika kufanya vitendo vibaya) na SQLITE_DIRECTONLY (simu ya moja kwa moja tu katika maswali ya SQL, bila uwezekano wa kutumia katika vichochezi, maoni na michoro ya muundo wa data);
  • Moduli iliyoongezwa uuid na utekelezaji wa kazi za usindikaji UUID (RFC-4122);
  • Imeongezwa PRAGMA kikomo_cha_ngumu na kazi sqlite3_hard_heap_limit64() kudhibiti saizi ya juu ya lundo;
  • Katika PRAGMA function_list kuongeza pato la aina, mali na idadi ya hoja za kila kazi;
  • Kwa jedwali pepe la DBSTAT imeongezwa hali ya ujumuishaji wa data;
  • sqlite3_open_v2() hutumia SQLITE_OPEN_NOFOLLOW chaguo, ambayo inakuwezesha kuzima ufunguzi wa viungo vya ishara;
  • Kwa hoja PATH, imepitishwa kwa chaguo za kukokotoa za JSON, imeongeza usaidizi kwa nukuu za safu "#-N";
  • Katika mfumo wa usambazaji wa kumbukumbu kuangalia kando msaada kwa mabwawa mawili tofauti ya kumbukumbu yametekelezwa, ambayo kila moja inaweza kutumika kutenga vizuizi vya ukubwa tofauti (kutenganisha hukuruhusu kupanua utumiaji wa mfumo wa kuangalia, huku ukipunguza saizi ya buffer iliyotengwa kwa kila unganisho kutoka 120 hadi 48. KB);
  • Usaidizi wa PRAGMA umekatishwa urithi_umbizo_faili, ambayo ilikuwa haioani na VACUUM, safu wima zilizozalishwa, na faharasa zinazoshuka (msaada wa umbizo la urithi unaweza kurejeshwa kupitia alamisho ya SQLITE_DBCONFIG_LEGACY_FILE_FORMAT katika sqlite3_db_config()).

Chanzo: opennet.ru

Kuongeza maoni