Ukukhutshwa kwe-DBMS SQLite 3.31 ngenkxaso yeekholamu ezenziweyo

ipapashiwe ukukhulula I-SQLite 3.31.0, i-DBMS ekhaphukhaphu eyenzelwe njengelayibrari yeplagi. Ikhowudi yeSQLite isasazwa njengendawo yoluntu, okt. inokusetyenziswa ngaphandle kwezithintelo kwaye simahla kuyo nayiphi na injongo. Inkxaso yemali kubaphuhlisi beSQLite inikezelwa yi-consortium eyenziwe ngokukodwa, equka iinkampani ezifana ne-Adobe, i-Oracle, i-Mozilla, i-Bentley kunye ne-Bloomberg.

Siseko utshintsho:

  • Inkxaso eyongeziweyo iikholamu ezenziweyo (iintsika ezibaliweyo), ezikuvumela ukuba uchaze umhlathi xa usenza itafile exabiso layo libalwe ngokuzenzekelayo ngokusekelwe kwimixholo yomnye umhlathi. Iikholamu eziveliswayo zinokuba yinto ebonakalayo (eyenziwe kwi-fly kunye nofikelelo ngalunye) okanye igcinwe kwisiseko sedatha (igcinwe rhoqo xa iikholamu ezinxulumene zihlaziywa). Imixholo yeekholomu ezenziweyo ifumaneka kuphela kwimodi yokufunda (utshintsho lwenziwa kuphela ngokuguqulwa kwexabiso kwenye ikholomu echaphazelekayo ekubaleni). Umzekelo:

    YENZA ITABILE t1(
    ISITSHIWO ESIYINTLOKO,
    b INT,
    c TEXT,
    d INT IVELISWE RHOQO NJENG (a*abs(b)) NGOKUQINILEYO,
    e ISICATSHULWA EVELISWA NJENGOKO (substr(c,b,b+1)) EGCINWE
    );

  • I-PRAGMA yongezwe trusted_schema, ukubeka SQLITE_DBCONFIG_TRUSTED_SCHEMA kunye nokhetho lwendibano “-DSQLITE_TRUSTED_SCHEMA”, ekuvumela ukuba ulawule ukubandakanywa kokhuseleko ngokuchaseneyo. uhlaselo ngokuguqulwa kweschema sedatha kuvimba weenkcukacha. Ukhuseleko olusebenzayo luthintela ukusetyenziswa kwemisebenzi ye-SQL (engaphawulwanga SQLITE_INNOCUOUS) kwizichukumisi, iimbono, i-CHECK kunye neengxelo ze-DEFAULT, izalathisi, kunye neekholamu ezenziweyo. Ukusetyenziswa kweetheyibhile ezinenyani kwizichukumiso kunye neemboniselo nazo zivaliwe ngaphandle kokuba itheyibhile enenyani ibhengezwe ngokucacileyo nge SQLITE_VTAB_INNOCUOUS iflegi.
  • Kuphunyezwe ukukwazi ukwabela iipropati kwimisebenzi yeSQL echazwe kwizicelo SQLITE_INNOCUOUS (imisebenzi engenabungozi engaxhomekekanga kwiiparamitha zangaphandle kwaye ayinakusetyenziswa ukwenza izenzo ezingalunganga) kunye SQLITE_DIRECTONLY (kuphela umnxeba othe ngqo kwimibuzo ye-SQL, ngaphandle kokukwazi ukusebenzisa kwi-triggers, iimbono kunye nemifanekiso yesakhiwo sedatha);
  • Imodyuli eyongeziweyo uuid ngokuphunyezwa kwemisebenzi yokusetyenzwa kwe-UUID (RFC-4122);
  • I-PRAGMA yongezwe hard_heap_limit kunye nokusebenza sqlite3_hard_heap_limit64() ukulawula ubukhulu bobungakanani bemfumba;
  • Kwi-PRAGMA function_list imveliso eyongeziweyo yohlobo, iipropati kunye nenani leempikiswano zomsebenzi ngamnye;
  • Ukuya kwitheyibhile enenyani DBSTAT yongezwa indlela yokudibanisa idatha;
  • sqlite3_open_v2() sebenzisa i SQLITE_OPEN_NOFOLLOW ukhetho, olukuvumela ukuba ucime ukuvulwa kwamakhonkco omfuziselo;
  • Ngengxoxo PATH, idluliselwe kwimisebenzi ye-JSON, inkxaso eyongeziweyo ye-"#-N" ye-array notation;
  • Kwinkqubo yokusabalalisa imemori jonga ecaleni inkxaso yeepuli ezimbini zeememori ezihlukeneyo ziphunyeziwe, nganye ingasetyenziselwa ukwaba iibhloko zobukhulu obahlukeneyo (ukwahlula kukuvumela ukuba ukwandise ukusetyenziswa kwenkqubo yokujonga ecaleni, ngelixa unciphisa ubungakanani be-buffer eyabelwe uxhulumaniso ngalunye ukusuka kwi-120 ukuya kwi-48. KB);
  • Inkxaso ye-PRAGMA iyekisiwe ilifa_ifayile_ifomathi, eyayingahambelani neVACUUM, iikholamu ezenziweyo, kunye nezalathisi ezihlayo (inkxaso yefomathi yelifa inokubuyiselwa nge-SQLITE_DBCONFIG_LEGACY_FILE_FORMAT iflegi kwi sqlite3_db_config()).

umthombo: opennet.ru

Yongeza izimvo