Выпуск СУБД SQLite 3.40
Опубликован релиз SQLite 3.40, легковесной СУБД, оформленной в виде подключаемой библиотеки. Код SQLite распространяется как общественное достояние (public domain), т.е. может использоваться без ограничений и безвозмездно в любых целях. Финансовую поддержку разработчиков SQLite осуществляет специально созданный консорциум, в который входят такие компании, как Adobe, Oracle, Mozilla, Bentley и Bloomberg.
Основные изменения:
Реализована экспериментальная возможность компиляции 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% при типовой активности.
Источник: http://www.opennet.ru/opennews/art.shtml? num=58162
© OpenNet