Представлен (https://www.mail-archive.com/sqlite-announce@sqlite.org...) релиз SQLite 3.24.0 (http://sqlite.org/), легковесной СУБД, оформленной в виде подключаемой библиотеки. Код SQLite распространяется как общественное достояние (public domain), т.е. может использоваться без ограничений и безвозмездно в любых целях. Финансовую поддержку разработчиков SQLite осуществляет специально созданный консорциум, в который входят такие компании, как Adobe, Oracle, Mozilla, Bentley и Bloomberg. Основные изменения (https://sqlite.org/releaselog/3_24_0.html):
- Добавлена поддержка операции UPSERT (http://sqlite.org/lang_UPSERT.html) (добавить-или-модифицировать), реализованной через выражение "INSERT ... ON CONFLICT DO NOTHING/UPDATE". Операция позволяет игнорировать ошибку или выполнить обновление вместо вставки, в случае невозможности добавления данных через "INSERT", например, из-за нарушения условий уникальности или недопустимости значения одного из полей (т.е. если запись уже существует, вместо INSERT можно выполнить UPDATE). Реализованный синтаксис аналогичен операции UPSERT в PostgreSQL;
- В CLI-интерфейсе с использованием ASCII-графики реализован наглядный отчёт с анализам плана выполнения запроса, выводимый при выполнении команды "EXPLAIN QUERY PLAN (https://sqlite.org/eqp.html)" (CLI автоматически преобразует raw-вывод команды в наглядную форму). Также расширена информация, выдаваемая в raw-выводе "EXPLAIN QUERY PLAN", например, добавлены сведения о связях между элементами плана выполнения запроса.
- В CLI-интерфейс добавлена новая команда ".dbconfig". В команду ".backup" добавлена опция "--append" для дополнения вместо перезаписи. Обеспечена интерпретация строк, начинающихся с символа '#', как комментариев;
- В таблицах r-tree обеспечена (https://sqlite.org/rtree.html#auxcol) возможность определения вспомогательных столбцов для хранения произвольных данных;
- В API для языка Си добавлены функции для определения поддержки заданных ключевых (sqlite3_keyword_count(), sqlite3_keyword_name(), sqlite3_keyword_check()), а также использования динамических строк
на основе объекта sqlite3_str;
- В выражении "ALTER TABLE" обеспечена возможность использования аргументов "true" и "false" в секции DEFAULT;
- Добавлена включаемая на этапе сборки оптимизация сортировки ссылок (включается при указании SQLITE_ENABLE_SORTER_REFERENCES).
URL: https://www.mail-archive.com/sqlite-announce@sqlite.org...
Новость: https://www.opennet.ru/opennews/art.shtml?num=48737