Kutolewa kwa SQLite 3.42, DBMS nyepesi iliyoundwa kama maktaba programu-jalizi, kumechapishwa. Nambari ya SQLite inasambazwa katika 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.
Mabadiliko kuu:
- Kwa faharasa za maandishi kamili ya FTS5, amri ya kufuta-salama imetekelezwa, ambayo hufanya usafishaji kamili wa data zote zilizobaki baada ya kufutwa.
- Kazi za kuchakata data katika umbizo la JSON sasa zinaauni viendelezi vya JSON5.
- Kipanga hoja kimeboreshwa. Uboreshaji wa hesabu ya mwonekano umewezeshwa kwa chaguomsingi. Uchakataji wa safu wima ambazo hazijatumiwa katika hoja ndogo umeondolewa. Uboreshaji wa kusukuma-chini umeboreshwa.
- Chaguo la "--unsafe-testing" limeongezwa kwenye kiolesura cha mstari amri, ikiruhusu matumizi ya amri fulani hatari, kama vile ".testctrl," inayokusudiwa kutumiwa wakati wa majaribio. Katika hali salama ("--safe"), amri za ".logi kwenye" na ".log off" sasa zinaruhusiwa. Usaidizi wa kitenganishi cha "--" umeongezwa, na kulemaza uchakataji wa chaguo kwa hoja ambapo uchakataji wa chaguo umezimwa. Vigezo vya ":inf" na ":nan" vimeongezwa, vinavyohusiana na thamani za infinity na NaN.
- Majina ya vitendaji vya SQL vilivyobainishwa na programu yanaruhusiwa kuingiliana na maneno CROSS, FULL, NDER, LEFT, NATURAL, OUTER, na RIGHT.
- Uwezo wa PRAGMA integrity_check umepanuliwa. Cheki ya nambari za NaN katika safuwima SI NULL imeongezwa. Ujumbe wa hitilafu umeboreshwa.
- Programu jalizi ya kipindi huruhusu uingiliaji wa mabadiliko kutoka kwa jedwali bila ROWID.
- Kirekebishaji cha "subsec" kimeongezwa kwa vitendakazi vya kufanya kazi na saa na tarehe ili kuruhusu kutumia sehemu za sekunde.
- Kina cha urejeshaji chaguomsingi cha safu na vipengee vya JSON kimepunguzwa kutoka 2000 hadi 1000.
Zaidi ya hayo, DuckDB 0.8.0 imetolewa, ikipanua lahaja ya SQLite yenye uwezo na uboreshaji ulioimarishwa wa kuendesha hoja za uchanganuzi zinazojumuisha sehemu kubwa ya data iliyohifadhiwa, kama vile kujumlisha maudhui yote ya majedwali au kuunganisha majedwali kadhaa makubwa. Lahaja iliyopanuliwa ya SQL imetolewa, ikijumuisha uwezo wa ziada wa kuchakata maswali magumu sana na ya muda mrefu, pamoja na usaidizi wa aina changamano (safu, miundo, miungano), utekelezaji wa hoja nyingi kwa wakati mmoja, na utekelezaji wa hoja moja kwa moja kutoka kwa faili za CSV, JSON, na Parquet. Kuagiza kutoka kwa PostgreSQL pia kunatumika.
Kwa kuongezea msimbo wa ganda la SQLite, mradi unatumia kichanganuzi cha PostgreSQL katika maktaba tofauti, kipengele cha Hesabu ya Tarehe kutoka MonetDB, utekelezaji maalum wa utendaji wa dirisha (kulingana na kanuni ya Ukusanyaji wa Segment Tree), kichakataji cha kawaida cha kujieleza kulingana na maktaba ya RE2, kiboresha hoja maalum, utaratibu wa Udhibiti wa Sarafu wa Toleo Mbalimbali (MVCC) wa utekelezaji wa kazi ya pamoja ya Udhibiti wa Sarafu (MVCC). injini ya utekelezaji kulingana na algorithm ya Utekelezaji wa Swali la Hyper-Pipelining, ambayo inaruhusu usindikaji wa wakati mmoja wa seti kubwa za maadili katika operesheni moja. Nambari ya mradi inasambazwa chini ya leseni ya MIT.
Katika toleo jipya la DuckDB:
- Imeongeza maneno mapya "PIVOT" na "UNPIVOT" kwa ajili ya kubadilisha safu mlalo kuwa safu wima na kinyume chake.
- Usawazishaji ulioboreshwa wakati wa kuagiza na kusafirisha data. Usomaji wa nyuzi nyingi kutoka kwa faili za CSV na uandishi wa nyuzi nyingi sasa unatumika kwa chaguomsingi unapotumia umbizo la Parquet, CSV na JSON.
- Imeongeza opereta "**" kwa urudiaji wa saraka wakati wa kufafanua njia za faili (k.m. KUTOKA "'data/glob/crawl/stackoverflow/**/*.csv';").
- Usaidizi ulioongezwa wa shughuli za kuunganisha (JIUNGE) kwa data katika mfumo wa mfululizo wa muda (vipande vya thamani za parameta kwa vipindi maalum vya muda), ambapo kigezo cha kuunganisha rekodi sio sawa kabisa, lakini ni sawa na uwiano wa thamani kwenye uwanja na wakati (kwa mfano, unaweza kuunganisha rekodi ambazo nyakati zake hutofautiana kwa si zaidi ya dakika 1).
- Imetekelezwa upakiaji wa uvivu wa metadata ya hifadhidata, ambayo iliruhusu uanzishaji wa DBMS kuharakishwa kwa makumi ya nyakati.
- Usaidizi ulioongezwa wa kuunganisha kazi zilizofafanuliwa na mtumiaji katika Python.
- Usaidizi ulioongezwa kwa ADBC (Muunganisho wa Hifadhidata ya Mshale) kwa uhamishaji wa data kwa kutumia Kishale cha Apache.
- Ufungaji uliotekelezwa wa kuunganishwa na msimbo wa Swift.
- Tabia ya mwendeshaji mgawanyiko ("/") imebadilishwa. Sasa hufanya hesabu za sehemu zinazoelea kwa chaguo-msingi badala ya utendakazi kamili. Opereta mpya, "//," imeanzishwa kwa mgawanyiko kamili. Tabia ya zamani inaweza kurejeshwa kwa kuweka "SET integer_division=true;."
- Njia ya kupanga kwa rekodi zisizo na maana imebadilishwa kutoka "NULLS FIRST" hadi "NULLS LAST," kumaanisha kwamba maadili yasiyofaa sasa yataonekana mwishoni mwa orodha badala ya mwanzo. Tabia ya awali inaweza kurejeshwa kwa kuweka "SET default_null_order='nulls_first';."
Mradi mwingine unaostahili kuzingatiwa ni CG/SQL, mradi uliotengenezwa na Facebook ambao hutoa jenereta ya msimbo kwa kutumia taratibu zilizohifadhiwa na SQLite. CG/SQL inaruhusu uundaji wa taratibu zilizohifadhiwa katika lahaja maalum ya T-SQL (Transact-SQL), ambayo inaruhusu utendakazi wa kupiga simu kutoka kwa maktaba ya kawaida ya C na kufikia data ya SQLite. Taratibu zilizohifadhiwa zimekusanywa katika msimbo wa C, ambao hutumia API ya SQLite C kutekeleza vitendo maalum na kushughulikia maswali changamano. Taratibu zilizokusanywa zilizohifadhiwa zinaweza kuunganishwa kwa programu zilizoandikwa katika C, Java, na Objective-C. Nambari ya mradi imeandikwa kwa C na inasambazwa chini ya leseni ya MIT.
Chanzo: opennet.ru
