Versiunea SQLite 3.40

A fost publicată lansarea SQLite 3.40, un SGBD ușor conceput ca o bibliotecă de plug-in. Codul SQLite este distribuit în domeniul public, adică. poate fi folosit fără restricții și gratuit pentru orice scop. Sprijinul financiar pentru dezvoltatorii SQLite este oferit de un consorțiu special creat, care include companii precum Adobe, Oracle, Mozilla, Bentley și Bloomberg.

Principalele modificări:

  • Реализована экспериментальная возможность компиляции SQLite в промежуточный код WebAssembly, способный запускаться в web-браузере и пригодный для организации работы с БД из web-приложений на языке JavaScript. Web-разработчикам предоставляется высокоуровневый объектно-ориентированный интерфейс для работы с данными в стиле sql.js или Node.js, обвязка над низкоуровневым C API и API на базе механизма Web Worker, позволяющий создавать асинхронные обработчики, выполняемые в отдельных потоках. Данные, которые web-приложения сохраняют в WASM-версии SQLite, могут быть сохранены на стороне клиента при помощи OPFS (Origin-Private FileSystem) или API window.localStorage.
  • Добавлено расширение recovery, предназначенное для восстановления данных из повреждённых файлов с БД. В интерфейсе командной строки для восстановления используется команда «.recover».
  • Улучшена работа планировщика запросов. Убраны ограничения при использовании индексов с таблицами, насчитывающими более 63 столбцов (ранее при операциях со столбцами, порядковый номер которых превышает 63, индексация не применялась). Улучшена индексация значений, используемых в выражениях. Прекращена загрузка с диска больших строк и блобов при обработке операторов NOT NULL и IS NULL. Исключена материализация представлений для которых полное сканирование выполняется только один раз.
  • В кодовой базе вместо типа «char *» для представления имён файлов задействован отдельный тип sqlite3_filename.
  • Добавлена внутренняя функция sqlite3_value_encoding().
  • Добавлен режим SQLITE_DBCONFIG_DEFENSIVE, запрещающий изменение версии схемы хранения данных.
  • В реализацию параметра «PRAGMA integrity_check» добавлены дополнительные проверки. Например, в таблицы без признака STRICT не должны содержать числовых значений в столбцах с типом TEXT и строковых значений с числами в столбцах с типом NUMERIC. Также добавлена проверка корректности порядка следования строк в таблицах с признаком «WITHOUT ROWID».
  • В выражении «VACUUM INTO» учтены настройки «PRAGMA synchronous».
  • Добавлена сборочная опция SQLITE_MAX_ALLOCATION_SIZE, позволяющая ограничить размер блоков при распределении памяти.
  • Встроенный в SQLite алгоритм генерации псевдослучайных чисел переведён с использования потокового шифра RC4 на Chacha20.
  • Разрешено использование в разных схемах данных индексов с одинаковыми именами.
  • Внесены оптимизации производительности, позволившие снизить нагрузку на CPU примерно на 1% при типовой активности.

Sursa: opennet.ru

Adauga un comentariu