Rilis SQLite 3.40

Rilis SQLite 3.40, DBMS ringan yang dirancang sebagai pustaka plug-in, telah dipublikasikan. Kode SQLite didistribusikan di domain publik, mis. dapat digunakan tanpa batasan dan gratis untuk tujuan apa pun. Dukungan keuangan untuk pengembang SQLite disediakan oleh konsorsium yang dibuat khusus, yang mencakup perusahaan seperti Adobe, Oracle, Mozilla, Bentley, dan Bloomberg.

Perubahan besar:

  • Mengimplementasikan kemampuan eksperimental untuk mengkompilasi SQLite menjadi kode WebAssembly perantara yang dapat berjalan di browser web dan cocok untuk mengatur pekerjaan dengan database dari aplikasi web dalam bahasa JavaScript. Pengembang web disediakan dengan antarmuka berorientasi objek tingkat tinggi untuk bekerja dengan data dalam gaya sql.js atau Node.js, membungkus API C tingkat rendah, dan API berdasarkan mekanisme Pekerja Web yang memungkinkan Anda untuk membuat penangan asinkron yang berjalan di utas terpisah. Data yang disimpan aplikasi web dalam versi WASM dari SQLite dapat disimpan di sisi klien menggunakan OPFS (Origin-Private FileSystem) atau API window.localStorage.
  • Ekstensi pemulihan telah ditambahkan, dirancang untuk memulihkan data dari file yang rusak dari database. Antarmuka baris perintah menggunakan perintah ".recover" untuk memulihkan.
  • Peningkatan kinerja perencana kueri. Pembatasan dihapus saat menggunakan indeks dengan tabel dengan lebih dari 63 kolom (sebelumnya, pengindeksan tidak diterapkan untuk operasi dengan kolom yang nomor urutnya melebihi 63). Peningkatan pengindeksan nilai yang digunakan dalam ekspresi. Berhenti memuat string dan gumpalan besar dari disk saat memproses operator NOT NULL dan IS NULL. Materialisasi tampilan yang dikecualikan yang pemindaian penuh dilakukan hanya sekali.
  • Di basis kode, alih-alih menggunakan tipe "char *", tipe sqlite3_filename terpisah digunakan untuk mewakili nama file.
  • Menambahkan fungsi internal sqlite3_value_encoding().
  • Menambahkan mode SQLITE_DBCONFIG_DEFENSIVE, yang melarang perubahan versi skema penyimpanan.
  • Pemeriksaan tambahan telah ditambahkan ke penerapan parameter "PRAGMA integrity_check". Misalnya, tabel tanpa atribut STRICT tidak boleh berisi nilai numerik di kolom TEXT dan nilai string dengan angka di kolom NUMERIC. Ditambahkan juga pengecekan kebenaran urutan baris pada tabel dengan tanda β€œTANPA ROWID”.
  • Ekspresi "VACUUM INTO" mematuhi pengaturan "sinkronisasi PRAGMA".
  • Menambahkan opsi build SQLITE_MAX_ALLOCATION_SIZE untuk membatasi ukuran blok saat mengalokasikan memori.
  • Algoritme untuk menghasilkan angka pseudo-random yang dibangun ke dalam SQLite telah dipindahkan dari menggunakan stream cipher RC4 ke Chacha20.
  • Diperbolehkan menggunakan indeks dengan nama yang sama dalam skema data yang berbeda.
  • Pengoptimalan kinerja telah dilakukan untuk mengurangi beban pada CPU sekitar 1% selama aktivitas biasa.

Sumber: opennet.ru

Tambah komentar