Релиз СУБД SQLite 3.20.0
7 августа 2017 года
Представлен релиз SQLite 3.20.0, легковесной СУБД, оформленной в виде подключаемой библиотеки. Код SQLite распространяется как общественное достояние (public domain), т.е. может использоваться без ограничений и безвозмездно в любых целях. Финансовую поддержку разработчиков SQLite осуществляет специально созданный консорциум, в который входят такие компании, как Adobe, Oracle, Mozilla, Bentley и Bloomberg.
Основные изменения:
- Добавлено расширение COMPLETION, позволяющее реализовать систему автодополнения частично набранных команд при интерактивном вводе SQL-запросов;
- Добавлено расширение UNION, предоставляющее поддержку сводных виртуальных таблиц, в которых несколько разных таблиц можно представить в виде одной большой объединённой таблицы;
- Добавлено расширение SQLITE_STMT с реализацией виртуальной таблицы sqlite_stmt с информацией о подготовленных выражениях (prepared statement), ассоциированных с соединением к БД;
- Встроенные функции date и time теперь можно использоваться в составе условий CHECK, в выражениях при определении индексов и в составе выражений WHERE в частичных индексах;
- Добавлена PRAGMA-команда secure_delete=FAST, при указании которой включается режим быстрого безопасного удаления данных: содержимое удаляемых элементов обнуляется в b-tree деревьях, но может какое-то время оставаться в списках free-page;
- В интерфейс командной стоки добавлена поддержка автодополнения ввода по нажатию клавиши Tab (можно использовать как readline, так и linenoise), добавлена команда ".cd", в командах ".schema" и ".tables" обеспечена возможность отображения схем из всех прикреплённых БД, реализована опция "--newlines" для вывода командой ".dump" содержимого без экранирования символов перевода строки и возврата каретки;
- Улучшена работа планировщика запросов:
- При генерации индивидуальных циклов для OR-выражений, не меняющиеся WHERE-блоки теперь вычисляются один раз вне цикла;
- Обеспечена проверка прикреплённых параметров для определения возможности задействования частичных индексов;
- При определении двух возможных планов выполнения запроса, для которых вычислен одинаковый вес, теперь выбирается тот, в котором не используется сортировка;
- При разборе выражений WHERE обработка подзапросов теперь выполняется в самом конце, в надежде, что сработает более простое условие и выполнение подзапроса не потребуется;
- Прекращено применение flattening-оптимизации для подзапросов, в случае использовании LEFT JOIN и чтении данных из виртуальной таблицы, с целью исключить создание автоматических индексов для результата, которые могут замедлить выполнение запроса;
- В утилите sqlite3_analyzer обеспечено отображение размера метаданных в страницах btree;
- Изменён текст некоторых сообщений об ошибках;
- Изменено форматирование вывода имён столбцов при использовании функций sqlite3_column_name() и sqlite3_column_name16(), которое приведено в соответствие с оформлением вывода в PostgreSQL, MySQL и SQLServer (например, при применении подзапросов имена раньше в зависимости от запроса выводились иногда как table.column, а иногда как column, теперь всегда выводится только column);
- Среди нарушающих совместимость изменений также осуществлён переход внутренних API для подключения расширений на новый интерфейс передачи указателей;
- Внесена порция оптимизаций, которые позволили примерно на 2% снизить нагрузку на CPU.
Источники[править]
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии[править]
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.