SQLite 3.51

good-penguin.png

4 ноября состоялся выпуск 3.51.0 компактной встраиваемой СУБД на языке C. Код SQLite распространяется как общественное достояние (public domain).

Список изменений:

  • Новые макроcы в sqlite3.h: SQLITE_SCM_BRANCH, SQLITE_SCM_TAGS, SQLITE_SCM_DATETIME.

  • Добавлены варианты функций json_each() и json_tree() для возврата в формате JSONB: jsonb_each() и jsonb_tree().

  • Расширения carray и percentile добавлены в состав амальгамации. По умолчанию отключены, для их включения нужно собирать с аргументами -DSQLITE_ENABLE_CARRAY и -DSQLITE_ENABLE_PERCENTILE соответственно.

  • Обновлен программный интерфейс для языка Tcl: добавлен флаг -asdict для команды eval (установка данных строк в тип словаря вместо массива);, а также пользовательские функции могут возвращать SQL NULL через выполнение break.

  • Улучшен интерфейс командной строки (CLI):

    • увеличена точность команды .timer до микросекунд;

    • добавлена поддержка символов двойной ширины в режимы форматирования box и column;

    • команда .imposter позволяет читать содержимое индексов как таблиц (т.н. imposter-таблицы);

    • добавлен аргумент --ifexists для команды .open;

    • ширина колонок, задаваемых через команду .width, ограничена до 30000 символов.

  • Оптимизации производительности:

    • уменьшена нагрузка на CPU для транзакций чтения;

    • раннее обнаружение JOIN с таблицами без возвращаемых строк;

    • скалярные подзапросы, которые не влияют на общее выражение, будут исключены при выполнении;

    • ускорены оконные функции типа BETWEEN :x FOLLOWING AND :y FOLLOWING для больших :y;

  • Добавлена PRAGMA-команда wal_checkpoint=NOOP.

  • Добавлен NOOP режим (через SQLITE_CHECKPOINT_NOOP) для вызова функции sqlite3_wal_checkpoint_v2().

  • В API добавлена новая функция sqlite3_set_errmsg().

  • Добавлена функция sqlite3_db_status64(), для функций sqlite3_db_status64() и sqlite3_db_status() добавлено значение опции SQLITE_DBSTATUS_TEMPBUF_SPILL.

  • Добавлена функция sqlite3changeset_apply_v3() в расширение session.

  • Для SQL-функций format() и printf() добавлена возможность избежания отрицательных нулевых значений типа -0.0. Для этого нужно использовать флаг # и не использовать флаг +, т.е. писать конструкции типа %#f.

  • Улучшено описание ошибок, возвращаемых FTS5.

  • STRICT будет применён для вычисляемых колонок.

  • Улучшена поддержка VxWorks.

  • Добавлена поддержка 64-битного WASM.

  • Улучшено сопротивление поломки файла БД в случае снятия POSIX блокировок при использовании close().

>>> Release notes на sqlite.org

©  Linux.org.ru