Liberasyon DBMS SQLite 3.42 ak DuckDB 0.8.0. CG/SQL ak aplikasyon pwosedi ki estoke pou SQLite

Yo te pibliye liberasyon SQLite 3.42, yon DBMS ki lejè ki fèt kòm yon bibliyotèk plug-in. Kòd SQLite a distribye kòm yon domèn piblik, i.e. ka itilize san restriksyon ak gratis pou nenpòt rezon. Sipò finansye pou devlopè SQLite se yon consortium ki kreye espesyalman, ki gen ladann konpayi tankou Adobe, Oracle, Mozilla, Bentley ak Bloomberg.

Chanjman prensipal yo:

  • Pou endèks tèks konplè FTS5, yo te aplike kòmandman an sekirite-efase, ki konplètman efase tout done rezidyèl apre yo fin efase.
  • Fonksyon pou trete done JSON kounye a sipòte ekstansyon JSON5.
  • Planifikatè rechèch amelyore. Pa default, optimize konte-of-view aktive. Pwosesis kolòn ki pa itilize nan subqueries elimine. Amelyore aplikasyon optimize pouse-desann.
  • Te ajoute opsyon "--unsafe-testing" nan koòdone liy lòd la, ki pèmèt itilizasyon kèk kòmandman danjere, tankou ".testctrl", ki fèt pou itilize nan tès la. Nan mòd ki an sekirite ("-safe"), yo pèmèt yo sèvi ak ".log on" ak ".log off" kòmandman yo. Te ajoute sipò pou "-" delimiter la, pou agiman apre ki pwosesis opsyon yo enfim. Te ajoute ":inf" ak ":nan" paramèt ki asosye ak valè infini ak NaN yo.
  • Non fonksyon SQL defini nan aplikasyon yo gen dwa sipèpoze ak mo kle KWA, PLEN, ENDAN, GÒCH, NATIRÈL, EXTERIÈ ak DWA.
  • Kapasite PRAGMA integrity_check yo te elaji. Te ajoute tcheke pou espesifye valè NaN nan kolòn ak kondisyon an PA NULL. Amelyore kontni enfòmasyon nan mesaj erè.
  • Add-on sesyon an pèmèt entèsepte chanjman ki soti nan tab san ROWID.
  • Modifikatè "subsec" yo te ajoute nan fonksyon pou travay ak lè ak dat pou itilize fraksyon segonn.
  • Pwofondè retou default pou etalaj ak objè JSON te redwi soti nan 2000 a 1000.

Anplis de sa, yo te kreye lage DuckDB 0.8.0 DBMS la, ki devlope yon vèsyon SQLite, elaji ak kapasite ak optimize pou egzekite demann analyse ki kouvri yon pati enpòtan nan done yo ki estoke, pou egzanp, fè agrégasyon nan tout sa ki ladan yo. nan tab oswa fusion plizyè tab gwo. Bay yon dyalèk avanse nan SQL ki gen ladann kapasite adisyonèl pou trete demann trè konplèks ak ki pran tan, epi li sipòte tou kalite konplèks (etalaj, estrikti, sendika), kouri plizyè demann ansanm, epi kouri demann ki sòti dirèkteman nan CSV, JSON, ak partez. . Li posib pou enpòte soti nan DBMS PostgreSQL.

Anplis de kòd kokiy ki soti nan SQLite, pwojè a sèvi ak yon analizeur ki soti nan PostgreSQL nan yon bibliyotèk separe, eleman Dat Matematik ki soti nan MonetDB, pwòp aplikasyon li nan fonksyon fenèt (ki baze sou algorithm Segment Tree Aggregation), yon processeur ekspresyon regilye ki baze sou bibliyotèk la RE2, pwòp optimize rechèch li yo, ak yon mekanis kontwòl MVCC ekzekisyon similtane nan travay (Multi-Version Concurrency Control), osi byen ke yon motè egzekisyon rechèch vektorize ki baze sou algorithm nan Hyper-Pipelining Query Execution, ki pèmèt seri gwo valè. yo dwe trete nan yon fwa nan yon sèl operasyon. Kòd pwojè a distribye anba lisans MIT.

Nan nouvo vèsyon an nan DuckDB:

  • Te ajoute nouvo ekspresyon "PIVOT" ak "UNPIVOT" pou transfòme ranje an kolòn ak vis vèrsa.
  • Amelyore paralelizasyon lè enpòte ak ekspòte done. Pa default, lekti milti-threaded soti nan dosye CSV ak ekri milti-threaded yo aplike lè w ap itilize fòma Parquet, CSV ak JSON.
  • Te ajoute "**" operatè pou repete nan anyè lè w ap detèmine chemen fichye yo (pa egzanp, SOTI "'data/glob/crawl/stackoverflow/**/*.csv';").
  • Te ajoute sipò pou operasyon fusion (JOIN) pou done nan fòm lan nan yon seri tan (tranch nan valè paramèt nan entèval tan espesifye), nan ki kritè a pou fizyon dosye se pa yon egzak, men yon konyensidans apwoksimatif nan valè. nan yon jaden ak tan (pa egzanp, ou ka rantre dosye, tan ki diferan pa plis pase 1 minit).
  • Aplike parese loading nan metadata baz done, ki te fè li posib akselere lansman DBMS la pa dè dizèn de fwa.
  • Te ajoute sipò pou konekte fonksyon koutim nan Python.
  • Te ajoute sipò pou API ADBC ​​(Arrow Database Connectivity) pou transfere done lè l sèvi avèk Apache Arrow.
  • Yo te aplike yon obligatwa pou entegrasyon ak kòd Swift.
  • Chanje konpòtman operatè divizyon ("/") pou fè kalkil pwen k ap flote olye pou yo operasyon nonb antye relatif yo pa default. Yo pwopoze yon nouvo operatè "//" pou divizyon nonb antye relatif. Ansyen konpòtman an ka retounen lè w mete "SET integer_division=true;".
  • Metòd la pou pran an kont zewo dosye lè klasman yo te chanje soti nan "NULLS PREMYE" a "NULLS DÈNYE", i.e. Valè NULL yo pral enprime kounye a nan fen olye ke nan kòmansman lis la. Ansyen konpòtman an ka retounen lè w mete "SET default_null_order='nulls_first';".

Anplis de sa, nou ka sonje pwojè CG/SQL devlope pa Facebook, ki bay yon dèlko kòd pou itilize pwosedi ki estoke ak SQLite. CG/SQL pèmèt ou ekri pwosedi ki estoke nan yon dyalèk espesyal T-SQL (Transact-SQL), ki pèmèt ou rele fonksyon bibliyotèk C estanda ak aksè done nan SQLite. Pwosedi ki estoke pwodwi yo konpile nan kòd C ki sèvi ak SQLite C API pou fè aksyon espesifik ak trete demann konplèks. Konpile pwosedi ki estoke yo ka konekte ak pwogram C, Java, ak Objective-C. Kòd pwojè a ekri an C epi distribye anba lisans MIT.

Sous: opennet.ru

Add nouvo kòmantè