SQLite 3.35 включает новые встроенные математические функции и многое другое.

Выпущен релиз SQLite 3.35 и в этом новом выпуске этого менеджера баз данных подсвечиваются добавления математических функций, а также поддержка выражения ALTER TABLE DROP COLUMN для удаления столбцов из таблицы, улучшенные операции и многое другое.

Для тех, кто не знаком с пакетом SQLite это легкая СУБД, разработанная как библиотека плагинов. Код SQLite распространяется как общественное достояние, то есть его можно использовать без ограничений и бесплатно для любых целей.

Основные новые возможности SQLite 3.35

Как упоминалось в начале, в этой новой версии добавлены встроенные математические функции (log2 (), cos (), tg (), exp (), ln (), pow () и т. д.) который можно использовать в SQL. Чтобы включить встроенные функции, требуется сборка с параметром «-DSQLITE_ENABLE_MATH_FUNCTIONS».

Выражение ALTER TABLE DROP COLUMN теперь поддерживает удаление столбцов из таблицы. и удалите данные, ранее сохраненные в этом столбце.

Реализация операции UPSERT (добавить или изменить), который позволяет использовать такие выражения, как «ВСТАВИТЬ НА КОНФЛИКТЕ НЕ НИЧЕГО / ОБНОВЛЕНИЕ», чтобы игнорировать ошибку или выполнять обновление вместо вставки, если невозможно добавить данные с помощью «ВСТАВИТЬ» (например, если запись, вместо ВСТАВКИ можно выполнить ОБНОВЛЕНИЕ).

В новой версии разрешено указывать несколько блоков «В КОНФЛИКТЕ«, Которые будут обрабатываться по порядку. В последнем блоке «ON CONFLICT» разрешено не указывать параметр определения конфликта для использования «DO UPDATE».

Операции DELETE, INSERT и UPDATE поддерживают выражение RETURNING, которые можно использовать для отображения содержимого удаленной, вставленной или измененной записи. Например, «вставить в ... возвращаемый идентификатор» вернет идентификатор добавленной строки, а «обновить ... установить цену = цена * 1.10 возвращаемая цена» вернет значение обновленной цены.

Для обобщенных табличных выражений (Common Table Expression, CTE), которые позволяют использовать временные именованные наборы результатов, с помощью оператора WITH, заданного оператором, одобрен выбор режимов «MATERIALIZED» и «NOT MATERIALIZED».

  1. «MATERIALIZED» означает кэширование запроса, указанного в представлении, в отдельной физической таблице с последующим извлечением данных из этой таблицы.
  2. А с "НЕ МАТЕРИАЛИЗОВАНО" повторные запросы будут выполняться каждый раз при доступе к представлению. Первоначально для SQLite по умолчанию использовалось значение «НЕ МАТЕРИАЛИЗИРОВАННЫЙ», но теперь он был изменен на «МАТЕРИАЛИЗОВАННЫЙ» для CTE, используемых более одного раза.

Из других изменений которые выделяются из этой новой версии:

  • Снижено потребление памяти при выполнении операций VACUUM для баз данных, содержащих очень большие значения с типами TEXT или BLOB.
  • Проделана работа по увеличению производительности оптимизатора и планировщика запросов.
  • Оптимизация была добавлена ​​при использовании функций min и max с выражением «IN».
  • Ускорено выполнение оператора EXISTS.
  • Реализовано расширение подзапросов выражений UNION ALL, используемых в JOIN.
  • Индекс, используемый для выражений IS NOT NULL.
  • Преобразование «x IS NULL» и «x IS NOT NULL» в FALSE или TRUE было предусмотрено для столбцов с флагом «NOT NULL».
  • Проверка внешнего ключа в UPDATE пропускается, если операция не изменяет столбцы, связанные с внешним ключом.
  • Перемещение частей предложения WHERE в подзапросы, содержащие оконные функции, разрешено, если эти части ограничены работой с константами и копиями выражений предложения "PARTITION BY", используемых в оконных функциях.

Изменения в интерфейсе командной строки:

  • Добавлена ​​команда ".filectrl data_version".
  • Команды «.once» и «.output» добавили поддержку передачи вывода в вызываемый контроллер с использованием безымянных каналов («|»).
  • Команда «.stats» добавила аргументы «stmt» и «vmstep» для отображения статистики по счетчикам и выражениям виртуальных машин.

В конце концов если вам интересно узнать об этом больше об этой новой версии SQLite вы можете проверить подробности перейдя по следующей ссылке.


Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Будьте первым, чтобы комментировать

Оставьте свой комментарий

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

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.