Обявен е релиз на SQLite 3.53, леката СУБД, оформена като свързваща библиотека. Релизът 3.52 е отменен. Кодът на SQLite се разпространява като обществено достояние (public domain), т.е. може да се използва без ограничения и безвъзмездно за всякакви цели. Финансовата подкрепа на разработчиците на SQLite се осъществява от специално създаден консорциум.
Основни промени:
- Отстранен е проблем, водещ до повреждане на БД. Проблемът присъства от версия SQLite 3.7.0 (2010 г.), засяга БД в режим WAL (Запис преди лог) и се проявява заради състояние на състезание при едновременно отваряне на две или повече свързвания към БД, които опитват да запишат или фиксират транзакции в един и същи екземпляр на БД. Утвърдено е, че причиняващия сблъсък набор от обстоятелства се проявява изключително рядко и е успял да бъде повторен само в специално създаден тестов сценарий.
- В командата «ALTER TABLE» е разрешено премахването на проверки «NOT NULL» и «CHECK».
- Добавена е команда «REINDEX EXPRESSIONS» за пренастройка на индексите на базата на изрази, в които като елемент на индекса се използва функция върху колона или операции върху колони. Командата може да се прилага за възстановяване на остарели индекси.
- Вътре в времевите тригери, създавани с командата «CREATE TEMP TRIGGER» и прилагани към таблици в други БД, е разрешено изменение на таблици или заявки за данни от таблици.
- В командата «VACUUM INTO» при указване на целевия файл чрез URL е реализирано използването на параметъра «reserve=N» за определяне на броя на създаваните резервни копия на БД.
- Реализирани са нови SQL-функции json_array_insert() и jsonb_array_insert() за вмъкване на елементи в JSON масиви.
- Добавена и активирана е в утилитата за команден ред библиотека QRF (Query Result Formatter) за форматиране на резултатите от изпълнението на SQL заявки в удобочитаем вид.
- Промени в утилитата за команден ред:
- Командата «.mode» е значително разширена.
- Подобрено е генерирането на изхода, например, включено е по подразбиране рисуване на рамки, а числовите стойности сега се подравняват вдясно при табулиран изход.
- Осигурено е игнориране на символите «;» след командите.
- Съдържанието на указаните в командния ред файлове с разширения *.sql и *.txt сега се чете и интерпретира като набори от SQL-изрази и dot-команди.
- В команда «.timer» добавена поддръжка на стойността «once» за приложение на таймера само за следващото SQL изразяване.
- В команда «.progress» добавена опция «—timeout S» за принудително прекратяване на SQL изразяването след изтичане на времето.
- В командата «.indexes» променено е поведението на шаблоните, които сега се прилагат към имената на индексите, а не към имената на индексираните таблици.
- Направени са оптимизации в планирача на запитвания, ускоряващи работата със сливането на таблици и операциите ЕXCEPT, INTERSECT и UNION.
- Повишена е производителността на функциите за преобразуване на числата с плаваща запетая в текстово представяне.
- В реализацията, компилирана в междинен код WebAssembly, добавена е VFS «opfs-wl», идентична на VFS «opfs», но използваща API Web Locks за работа с блокировки.
- В утилитата sqlite3_rsync добавена е опция «-p|—port».
- Прекратена е поддръжката на платформата Windows RT.
Източник: opennet.ru
