SQLite 3.50.0: нова версія компактної вбудованої СУБД
SQLite 3.50.0: нова версія компактної вбудованої СУБД
29 травня відбувся випуск SQLite 3.50.0 – компактної вбудованої СУБД, написаної мовою C і поширюваної як суспільне надбання. Нова версія SQLite включає низку важливих змін та покращень, що розширюють функціональність цієї популярної бази даних.
Основні зміни у SQLite 3.50.0
Розробники SQLite представили кілька ключових нововведень та виправлень у цьому релізі:
- Додано функцію
sqlite3_setlk_timeout()
, що встановлює окремий таймаут, відмінний відsqlite3_busy_timeout()
. - Обмеження
SQLITE_DBCONFIG_ENABLE_COMMENTS
дещо послаблено, тож коментарі завжди дозволені при читанні схеми з існуючої таблиціsqlite_schema
. Коментарі блокуються лише в новому SQL. - Додано вбудовані SQL-функції
unistr()
таunistr_quote()
. - У перетвореннях
%Q
та%q
у вбудованій функціїprintf()
прапор альтернативної форми#
перетворює керуючі символи в беквари-ескейпи, придатні дляunistr()
.
Покращення в консольній утиліті та взаємодії з базою даних
SQLite 3.50.0 також містить низку покращень щодо роботи з даними:
- У консольній утиліті заборонено прямий вивід більшості керуючих символів.
- У виводі команди
.dump
використовується нова SQL-функціяunistr()
для кодування спеціальних символів (якщо не вимкнено режим--escape
). - Покращено форматування складних часткових індексів у виводі команди
.schema --indent
. - Вдосконалено утиліту синхронізації БД
sqlite3_rsync
.
Виправлення помилок та оптимізації в SQLite
Крім того, у новій версії SQLite вирішено кілька важливих проблем:
- Забезпечено дотримання обмеження JSON5, згідно з яким за символом
\0
не повинна слідувати цифра. - Виправлено помилку в функції
json_group_object(LABEL,VALUE)
. - Оптимізовано функції
jsonb_set()
таjsonb_replace()
. - Покращено підтримку збирання в Cygwin, MinGW та подібних системах, а також у Termux.
- Виправлено друкарські помилки в документації та коментарях до вихідного коду.
- Внесено різні покращення продуктивності.
Зміни для JavaScript/WASM
Важливим є виправлення давньої помилки в JavaScript/WASM: виправлено розрахунок контрольної суми імені файлу в VFS OPFS SAHPool. Через це бази даних, створені в цій VFS у версії 3.50.0+, не можуть бути прочитані старішими версіями VFS. Однак SQLite 3.50.0 залишається зворотньо сумісною з існуючими базами даних, створеними в старіших версіях.
Нова версія SQLite 3.50.0 – це значне оновлення, яке розширює функціональні можливості цієї компактної бази даних та робить її ще більш потужною для розробників. Детальніше про всі зміни можна дізнатися на офіційному сайті SQLite або в офіційному журналі випуску.