Rilis DBMS SQLite 3.42 lan DuckDB 0.8.0. CG / SQL kanthi implementasine prosedur sing disimpen kanggo SQLite

Rilis SQLite 3.42, DBMS entheng sing dirancang minangka perpustakaan plug-in, wis diterbitake. Kode SQLite disebarake ing domain umum, i.e. bisa digunakake tanpa watesan lan gratis kanggo maksud apa wae. Dhukungan finansial kanggo pangembang SQLite diwenehake dening konsorsium sing digawe khusus, sing kalebu perusahaan kayata Adobe, Oracle, Mozilla, Bentley lan Bloomberg.

Owah-owahan utama:

  • Kanggo indeks teks lengkap FTS5, perintah mbusak aman dileksanakake, sing ngresiki kabeh data sisa sawise dibusak.
  • Fungsi kanggo ngolah data ing format JSON saiki ndhukung ekstensi JSON5.
  • Perencana pitakon sing luwih apik. Optimasi count-of-view diaktifake kanthi gawan. Ngilangi nangani kolom sing ora digunakake ing subkueri. Implementasi optimasi push-down sing luwih apik.
  • Added "--unsafe-testing" pilihan kanggo CLI kanggo ngidini sawetara printah mbebayani kayata ".testctrl" digunakake ing testing. Ing mode aman ("--aman"), diijini ".log on" lan ".log off". Dhukungan ditambahake kanggo pemisah "-", kanggo argumentasi sawise pangolahan pilihan dipateni. Ditambahake ": inf" lan ": nan" paramΓ¨ter sing digandhengake karo infinity lan nilai NaN.
  • Jeneng-jeneng fungsi SQL sing ditetepake aplikasi diijini intersect karo tembung kunci CROSS, FULL, INNER, KIRI, NATURAL, OUTER, lan KANAN.
  • Kapabilitas integrity_check PRAGMA sing ditambahi. Ditambahake mriksa kanggo nemtokake nilai NaN ing kolom kanthi kondisi NOT NULL. Ngapikake isi informasi pesen kesalahan.
  • Penambahan sesi ngidini interception saka owah-owahan saka tabel tanpa ROWIDs.
  • Modifier "subsec" wis ditambahake menyang fungsi kanggo nggarap wektu lan tanggal kanggo nggunakake fraksi detik.
  • Suda ambane rekursi standar kanggo array lan obyek JSON saka 2000 dadi 1000.

Kajaba iku, release DuckDB 0.8.0 DBMS wis dibentuk, sing ngembangake varian SQLite, ditambah karo fitur lan optimasi kanggo nindakake pitakon analitis sing nyakup bagean penting saka data sing disimpen, contone, nggabungake kabeh isi tabel utawa nggabungake sawetara. tabel gedhe. Dialek lengkap saka basa SQL diwenehake, kalebu kemampuan tambahan kanggo nangani pitakon sing rumit lan dawa, uga dhukungan kanggo jinis kompleks (susun, struktur, serikat pekerja), eksekusi simultan saka pirang-pirang pitakon, lan eksekusi pitakon langsung saka file ing format CSV, JSON lan Parquet. Sampeyan bisa ngimpor saka PostgreSQL DBMS.

Saliyane kode cangkang saka SQLite, proyek nggunakake parser saka PostgreSQL, dipindhah menyang perpustakaan kapisah, komponen Date Math saka MonetDB, implementasine dhewe saka fungsi jendhela (adhedhasar algoritma Segment Tree Aggregation), prosesor ekspresi biasa. adhedhasar perpustakaan RE2, optimizer pitakon dhewe, mekanisme kontrol MVCC eksekusi tugas simultan (Multi-Version Concurrency Control), uga mesin eksekusi query vectorized adhedhasar algoritma Hyper-Pipelining Query Execution, sing ngidini ngolah set gedhe saka nilai bebarengan ing siji operasi. Kode proyek disebarake miturut lisensi MIT.

Ing versi anyar DuckDB:

  • Nambahake ekspresi anyar "PIVOT" lan "UNPIVOT" kanggo ngowahi baris dadi kolom lan kosok balene.
  • Paralelisasi sing luwih apik nalika ngimpor lan ngekspor data. Kanthi gawan, maca saka file ing format CSV menyang macem-macem stream lan nulis multi-Utas dileksanakake nalika nggunakake Parquet, CSV lan format JSON.
  • Nambahake operator "**" kanggo ngulang direktori kanthi rekursif nalika nemtokake path file (contone Saka "'data/glob/crawl/stackoverflow/**/*.csv';").
  • Dhukungan tambahan kanggo operasi gabungan (JOIN) kanggo data ing wangun deret wektu (irisan nilai parameter ing interval wektu tartamtu), ing endi kritΓ©ria kanggo nggabungake cathetan ora pas, nanging cocog karo nilai. ing lapangan karo wektu (contone, sampeyan bisa gabungke cathetan, wektu kang beda-beda dening ora luwih saka 1 menit).
  • Pemuatan metadata basis data sing ditundha wis ditindakake, sing ndadekake bisa nyepetake peluncuran DBMS kaping pirang-pirang.
  • Ditambahake dhukungan kanggo nyambungake fungsi khusus ing Python.
  • Dhukungan tambahan kanggo API ADBC ​​(Arrow Database Connectivity) kanggo transfer data nggunakake Apache Arrow.
  • Dilaksanakake naleni kanggo integrasi karo kode Swift.
  • Ngganti prilaku operator divisi ("/"), sing saiki nindakake petungan titik ngambang kanthi standar tinimbang operasi integer. Operator anyar "//" wis diusulake kanggo divisi integer. Prilaku lawas bisa bali kanthi nyetel "SET integer_division = true;".
  • Cara akuntansi kanggo cathetan null nalika ngurutake wis diganti saka "NULLS FIRST" dadi "NULLS LAST", i.e. Nilai NULL saiki bakal ditampilake ing pungkasan tinimbang wiwitan dhaptar. Prilaku lawas bisa dibalΓ¨kakΓ© kanthi nyetel "SET default_null_order = 'nulls_first';".

Kajaba iku, proyek CG/SQL sing dikembangake dening Facebook, sing nyedhiyakake generator kode kanggo nggunakake prosedur sing disimpen karo SQLite, bisa dicathet. CG / SQL ngidini sampeyan ngrancang tata cara sing disimpen ing dialek khusus T-SQL (Transact-SQL), sing ngidini sampeyan nelpon fungsi perpustakaan C standar lan ngakses data ing SQLite. Prosedur sing disimpen sing digawe dikompilasi dadi kode C sing nggunakake SQLite C API kanggo nindakake tumindak tartamtu lan ngolah pitakon kompleks. Prosedur sing disimpen sing dikompilasi bisa disambung menyang program C, Java, lan Objective-C. Kode proyek ditulis ing C lan disebarake miturut lisensi MIT.

Source: opennet.ru

Add a comment