Kutulutsidwa kwa DBMS SQLite 3.42 ndi DuckDB 0.8.0. CG/SQL ndikukhazikitsa njira zosungidwa za SQLite

Kutulutsidwa kwa SQLite 3.42, DBMS yopepuka yopangidwa ngati laibulale ya pulagi, kwasindikizidwa. Khodi ya SQLite imagawidwa pagulu la anthu, i.e. itha kugwiritsidwa ntchito popanda zoletsa komanso kwaulere pazifukwa zilizonse. Thandizo lazachuma kwa opanga ma SQLite limaperekedwa ndi bungwe lopangidwa mwapadera, lomwe limaphatikizapo makampani monga Adobe, Oracle, Mozilla, Bentley ndi Bloomberg.

Zosintha zazikulu:

  • Pama index a FTS5 athunthu, lamulo lochotsa motetezeka limakhazikitsidwa, lomwe limatsuka zonse zotsalira zitachotsedwa.
  • Ntchito zogwirira ntchito mumtundu wa JSON tsopano zimathandizira zowonjezera za JSON5.
  • Kuwongolera kwamafunso. Kukhathamiritsa kwa kuwerengera kumayatsidwa mwachisawawa. Kuthetsa kusagwira mizati yosagwiritsidwa ntchito m'ma subqueries. Kupititsa patsogolo kakhazikitsidwe kakanidwe-pansi.
  • Njira yowonjezera "--unsafe-testing" ku CLI kuti mulole malamulo oopsa monga ".testctrl" kugwiritsidwa ntchito poyesa. Mumayendedwe otetezeka ("--safe"), malamulo a ".log on" ndi ".log off" amaloledwa. Thandizo lowonjezera la "-" lolekanitsa, pazokangana pambuyo pake kukonza njira kumayimitsidwa. Onjezani ":inf" ndi ":nan" magawo okhudzana ndi infinity ndi NaN.
  • Mayina a ntchito za SQL zomwe zimatanthauzidwa ndi ntchito zimaloledwa kupyola malire ndi CROSS, FULL, INNER, LEFT, NATURAL, OUTER, and RIGHT keywords.
  • Zowonjezera PRAGMA integrity_check kuthekera. Chekeni chowonjezera chofotokozera mtengo wa NaN m'mizere yokhala ndi NOT NULL chikhalidwe. Mauthenga olakwika a uthenga wowongoleredwa.
  • Kuphatikizika kwa gawoli kumalola kutengera zosintha kuchokera pamatebulo opanda ROWIDs.
  • "subsec" modifier yawonjezedwa ku ntchito zogwirira ntchito ndi nthawi ndi madeti kuti mugwiritse ntchito tizigawo ta masekondi.
  • Kuchepetsa kuzama kobwerezabwereza kwamagulu osiyanasiyana ndi zinthu za JSON kuchokera 2000 mpaka 1000.

Kuphatikiza apo, kutulutsidwa kwa DuckDB 0.8.0 DBMS kwapangidwa, komwe kumapangitsa kusinthika kwa SQLite, kukulitsidwa ndi mawonekedwe ndi kukhathamiritsa pochita mafunso owunikira omwe akukhudza gawo lalikulu lazosungidwa, mwachitsanzo, kusonkhanitsa zonse zomwe zili m'matebulo kapena kuphatikiza matebulo angapo akulu. Chilankhulo chotalikirapo cha chilankhulo cha SQL chimaperekedwa, kuphatikiza kuthekera kowonjezerapo pakuyankha mafunso ovuta kwambiri komanso anthawi yayitali, komanso kuthandizira mitundu yovuta (yophatikizika, mapangidwe, migwirizano), kuphatikizika kwamafunso angapo nthawi imodzi, ndikuchita mafunso mwachindunji kuchokera pamafayilo a CSV, JSON ndi Parquet. Ndizotheka kuitanitsa kuchokera ku PostgreSQL DBMS.

