Новая версия БД SQLite 3.7.9
Доступен релиз БД SQLite 3.7.8, в котором отмечены следующие изменения:- В случае если поисковый запрос через оператор MATCH по виртуальной таблице FTS4 (полнотекстовый поиск) начинается с символа "^" то его действие отныне применяется к началу указанного поля в документе. Изменение может потенциально нарушать совместимость;
- В интерфейс sqlite3_db_status() добавлены опции SQLITE_DBSTATUS_CACHE_HIT и SQLITE_DBSTATUS_CACHE_MISS для оценки эффективности попадания в кэш;
- Удалена поддержка опции SQLITE_ENABLE_STAT2, вместо которой следуют использовать более функциональную сборочную опцию SQLITE_ENABLE_STAT3, включающую накопление статистики для выполняемых запросов, которая может быть использована при выполнении команды ANALYZE и в планировщике запросов;
- Улучшена работа утилиты sqlite3_analyzer, добавлены новые опции "--pageinfo" и "--stats", а также поддержка смешанных БД;
- Расширен интерфейс sqlite3_data_count(), который теперь может быть использован для определения наличия SQLITE_DONE для предварительно формируемых запросов (prepared statement);
- Добавлен признак SQLITE_FCNTL_OVERWRITE, указывающий на то, что при выполнении текущей транзакции файл с БД будет полностью переписан (например, при выполнении VACUUM);
- Проведена оптимизация планировщика запросов, который теперь более оптимально привлекает индексы при определении вхождений в "OR" выражения в блоке "WHERE";
- Добавлена активируемая на этапе сборки опция SQLITE_DIRECT_OVERFLOW_READ, при которой overflow-страницы, размер которых больше стандарного размера страницы b-tree, читаются из файла напрямую, минуя кэш;
- Устранено ограничение на размер точности вывода в опциях форматирования для семейства функций sqlite3_mprintf();
- Устранены ошибки, среди которых:
- невозможность выполнения "ALTER TABLE ... RENAME" для некоторых виртуальных таблиц с кодировкой UTF16;
- проблемы преобразования из ASCII во float;
- неверное вычисление агрегатных выражений с несколькими агрегатными функциями, аргументами которых является сложное выражение, отличающиеся только регистром символов;
- ошибка вычисления прагм page_count и quick_check, если их имена заданы заглавными буквами;
- сбой выполнения VACUUM при активации прагмы count_changes;
- крах из-за ошибки в реализация виртуальных таблиц, проявляющийся при удалении таблицы FTS4 внутри транзакции с последующим выполнением операции SAVEPOINT.
© OpenNet