Siideynta DBMS SQLite 3.42 iyo DuckDB 0.8.0. CG/SQL oo leh hirgelinta hababka kaydsan ee SQLite

Siideynta SQLite 3.42, DBMS khafiifa oo loogu talagalay sidii maktabad fur-in, ayaa la daabacay. Koodhka SQLite waxa lagu qaybiyaa qaybta dadweynaha, i.e. waxa loo isticmaali karaa xad la'aan iyo lacag la'aan ujeedo kasta. Taageerada maaliyadeed ee horumarinta SQLite waxaa bixiya isbahaysi si gaar ah loo abuuray, oo ay ku jiraan shirkado ay ka mid yihiin Adobe, Oracle, Mozilla, Bentley iyo Bloomberg.

Isbeddellada ugu waaweyn:

  • Tusmooyinka qoraalka-buuxa ee FTS5, amarka la tirtiro ee ammaansan ayaa la fuliyaa, kaas oo si buuxda u nadiifiya dhammaan xogta hadhaaga ah ka dib markii la tirtiro.
  • Hawlaha habaynta xogta qaabka JSON hadda waxay taageertaa kordhinta JSON5.
  • Qorsheeyaha weydiinta oo la hagaajiyay. Kor u qaadida tirinta-aragtida waxa loo dajiyay si toos ah. Maaraynta tiirarka aan la isticmaalin ee su'aalaha hoose. Hirgelinta hagaajinta hoos-u-dhigga oo la hagaajiyay.
  • Waxaa lagu daray "--unsafe-testing" ikhtiyaarka CLI si loogu oggolaado qaar ka mid ah amarrada khatarta ah sida ".testctrl" in loo isticmaalo imtixaanka. Habka badbaadada leh ("--safe"), amarrada ".log on" iyo ".log off" waa la oggol yahay. Taageerada lagu daray "β€”" kala soocida, doodaha ka dib habaynta ikhtiyaarka ayaa naafada ah. Lagu daray ": inf" iyo ":nan" cabbirrada la xidhiidha infinity iyo qiimaha NaN.
  • Magacyada hawlaha SQL-qaraxan ee codsigu waa loo oggol yahay inay is dhexgalaan CROSS, FULL, GUDAHA, BIDIX, DABIGAY, DUWAN, iyo ereyada muhiimka ah ee saxda ah.
  • La balaadhiyey PRAGMA daacadnimada_check awoodaha jeeg lagu daray si loo qeexo qiimaha NaN ee tiirarka aan lahayn xaalad NULL ah. Xogta la hagaajiyay ee fariimaha khaldan
  • Isku-darka kalfadhigu wuxuu ogolaanayaa ka-hortagga isbeddelada miisaska aan lahayn ROWIDs.
  • Hagaajinta "subsec" ayaa lagu daray shaqooyinka si loogu shaqeeyo wakhtiga iyo taariikhaha si loo isticmaalo jajab ilbiriqsiyo ah.
  • Hoos u dhaca qoto dheer ee soo noqnoqoshada caadiga ah ee shaxanka iyo walxaha JSON laga bilaabo 2000 ilaa 1000.

Intaa waxaa dheer, DuckDB 0.8.0 DBMS siideynta ayaa la sameeyay, taas oo horumarisa kala duwanaanshaha SQLite, lagu xoojiyey sifooyin iyo wanaajin loogu talagalay fulinta su'aalaha falanqaynta ee daboolaya qayb muhiim ah oo ka mid ah xogta la kaydiyay, tusaale ahaan, isku-darka dhammaan waxyaabaha ku jira miisaska ama isku-darka dhowr miisaska waaweyn. Lahjad dheerad ah oo luqadda SQL ah ayaa la bixiyaa, oo ay ku jiraan awoodo dheeraad ah oo lagu maareynayo weydiimaha aadka u adag ee socda, iyo sidoo kale taageerada noocyada kakan (hababka, qaab-dhismeedka, ururrada), fulinta su'aalo badan oo isku mar ah, iyo fulinta su'aalaha si toos ah faylal ku qoran CSV, JSON iyo qaabka Parquet. Waa suurtogal in laga keeno PostgreSQL DBMS.

