Rilis DBMS SQLite 3.31 dengan dukungan untuk kolom yang dihasilkan

diterbitkan melepaskan SQLite 3.31.0, DBMS ringan yang dirancang sebagai perpustakaan plug-in. Kode SQLite didistribusikan sebagai domain publik, mis. dapat digunakan tanpa batasan dan gratis untuk tujuan apa pun. Dukungan finansial untuk pengembang SQLite disediakan oleh konsorsium yang dibentuk khusus, yang mencakup perusahaan seperti Adobe, Oracle, Mozilla, Bentley dan Bloomberg.

Utama perubahan:

  • Ditambahkan dukungan kolom yang dihasilkan (kolom terhitung), yang memungkinkan Anda menentukan kolom saat Anda membuat tabel yang nilainya dihitung secara otomatis berdasarkan konten kolom lain. Kolom yang dihasilkan dapat berupa virtual (dihasilkan dengan cepat dengan setiap akses) atau disimpan dalam database (disimpan setiap kali kolom terkait diperbarui). Isi kolom yang dihasilkan hanya tersedia dalam mode baca (perubahan hanya dilakukan melalui modifikasi nilai di kolom lain yang terlibat dalam penghitungan). Misalnya:

    BUAT TABEL t1(
    KUNCI UTAMA INTEGER,
    b INT,
    c TEKS,
    d INT DIHASILKAN SELALU SEBAGAI (a*abs(b)) VIRTUAL,
    e TEKS DIHASILKAN SELALU SEBAGAI (substr(c,b,b+1)) DISIMPAN
    );

  • Ditambahkan PRAGMA skema_terpercaya, pengaturan SQLITE_DBCONFIG_TRUSTED_SCHEMA dan opsi perakitan "-DSQLITE_TRUSTED_SCHEMA", yang memungkinkan Anda mengontrol penyertaan perlindungan terhadap serangan melalui modifikasi skema data dalam database. Perlindungan aktif membatasi penggunaan fungsi SQL (tidak ditandai SQLITE_INNOCUOUS) dalam pemicu, tampilan, pernyataan CHECK dan DEFAULT, indeks, dan kolom yang dihasilkan. Penggunaan tabel virtual dalam pemicu dan tampilan juga dinonaktifkan kecuali tabel virtual dideklarasikan secara eksplisit dengan flag SQLITE_VTAB_INNOCUOUS.
  • Menerapkan kemampuan untuk menetapkan properti ke fungsi SQL yang ditentukan dalam aplikasi SQLITE_INNOCUOUS (fungsi tidak berbahaya yang tidak bergantung pada parameter eksternal dan tidak dapat digunakan untuk melakukan tindakan jahat) dan SQLITE_DIRECTONLY (hanya panggilan langsung dalam kueri SQL, tanpa kemungkinan menggunakan pemicu, tampilan, dan diagram struktur data);
  • Modul yang ditambahkan uuid dengan pelaksanaan fungsi pemrosesan UUID (RFC-4122);
  • Ditambahkan PRAGMA hard_heap_limit dan fungsi sqlite3_hard_heap_limit64() untuk mengontrol ukuran tumpukan maksimum;
  • Di PRAGMA daftar_fungsi menambahkan keluaran tipe, properti, dan jumlah argumen dari setiap fungsi;
  • Ke tabel virtual DBSTAT ditambahkan mode agregasi data;
  • sqlite3_open_v2() mengimplementasikan opsi SQLITE_OPEN_NOFOLLOW, yang memungkinkan Anda menonaktifkan pembukaan tautan simbolik;
  • Untuk argumen PATH, diteruskan ke fungsi JSON, menambahkan dukungan untuk notasi array β€œ#-N”;
  • Dalam sistem distribusi memori melihat ke samping dukungan untuk dua kumpulan memori terpisah telah diterapkan, yang masing-masing dapat digunakan untuk mengalokasikan blok dengan ukuran berbeda (pemisahan memungkinkan Anda memperluas penggunaan sistem lookaside, sekaligus mengurangi ukuran buffer yang dialokasikan untuk setiap koneksi dari 120 menjadi 48 KB);
  • Dukungan PRAGMA telah dihentikan format_file_warisan, yang tidak kompatibel dengan VACUUM, kolom yang dihasilkan, dan indeks menurun (dukungan format lama dapat dikembalikan melalui flag SQLITE_DBCONFIG_LEGACY_FILE_FORMAT di sqlite3_db_config()).

Sumber: opennet.ru

Tambah komentar