Публикувана версия SQLite 3.51, лекотежка СУБД, предназначена за интегриране в библиотека. Кодът на SQLite се разпространява като обществено достояние (public domain), т.е. може да се използва без ограничения и безплатно за всякакви цели. Финансовата подкрепа на разработчиците на SQLite се осъществява от специално създаден консорциум.
Основни промени:
- Добавени са нови JSON-функции jsonb_each() и jsonb_tree(), които се различават от предишно наличните функции json_each() и json_tree() по това, че връщат стойност JSONB за данни с тип масив или обект.
- Кодът на разширенията carray и percentile е преместен в основния файл «sqlite3.c» със вграден код на SQLite. По подразбиране данните на добавките са деактивирани и изискват задаване на параметри при компилация «-DSQLITE_ENABLE_CARRAY» и «-DSQLITE_ENABLE_PERCENTILE».
- Подобрен е интерфейсът за използване на SQLite в скриптове на Tcl. В командата «eval» е добавен флаг «-asdict» за представяне на низове с използване на тип «dict» вместо «array». Добавена е възможност за прекратяване на потребителски функции за връщане на стойност NULL.
- Промени в интерфейса на командния ред:
- Точността на командата «.timer» е увеличена до микросекунди;
- В режимите на форматиране «box» и «column» е реализирана поддръжка на символи с двойна ширина;
- Командата «.imposter» вече може да предоставя в режим само за четене imposter-таблици (позволяват достъп до данни в индекса като таблица), които работят с операцията VACUUM и не изискват стартиране с флаг «—unsafe-testing»;
- В инструментариума sqlite и командата «.open» е добавена опция «—ifexists».
- Максималната ширина на реда, зададена с командата «.width», е ограничена до 30000 символа.
- Внесени са оптимизации на производителността:
- Натоварването на CPU при фиксиране на транзакции, ограничени с достъп на четене, е намалено;
- Подобреното определяне на операции за сливане (JOIN), които не връщат редове, тъй като една или повече таблици не съдържат редове;
- Изключено е изпълнението на скалярни подзаявки, които не влияят на резултата;
- Ускорена е работата на оконните функции в запитвания с израз «BETWEEN 😡 FOLLOWING AND :y FOLLOWING» и много голяма стойност «:y».
- Добавена е прагма «PRAGMA wal_checkpoint=NOOP» и функцията API sqlite3_wal_checkpoint() за фиксиране на промените в WAL-журнал.
- В API са добавени функции sqlite3_set_errmsg() и sqlite3_db_status64().
- В JavaScript/WASM версията на SQLite е реализирана поддръжка за компилиране в WebAssembly представяне с 64-битови указатели.
- Повишена устойчивост на базата данни при приложения, които освобождават POSIX-блокировки чрез извикване на close().
- Подобрена поддръжка на платформата VxWorks.
Източник: opennet.ru
