Релиз СУБД SQLite 3.20.0

Представлен релиз SQLite 3.20.0, легковесной СУБД, оформленной в виде подключаемой библиотеки. Код SQLite распространяется как общественное достояние (public domain), т.е. может использоваться без ограничений и безвозмездно в любых целях. Финансовую поддержку разработчиков SQLite осуществляет специально созданный консорциум, в который входят такие компании, как Adobe, Oracle, Mozilla, Bentley и Bloomberg.

Основные изменения:

  • Добавлено расширение COMPLETION с реализацией системы автодополнения ввода, срабатывающей по нажатию клавиши Tab;
  • Добавлено расширение UNION, предоставляющее поддержку сводных виртуальных таблиц, в которых несколько разных таблиц можно представить в виде одной большой объединённой таблицы;
  • Добавлено расширение SQLITE_STMT с реализацией эпонимической (eponymous, имя таблицы совпадает с именем модуля) виртуальной таблицы с информацией о подготовленных выражениях (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.

Источник: OpenNet

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Яндекс.Метрика

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: