Sakin DBMS SQLite 3.42 da DuckDB 0.8.0. CG/SQL tare da aiwatar da hanyoyin da aka adana don SQLite

An buga sakin SQLite 3.42, DBMS mai nauyi wanda aka tsara azaman ɗakin karatu na toshe, an buga shi. Ana rarraba lambar SQLite azaman yanki na jama'a, watau. ana iya amfani da shi ba tare da hani ba kuma kyauta don kowane dalili. Tallafin kuɗi na masu haɓaka SQLite yana samuwa ta hanyar haɗin gwiwa na musamman da aka ƙirƙira, wanda ya haɗa da kamfanoni kamar Adobe, Oracle, Mozilla, Bentley da Bloomberg.

Babban canje-canje:

  • Don cikakkun bayanan rubutu na FTS5, an aiwatar da amintaccen umarnin sharewa, wanda ke share duk sauran bayanan gaba ɗaya bayan gogewa.
  • Ayyuka don sarrafa bayanan JSON yanzu suna goyan bayan kari na JSON5.
  • Ingantaccen mai tsara tambaya. Ta hanyar tsoho, ana kunna haɓaka ƙidayar-view. An kawar da aiwatar da ginshiƙan da ba a yi amfani da su ba. Ingantattun aiwatar da ingantawa-ƙasa.
  • Ƙara zaɓin "--unsafe-testing" zuwa ƙirar layin umarni, wanda ke ba da damar amfani da wasu umarni masu haɗari, kamar ".testctrl", da aka yi nufin amfani da su a gwaji. A cikin yanayin aminci ("-lafiya"), an ba da izinin yin amfani da umarnin ".log on" da ".login". Ƙara goyon baya ga maƙasudin “—”, don mahawara bayan wanne zaɓi zaɓi yana kashe. An ƙara ": inf" da ":nan" sigogi masu alaƙa da rashin iyaka da ƙimar NaN.
  • Ana ba da izinin sunayen ayyukan SQL da aka ayyana aikace-aikacen su zoba tare da CROSS, FULL, INTER, HAGU, NATURAL, OUTER, da RIGHT keywords.
  • An faɗaɗa iyawar PRAGMA integrity_check. An ƙara bincika don tantance ƙimar NaN a cikin ginshiƙai tare da yanayin BA NULL. Ingantattun bayanan saƙon kuskure.
  • Ƙara-kan zaman yana ba da damar tsangwama canje-canje daga tebur ba tare da ROWID ba.
  • An ƙara gyare-gyaren "subsec" zuwa ayyuka don aiki tare da lokuta da kwanakin don amfani da guntu na daƙiƙa.
  • An rage zurfin komawar tsoho don tsararru da abubuwan JSON daga 2000 zuwa 1000.

Bugu da ƙari, an ƙirƙiri sakin DuckDB 0.8.0 DBMS, wanda ke haɓaka sigar SQLite, wanda aka faɗaɗa tare da iyawa da haɓakawa don aiwatar da tambayoyin nazari wanda ke rufe babban ɓangaren bayanan da aka adana, alal misali, yin tara duk abubuwan da ke ciki. na teburi ko haɗa manyan teburi da yawa. Yana ba da babban yare na SQL wanda ya haɗa da ƙarin ƙarfin aiki don sarrafa sarƙaƙƙiya da tambayoyin masu cin lokaci, kuma yana tallafawa nau'ikan hadaddun (tsari, tsari, ƙungiyoyi), gudanar da tambayoyi da yawa a lokaci guda, da gudanar da tambayoyin kai tsaye daga fayilolin CSV, JSON, da Parquet. . Yana yiwuwa a shigo da daga PostgreSQL DBMS.

Bugu da ƙari ga lambar harsashi daga SQLite, aikin yana amfani da parser daga PostgreSQL a cikin wani ɗakin karatu daban, Kwanan Math Math daga MonetDB, aiwatar da kansa na ayyukan taga (dangane da Segment Tree Aggregation algorithm), na'ura mai sarrafawa na yau da kullum dangane da ɗakin karatu na RE2, mai inganta binciken kansa, da tsarin sarrafa MVCC na aiwatar da ayyuka lokaci guda (Multi-Version Concurrency Control), da kuma injin aiwatar da binciken vectorized bisa ga Hyper-Pipeling Query Execution algorithm, wanda ke ba da damar manyan ƙima. da za a sarrafa a lokaci daya a daya aiki. Ana rarraba lambar aikin a ƙarƙashin lasisin MIT.

A cikin sabon sigar DuckDB:

  • An ƙara sabbin maganganu "PIVOT" da "UNPIVOT" don canza layuka zuwa ginshiƙai da akasin haka.
  • Ingantacciyar daidaitawa lokacin shigo da bayanai. Ta hanyar tsoho, ana aiwatar da karatun zare da yawa daga fayilolin CSV da rubutu mai zare da yawa yayin amfani da tsarin Parquet, CSV da JSON.
  • An ƙara "**" afareta don yin maimaita akai-akai ta hanyar kundayen adireshi lokacin da ake tantance hanyoyin fayil (misali, DAGA "'data/glob/crawl/stackoverflow/**/*.csv';").
  • Ƙara goyon baya don haɗa ayyukan (JOIN) don bayanai ta hanyar tsarin lokaci (yanke ƙimar ƙimar a ƙayyadaddun lokaci), wanda ma'auni don haɗa bayanan ba daidai ba ne, amma kusan daidaituwar dabi'u. a filin da ke da lokaci (misali, zaku iya haɗa bayanai, lokaci wanda bai wuce minti 1 ba).
  • Aiwatar da malalaci na bayanan metadata, wanda ya ba da damar hanzarta ƙaddamar da DBMS da sau goma.
  • Ƙara tallafi don haɗa ayyukan al'ada a cikin Python.
  • Ƙara goyon baya don ADBC ​​(Arrow Database Connectivity) API don canja wurin bayanai ta amfani da Apache Arrow.
  • An aiwatar da ɗauri don haɗawa tare da lambar Swift.
  • Canza halayen ma'aikacin rabo ("/") don yin lissafin maki mai iyo maimakon ayyukan lamba ta tsohuwa. An gabatar da sabon ma'aikacin "//" don rabon lamba. Za a iya dawo da tsohuwar ɗabi'a ta saita "SET integer_division=gaskiya;".
  • Hanyar yin la'akari da bayanan sifili lokacin da aka canza daga "NULLS FIRST" zuwa "NULLS LAST", watau. Yanzu za a buga ƙimar NULL a ƙarshen maimakon farkon jerin. Za a iya dawo da tsohuwar ɗabi'a ta hanyar saita "SET default_null_order='nulls_first';".

Bugu da ƙari, za mu iya lura da aikin CG/SQL wanda Facebook ya haɓaka, wanda ke ba da janareta na lamba don amfani da hanyoyin da aka adana tare da SQLite. CG/SQL yana ba ku damar rubuta hanyoyin da aka adana a cikin yare na musamman na T-SQL (Transact-SQL), wanda ke ba da damar ayyukan kira na daidaitaccen ɗakin karatu na C da samun damar bayanai a cikin SQLite. An haɗa hanyoyin da aka adana a cikin lambar C mai amfani da SQLite C API don aiwatar da takamaiman ayyuka da aiwatar da tambayoyi masu rikitarwa. Ana iya haɗa hanyoyin da aka haɗa da su zuwa C, Java, da shirye-shiryen Objective-C. An rubuta lambar aikin a cikin C kuma an rarraba a ƙarƙashin lasisin MIT.

source: budenet.ru

Add a comment