Вышла СУБД SQLite 3.51

Состоялся релиз легковесной СУБД SQLite 3.51, оформленной в виде подключаемой библиотеки. Исходный код проекта SQLite написан на C, распространяется как общественное достояние (public domain) и может использоваться без ограничений и безвозмездно в любых целях.

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

Основные изменения и доработки в SQLite 3.51:

новые макро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 Tables);

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

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

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

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

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

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

ускорены оконные функции типа BETWEEN 😡 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().

:

Источник: habr.com

0 0 голоса
Рейтинг новости
1
0
Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии