Phát hành DBMS SQLite 3.31 với sự hỗ trợ cho các cột được tạo

được phát hành giải phóng SQLite 3.31.0, một DBMS nhẹ được thiết kế dưới dạng thư viện trình cắm thêm. Mã SQLite được phân phối dưới dạng miền công cộng, tức là. có thể được sử dụng không hạn chế và miễn phí cho bất kỳ mục đích nào. Hỗ trợ tài chính cho các nhà phát triển SQLite được cung cấp bởi một tập đoàn được thành lập đặc biệt, bao gồm các công ty như Adobe, Oracle, Mozilla, Bentley và Bloomberg.

Chính thay đổi:

  • Đã thêm hỗ trợ cột được tạo (cột được tính toán), cho phép bạn xác định một cột khi bạn tạo bảng có giá trị được tính toán tự động dựa trên nội dung của cột khác. Các cột được tạo có thể là ảo (được tạo nhanh chóng với mỗi lần truy cập) hoặc được lưu trữ trong cơ sở dữ liệu (được lưu mỗi khi các cột liên quan được cập nhật). Nội dung của các cột được tạo chỉ khả dụng ở chế độ đọc (các thay đổi chỉ được thực hiện thông qua sửa đổi giá trị trong cột khác liên quan đến phép tính). Ví dụ:

    TẠO BẢNG t1(
    một KHÓA CHÍNH XÁC INTEGER,
    b INT,
    c VĂN BẢN,
    d INT LUÔN ĐƯỢC TẠO NHƯ (a*abs(b)) ẢO,
    e VĂN BẢN LUÔN ĐƯỢC TẠO DƯỚI (chất nền(c,b,b+1)) ĐƯỢC LƯU TRỮ
    );

  • Đã thêm PRAGMA lược đồ đáng tin cậy, cài đặt SQLITE_DBCONFIG_TRUSTED_SCHema và tùy chọn lắp ráp “-DSQLITE_TRUSTED_SCHema”, cho phép bạn kiểm soát việc đưa vào bảo vệ chống lại các cuộc tấn công thông qua sửa đổi lược đồ dữ liệu trong cơ sở dữ liệu. Bảo vệ tích cực hạn chế việc sử dụng các hàm SQL (không được đánh dấu SQLITE_INNOCUOUS) trong trình kích hoạt, dạng xem, câu lệnh CHECK và DEFAULT, chỉ mục và các cột được tạo. Việc sử dụng bảng ảo trong trình kích hoạt và chế độ xem cũng bị vô hiệu hóa trừ khi bảng ảo được khai báo rõ ràng bằng cờ SQLITE_VTAB_INNOCUOUS.
  • Đã triển khai khả năng gán thuộc tính cho các hàm SQL được xác định trong ứng dụng SQLITE_INNOCUOUS (các chức năng vô hại không phụ thuộc vào tham số bên ngoài và không thể được sử dụng để thực hiện các hành động độc hại) và SQLITE_TRỰC TIẾP (chỉ gọi trực tiếp trong truy vấn SQL, không có khả năng sử dụng trong trình kích hoạt, dạng xem và sơ đồ cấu trúc dữ liệu);
  • Đã thêm mô-đun uuid với việc triển khai các chức năng xử lý UUID (RFC-4122);
  • Đã thêm PRAGMA cứng_heap_limit và chức năng sqlite3_hard_heap_limit64() để kiểm soát kích thước heap tối đa;
  • Trong PRAGMA danh sách hàm thêm đầu ra về loại, thuộc tính và số lượng đối số của từng hàm;
  • Đến bảng ảo DBSTAT thêm chế độ tổng hợp dữ liệu;
  • sqlite3_open_v2() triển khai tùy chọn SQLITE_OPEN_NOFOLLOW, cho phép bạn vô hiệu hóa việc mở các liên kết tượng trưng;
  • Để tranh luận PATH, được chuyển đến các hàm JSON, thêm hỗ trợ cho ký hiệu mảng “#-N”;
  • Trong hệ thống phân phối bộ nhớ nhìn sang một bên hỗ trợ cho hai nhóm bộ nhớ riêng biệt đã được triển khai, mỗi nhóm có thể được sử dụng để phân bổ các khối có kích thước khác nhau (việc phân tách cho phép bạn mở rộng việc sử dụng hệ thống xem xét, đồng thời giảm kích thước bộ đệm được phân bổ cho mỗi kết nối từ 120 xuống 48 KB);
  • Hỗ trợ PRAGMA đã bị ngừng Legacy_file_format, không tương thích với VACUUM, các cột được tạo và chỉ mục giảm dần (hỗ trợ định dạng cũ có thể được trả về thông qua cờ SQLITE_DBCONFIG_LEGACY_FILE_FORMAT trong sqlite3_db_config()).

Nguồn: opennet.ru

Thêm một lời nhận xét