Keluaran DBMS SQLite 3.42 dan DuckDB 0.8.0. CG/SQL dengan pelaksanaan prosedur tersimpan untuk SQLite

Keluaran SQLite 3.42, DBMS ringan yang direka sebagai perpustakaan pemalam, telah diterbitkan. Kod SQLite diedarkan sebagai domain awam, i.e. boleh digunakan tanpa sekatan dan percuma untuk sebarang tujuan. Sokongan kewangan untuk pembangun SQLite disediakan oleh konsortium yang dicipta khas, termasuk syarikat seperti Adobe, Oracle, Mozilla, Bentley dan Bloomberg.

Perubahan utama:

  • Untuk indeks teks penuh FTS5, arahan padam selamat telah dilaksanakan, yang melakukan pembersihan lengkap semua data sisa selepas pemadaman.
  • Fungsi untuk memproses data dalam format JSON kini menyokong sambungan JSON5.
  • Perancang pertanyaan telah dipertingkatkan. Pengoptimuman kiraan paparan didayakan secara lalai. Pemprosesan lajur yang tidak digunakan dalam subkueri telah dihapuskan. Pengoptimuman tolak ke bawah telah dipertingkatkan.
  • Pilihan "--unsafe-testing" telah ditambahkan pada antara muka baris arahan, membenarkan penggunaan arahan berbahaya tertentu, seperti ".testctrl," yang dimaksudkan untuk digunakan semasa ujian. Dalam mod selamat ("--safe"), perintah ".log on" dan ".log off" kini dibenarkan. Sokongan untuk pemisah "--" telah ditambahkan, melumpuhkan pemprosesan pilihan untuk argumen selepas itu pemprosesan pilihan dilumpuhkan. Parameter ":inf" dan ":nan" telah ditambahkan, berkaitan dengan nilai infiniti dan NaN.
  • Nama fungsi SQL yang ditentukan aplikasi dibenarkan untuk bersilang dengan kata kunci CROSS, FULL, INNER, KIRI, NATURAL, OUTER dan KANAN.
  • Keupayaan integrity_check PRAGMA telah diperluaskan. Semakan untuk nilai NaN dalam lajur NOT NULL telah ditambahkan. Mesej ralat telah dipertingkatkan.
  • Tambahan sesi membenarkan pemintasan perubahan daripada jadual tanpa ROWID.
  • Pengubah suai "subsec" telah ditambahkan pada fungsi untuk bekerja dengan masa dan tarikh untuk membolehkan penggunaan pecahan saat.
  • Kedalaman rekursi lalai untuk tatasusunan dan objek JSON telah dikurangkan daripada 2000 kepada 1000.

Selain itu, DuckDB 0.8.0 telah dikeluarkan, mengembangkan varian SQLite dengan keupayaan dan pengoptimuman yang dipertingkatkan untuk menjalankan pertanyaan analitikal yang meliputi sebahagian besar data yang disimpan, seperti mengagregatkan keseluruhan kandungan jadual atau menggabungkan beberapa jadual besar. Dialek SQL lanjutan disediakan, termasuk keupayaan tambahan untuk memproses pertanyaan yang sangat kompleks dan berjalan lama, serta sokongan untuk jenis kompleks (tatasusunan, struktur, kesatuan), pelaksanaan serentak berbilang pertanyaan dan pelaksanaan pertanyaan terus daripada fail CSV, JSON dan Parket. Import daripada PostgreSQL juga disokong.

Sebagai tambahan kepada kod shell SQLite, projek ini menggunakan penghurai PostgreSQL dalam pustaka berasingan, komponen Date Math daripada MonetDB, pelaksanaan tersuai fungsi tetingkap (berdasarkan algoritma Pengagregatan Pokok Segmen), pemproses ungkapan biasa berdasarkan perpustakaan RE2, pengoptimum pertanyaan tersuai, Kawalan Konkurensi Berbilang Versi (MVCC) dan mekanisme pelaksanaan tugasan vektor secara serentak. algoritma Perlaksanaan Pertanyaan Hyper-Pipelining, yang membolehkan pemprosesan serentak set nilai yang besar dalam satu operasi. Kod projek diedarkan di bawah lesen MIT.

Dalam versi baharu DuckDB:

  • Menambah ungkapan baharu "PIVOT" dan "UNPIVOT" untuk menukar baris menjadi lajur dan sebaliknya.
  • Penyelarasan yang lebih baik apabila mengimport dan mengeksport data. Bacaan berbilang benang daripada fail CSV dan tulisan berbilang benang kini disokong secara lalai apabila menggunakan format Parket, CSV dan JSON.
  • Menambahkan operator "**" untuk lelaran direktori rekursif apabila mentakrifkan laluan fail (cth. DARI "'data/glob/crawl/stackoverflow/**/*.csv';").
  • Sokongan tambahan untuk operasi penggabungan (JOIN) untuk data dalam bentuk siri masa (kepingan nilai parameter pada selang masa tertentu), di mana kriteria untuk penggabungan rekod bukanlah padanan tepat, tetapi padanan anggaran nilai dalam medan dengan masa (contohnya, anda boleh menggabungkan rekod yang masanya berbeza tidak lebih daripada 1 minit).
  • Melaksanakan pemuatan malas metadata pangkalan data, yang membolehkan permulaan DBMS dipercepatkan berpuluh kali ganda.
  • Menambah sokongan untuk menyambungkan fungsi yang ditentukan pengguna dalam Python.
  • Menambah sokongan untuk API ADBC ​​(Arrow Database Connectivity) untuk pemindahan data menggunakan Apache Arrow.
  • Ikatan yang dilaksanakan untuk penyepaduan dengan kod Swift.
  • Kelakuan pengendali bahagian ("/") telah diubah. Ia kini melakukan pengiraan titik terapung secara lalai dan bukannya operasi integer. Pengendali baharu, "//," telah diperkenalkan untuk pembahagian integer. Tingkah laku lama boleh dipulihkan dengan menetapkan "SET integer_division=true;."
  • Kaedah pengisihan untuk rekod nol telah ditukar daripada "NULLS FIRST" kepada "NULLS LAST," yang bermaksud bahawa nilai nol kini akan muncul di penghujung senarai dan bukannya permulaan. Tingkah laku sebelumnya boleh dipulihkan dengan menetapkan "SET default_null_order='nulls_first';."

Satu lagi projek yang patut diberi perhatian ialah CG/SQL, projek yang dibangunkan oleh Facebook yang menyediakan penjana kod untuk menggunakan prosedur tersimpan dengan SQLite. CG/SQL membolehkan penciptaan prosedur tersimpan dalam dialek T-SQL (Transact-SQL) khas, yang membolehkan fungsi panggilan daripada perpustakaan C standard dan mengakses data SQLite. Prosedur tersimpan yang dijana disusun ke dalam kod C, yang menggunakan API SQLite C untuk melaksanakan tindakan tertentu dan memproses pertanyaan kompleks. Prosedur tersimpan yang disusun boleh disambungkan ke program yang ditulis dalam C, Java dan Objective-C. Kod projek ditulis dalam C dan diedarkan di bawah lesen MIT.

Sumber: opennet.ru

Beli pengehosan yang boleh dipercayai untuk tapak dengan perlindungan DDoS, pelayan VPS VDS 🔥 Beli pengehosan laman web yang boleh dipercayai dengan perlindungan DDoS, pelayan VPS VDS | ProHoster