Kuphatikiza pa code ya chipolopolo kuchokera ku SQLite, polojekitiyi imagwiritsa ntchito cholembera kuchokera ku PostgreSQL, gawo la Date Math kuchokera ku MonetDB, kukhazikitsa kwake kwawindo lazenera (kuchokera pa Segment Tree Aggregation algorithm), pulosesa yokhazikika yochokera ku laibulale ya RE2, query optimizer, njira ya MVCC yoyang'anira ntchito imodzi imodzi Hyper-Pipelining Query Execut algorithm.ion, yomwe imakupatsani mwayi wokonza ma seti akuluakulu nthawi imodzi muntchito imodzi. Khodi ya polojekitiyi imagawidwa pansi pa layisensi ya MIT.

Mu mtundu watsopano wa DuckDB:

  • Anawonjezera mawu atsopano "PIVOT" ndi "UNPIVOT" kuti asinthe mizere kukhala mizere ndi mosemphanitsa.
  • Kufananiza bwino pakutumiza ndi kutumiza deta. Mwachikhazikitso, kuwerenga kuchokera pamafayilo amtundu wa CSV kukhala mitsinje ingapo ndi zolemba zamitundu yambiri zimakhazikitsidwa mukamagwiritsa ntchito mawonekedwe a Parquet, CSV ndi JSON.
  • Onjezani "**" wogwiritsa ntchito kuti abwereze mobwereza bwereza akamafotokozera njira zamafayilo (monga KUCHOKERA "'data/glob/crawl/stackoverflow/**/*.csv';").
  • Thandizo lowonjezera la ntchito zophatikizira (JOIN) za data mumtundu wanthawi (magawo amitengo yazigawo pakanthawi kochepa), momwe njira yolumikizirana siili yeniyeni, koma kufananiza kwamitengo ndi nthawi (mwachitsanzo, mutha kuphatikiza zolemba zomwe nthawi yake imasiyana osapitilira mphindi imodzi).
  • Kutsitsa kochedwetsa kwa metadata ya database kwakhazikitsidwa, zomwe zidapangitsa kuti zitheke kufulumizitsa kukhazikitsidwa kwa DBMS kangapo.
  • Thandizo lowonjezera pakulumikiza magwiridwe antchito ku Python.
  • Thandizo lowonjezera la ADBC ​​​​(Arrow Database Connectivity) API yosamutsa deta pogwiritsa ntchito Apache Arrow.
  • Kumangirira kokhazikitsidwa kuti kuphatikizidwe ndi Swift code.
  • Anasintha machitidwe a operekera magawo ("/"), omwe tsopano amawerengetsera malo oyandama mwachisawawa m'malo mochita zonse. Wogwiritsa ntchito watsopano "//" aperekedwa kuti agawidwe kwathunthu. Khalidwe lakale litha kubwezedwa pokhazikitsa "SET integer_division=true;".
  • Njira yowerengera ma null records pamene kusanja kwasinthidwa kuchoka ku "NULLS FIRST" kupita ku "NULLS LAST", i.e. Makhalidwe a NULL tsopano awonetsedwa kumapeto m'malo mwa chiyambi cha mndandanda. Khalidwe lakale litha kubwezeretsedwanso ndikuyika "SET default_null_order='nulls_first';".

Kuphatikiza apo, pulojekiti ya CG/SQL yopangidwa ndi Facebook, yomwe imapereka ma code jenereta ogwiritsira ntchito njira zosungidwa ndi SQLite, zitha kudziwika. CG/SQL imakulolani kuti mulembe njira zosungidwa m'chilankhulo chapadera cha T-SQL (Transact-SQL), chomwe chimakulolani kuti muyitane ntchito za laibulale yanthawi zonse ya C ndikupeza deta mu SQLite. Njira zosungidwa zomwe zimapangidwa zimaphatikizidwa kukhala C code yomwe imagwiritsa ntchito SQLite C API kuchita zomwe zanenedwa ndikuyankha mafunso ovuta. Njira zosungidwa zosungidwa zitha kulumikizidwa ndi mapulogalamu a C, Java, ndi Objective-C. Khodi ya polojekitiyi idalembedwa mu C ndikugawidwa pansi pa layisensi ya MIT.

Source: opennet.ru

Kuwonjezera ndemanga