Marka lagu daro koodhka qolofka ee SQLite, mashruucu wuxuu isticmaalaa parser ka PostgreSQL, oo ​​loo raray maktabad gaar ah, Qaybta Xisaabta Taariikhda ee MonetDB, fulinteeda u gaarka ah ee hawlaha daaqada (oo ku salaysan Qaybta Geedaha Isku-darka Algorithm), soo-saare muujin joogto ah. iyadoo lagu saleynayo maktabadda RE2, hagaajinteeda su'aalaheeda, habka xakamaynta MVCC ee fulinta hawlaha isku mar ah (Multi-Version Concurrency Concurrency), iyo sidoo kale matoorka fulinta su'aalaha vectorized ee ku salaysan algorithm-ka Hyper-pipelining Query Execution, kaas oo u oggolaanaya farsamaynta qaybo badan oo ah qiyamka hal mar hal hawlgal. Xeerka mashruuca waxa lagu qaybiyaa shatiga MIT.

Nooca cusub ee DuckDB:

  • Waxaa lagu daray tibaaxo cusub "PIVOT" iyo "UNPIVOT" si loo beddelo safafka tiirar iyo caksi.
  • Isbarbardhigga oo la hagaajiyay marka la soo dejinayo iyo dhoofinta xogta. Sida caadiga ah, wax ka akhrinta faylalka qaabka CSV ee durdurro badan iyo qoraalo taxane badan ayaa la hirgeliyaa marka la isticmaalayo qaababka Parquet, CSV iyo JSON.
  • Waxaa lagu daray "**" hawlwadeen si uu si isdaba joog ah ugu celceliyo hagayaasha marka la qeexayo dariiqyada faylka (tusaale FROM "'data/glob/rawl/stackoverflow/**/*.csv';").
  • Taageerada lagu daray ee hawlgallada isku dhafka ah (JOIN) ee xogta qaab taxane ah (qaybo qiyamka halbeegyada waqtiyo cayiman), kaas oo shuruudaha isku darka diiwaanadu aanay ahayn mid sax ah, laakiin waa isku dheelitiran qiyam ah beerta wakhti leh (tusaale ahaan, waxaad isku dari kartaa rikoodhada, wakhti aan ka badnayn 1 daqiiqo).
  • Rarista xogta badan ee xogta ee dib loo dhigay ayaa la hirgeliyay, taasoo suurtagelisay in la dedejiyo bilaabista DBMS tobanaan jeer.
  • Taageero lagu daray isku xirka hawlaha gaarka ah ee Python.
  • Taageerada lagu daray ADBC ​​(Arrow Database Connectivity) API ee wareejinta xogta iyadoo la isticmaalayo Apache Arrow.
  • Hirgelinta ku xidhidhaynta is dhexgalka ee Swift code.
  • Beddelay habdhaqanka hawlwadeenka qaybta ("/"), kaas oo hadda si caadi ah u sameeya xisaabinta barta sabaynaysa halkii uu ka samayn lahaa hawlgallada isku xidhka. Hawlwadeen cusub "//" ayaa loo soo jeediyay qaybinta isku dhafka. Dhaqankii hore waxa lagu soo celin karaa in la dejiyo "SET integer_division=run;".
  • Habka xisaabinta diiwaanada aan jirin marka la kala soocida ayaa laga bedelay "NULLS FIRST" oo loo bedelay "NULLS LAST", i.e. Qiimaha NULL ayaa hadda la soo bandhigi doonaa dhamaadka halkii ay ka ahaan lahaayeen bilowga liiska. Dhaqankii hore waxaa lagu soo celin karaa iyadoo la dejiyo "SET default_null_order='nulls_first';".

Intaa waxaa dheer, mashruuca CG/SQL ee ay samaysay Facebook, kaas oo bixiya koodhka koodhka ee isticmaalka hababka kaydsan ee SQLite, waa la ogaan karaa. CG/SQL waxay kuu ogolaanaysaa inaad habayso habraacyada kaydsan ee lahjad gaar ah oo T-SQL (Transact-SQL), kaas oo kuu ogolaanaya inaad wacdo hawlaha maktabadda C caadiga ah iyo helitaanka xogta gudaha SQLite. Nidaamyada kaydsan ee la soo saaray waxaa lagu soo ururiyey koodka C ee isticmaala SQLite C API si uu u fuliyo ficillo cayiman iyo habraacyo su'aalo adag. Nidaamyada kaydsan ee la soo ururiyey waxa lagu xidhidhiyaa barnaamijyada C, Java, iyo Objective-C. Xeerka mashruuca wuxuu ku qoran yahay C waxaana lagu qaybiyaa shatiga MIT.

Source: opennet.ru

Add a comment