Издадено е издание SQLite 3.51, лекoтежка СУБД, оформена като свързваща библиотека. Кодът на 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“ сега може да предоставя импостер-таблици в режим само за четене (позволяващи достъп до данни в индекса като таблица), работещи с операцията 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
