Ukukhishwa kwe-DBMS SQLite 3.31 ngokusekelwa kwamakholomu akhiqiziwe

eshicilelwe ukukhululwa I-SQLite 3.31.0, i-DBMS engasindi edizayinelwe njengomtapo wolwazi ofakiwe. Ikhodi ye-SQLite isatshalaliswa njengesizinda somphakathi, i.e. ingasetshenziswa ngaphandle kwemikhawulo futhi mahhala nganoma iyiphi injongo. Usekelo lwezezimali lwabathuthukisi be-SQLite luhlinzekwa yinhlangano edalwe ngokukhethekile, ehlanganisa izinkampani ezifana ne-Adobe, i-Oracle, i-Mozilla, i-Bentley ne-Bloomberg.

main shintsha:

  • Ukwesekwa okwengeziwe amakholomu akhiqiziwe (amakholomu abaliwe), akuvumela ukuthi uchaze ikholomu lapho wakha ithebula inani lalo libalwa ngokuzenzakalelayo ngokusekelwe kokuqukethwe kwenye ikholomu. Amakholomu akhiqiziwe angaba yi-virtual (akhiqizwe endizeni ngokufinyelela ngakunye) noma agcinwe kusizindalwazi (alondolozwe isikhathi ngasinye lapho amakholomu ahlobene ebuyekezwa). Okuqukethwe kwamakholomu akhiqiziwe kutholakala kuphela kumodi yokufunda (izinguquko zenziwa kuphela ngokuguqulwa kwevelu kwenye ikholomu ehilelekile ekubalweni). Ngokwesibonelo:

    DALA ITHEBULA t1(
    UKHHIYE OYINKOKHELO OYI-INTEGER,
    b INT,
    c UMBHALO,
    d I-INT IKHISHWA NJALO NJENGOBA (a*abs(b)) I-VIRTUAL,
    e UMBHALO OWENZIWA NJALO NJENGOBA (substr(c,b,b+1)) EGCINWE
    );

  • Kwengezwe i-PRAGMA trusted_schema, isilungiselelo SQLITE_DBCONFIG_TRUSTED_SCHEMA kanye nenketho yokuhlanganisa “-DSQLITE_TRUSTED_SCHEMA”, ekuvumela ukuthi ulawule ukufakwa kokuvikela ngokumelene ukuhlasela ngokuguqulwa kwe-schema sedatha kusizindalwazi. Ukuvikela okusebenzayo kukhawulela ukusetshenziswa kwemisebenzi ye-SQL (engaphawulwanga ngokuthi SQLITE_INNOCUOUS) kuzibangeli, ekubukeni, ku-CHECK kanye nezitatimende ze-DEFAULT, izinkomba, namakholomu akhiqiziwe. Ukusetshenziswa kwamathebula abonakalayo kuzibangeli nasekubukeni nakho kukhutshaziwe ngaphandle kwalapho ithebula elibonakalayo limenyezelwe ngokusobala ngefulegi elithi SQLITE_VTAB_INNOCUOUS.
  • Kusetshenziswe ikhono lokunikeza izakhiwo emisebenzini ye-SQL echazwe ezinhlelweni zokusebenza SQLITE_INNOCUOUS (imisebenzi engenabungozi engancikile kumapharamitha angaphandle futhi engakwazi ukusetshenziselwa ukwenza izenzo ezinonya) kanye SQLITE_DIRECTONLY (ukushaya okuqondile kuphela emibuzweni ye-SQL, ngaphandle kokuthi kungenzeka kusetshenziswe izibangeli, imibono kanye nemidwebo yesakhiwo sedatha);
  • Imojuli engeziwe awu ngokuqaliswa kwemisebenzi yokucubungula i-UUID (RFC-4122);
  • Kwengezwe i-PRAGMA hard_heap_limit nokusebenza sqlite3_hard_heap_limit64() ukulawula ubukhulu benqwaba kasayizi;
  • Ku-PRAGMA function_list okuphumayo okungeziwe kohlobo, izakhiwo kanye nenani lama-agumenti omsebenzi ngamunye;
  • Kuthebula le-virtual DBSTAT kungezwe imodi yokuhlanganisa idatha;
  • sqlite3_open_v2() isebenzisa inketho ye-SQLITE_OPEN_NOFOLLOW, ekuvumela ukuthi ukhubaze ukuvulwa kwezixhumanisi ezingokomfanekiso;
  • Okokuphikisana PATH, idluliselwe emisebenzini ye-JSON, yengeze usekelo lwesaziso samalungu afanayo “#-N”;
  • Kusistimu yokusabalalisa inkumbulo bheka eceleni ukusekelwa kwamachibi enkumbulo amabili ahlukene asetshenziselwe, ngalinye lingasetshenziswa ukwaba amabhlogo anosayizi abahlukene (ukuhlukaniswa kukuvumela ukuba wandise ukusetshenziswa kwesistimu ye- lookaside, kuyilapho unciphisa usayizi webhafa eyabelwe ukuxhumana ngakunye ukusuka ku-120 kuya ku-48 KB);
  • Ukwesekwa kwe-PRAGMA kunqanyuliwe legacy_file_format, ebingahambisani ne-VACUUM, amakholomu akhiqiziwe, nezinkomba ezehlayo (usekelo lwefomethi yefa lungabuyiswa ngefulegi le-SQLITE_DBCONFIG_LEGACY_FILE_FORMAT kokuthi sqlite3_db_config()).

Source: opennet.ru

Engeza amazwana