Представлен (http://www.mail-archive.com/sqlite-announce@sqlite.org/...) релиз SQLite 3.20.0 (http://sqlite.org/), легковесной СУБД, оформленной в виде подключаемой библиотеки. Код SQLite распространяется как общественное достояние (public domain), т.е. может использоваться без ограничений и безвозмездно в любых целях. Финансовую поддержку разработчиков SQLite осуществляет специально созданный консорциум, в который входят такие компании, как Adobe, Oracle, Mozilla, Bentley и Bloomberg.
Основные изменения (https://sqlite.org/releaselog/3_20_0.html):
- Изменён текст некоторых сообщений об ошибках;
- Изменено форматирование вывода имён столбцов при использовании функций sqlite3_column_name() и sqlite3_column_name16(), которое приведено в соответствие с оформлением вывода в PostgreSQL, MySQL и SQLServer (например, при применении подзапросов имена раньше в зависимости от запроса выводились иногда как table.column, а иногда как column, теперь всегда выводится только column);
- Среди нарушающих совместимость изменений также осуществлён переход внутренних API для подключения расширений на новый интерфейс передачи указателей (https://sqlite.org/bindptr.html);
- Добавлено расширение COMPLETION (https://sqlite.org/completion.html) с реализацией системы автодополнения ввода, срабатывающей по нажатию клавиши Tab;
- Добавлено расширение UNION (https://sqlite.org/unionvtab.html), предоставляющее поддержку сводных виртуальных таблиц, в которых несколько разных таблиц можно представить в виде одной большой объединённой таблицы;
- Добавлено расширение SQLITE_STMT (https://sqlite.org/stmt.html) с реализацией эпонимических (eponymous, таблицы имя которых совпадает с модулем") виртуальных таблиц с информацией о подготовленных выражениях (prepared statement), ассоциированных с соединением к БД;
- Встроенные функции date и time теперь можно использоваться в составе условий CHECK, в выражениях при определении индексов и в составе выражений WHERE в частичных индексах;
- Добавлена PRAGMA-команда secure_delete=FAST, при указании которой включается режим быстрого безопасного удаления данных - в b-tree деревьях содержимое удаляемых элементов обнуляется, но может какое-то время оставаться в списках free-page;
- В интерфейс командной стоки (https://sqlite.org/cli.html) добавлена поддержка автодополнения ввода по нажатию клавиши Tab (можно использовать как readline, ак и linenoise), добавлена команда ".cd", в командах ".schema" и ".tables" обеспечена возможность отображения схем из всех прикреплённых БД, реализована опция "--newlines" для вывода командой ".dump" содержимого без экранирования символов перевода строки и возврата каретки;
- Улучшена работа планировщика запросов:
- При генерации индивидуальных циклов для OR-выражений, не меняющиеся WHERE-блоки теперь вычисляются один раз вне цикла;
- Обеспечена проверка прикреплённых параметров для определения возможности задействования частичных индексов;
- При определении двух возможных планов выполнения запроса, для которых вычислен одинаковый вес, теперь выбирается тот, в котором не используется сортировка;
- При разборе выражений WHERE обработка подзапросов теперь выполняется в самом конце, в надежде, что сработает более простое условие и выполнение подзапроса не потребуется;
- Прекращено применение flattening-оптимизации для подзапросов, в случае использовании LEFT JOIN и чтении данных из виртуальной таблицы, с целью исключить создание автоматических индексов для результата, которые могут замедлить выполнение запроса;
- В утилите sqlite3_analyzer (https://sqlite.org/sqlanalyze.html) обеспечено отображение размера метаданных в страницах btree;
- Внесена порция оптимизаций, который позволили примерно на 2% снизить (https://sqlite.org/cpu.html) нагрузку на CPU.
URL: http://www.mail-archive.com/sqlite-announce@sqlite.org/...
Новость: http://www.opennet.ru/opennews/art.shtml?num=46980