SQLite 3.51: Нові функції та покращення
SQLite 3.51: Нові функції та покращення
Команда, що стоїть за SQLite, безкоштовним і відкритим самостійним реляційним движком бази даних, випустила SQLite 3.51. Основною зміною стало додавання jsonb_each() та jsonb_tree(). Це нові функції, які віддзеркалюють існуючі JSON утиліти, але повертають дані у бінарному форматі JSONB для масивів та об’єктів.
Зміни в розширеннях та інтерфейсі Tcl
Два відомі розширення, carray та percentile, тепер включені за замовчуванням в амальгамацію. Проте вони залишаються вимкненими, якщо їх явно не увімкнути під час компіляції. Також були покращення інтерфейсу Tcl, що робить сценарії більш гнучкими. Зокрема, додано прапорець -asdict, який представляє рядкові дані у вигляді словників. Це дозволяє визначеним користувачем функціям призупиняти виконання та повертати значення SQL NULL.
Оптимізації командного рядка і обробки даних
У командному рядку команда .timer тепер вимірює час з точністю до мікросекунд. Режими виводу правильно обробляють широкі символи, а .imposter тепер може створювати таблиці-замінники лише для читання, які безпечно взаємодіють з операціями VACUUM.
Додаткові вдосконалення та поліпшення продуктивності
Дрібні, але важливі деталі включають новий параметр --ifexists для безпечнішого управління базами даних і обмеження, що запобігає перевищенню ширини стовпців понад 30,000 символів. Це допомагає зменшити потенційне зловживання.
На боці налаштування продуктивності SQLite 3.51.0 знижує навантаження на ЦП при підтвердженні читаних транзакцій, раніше виявляє порожні об’єднання і пропускає надмірні оцінки скалярних підзапитів. Запити з віконними функціями, особливо ті, що використовують “BETWEEN … FOLLOWING”, отримують вигоду від оптимізованого виконання, що зменшує час обробки великих наборів даних.
Покращення інструментів і підтримка
Внутрішні інструменти SQLite стали більш розумними. Функції printf() та SQL format() більше не показують негативні нульові значення, такі як “-0.00”, а повідомлення про помилки з FTS5 стали більш описовими. Крім того, сувора типізація тепер застосовується до обчислених стовпців, що покращує узгодженість схеми.
Новини для JavaScript/WASM
Крім того, JavaScript/WASM збірки тепер підтримують 64-бітний WebAssembly, тоді як канонічні збірки залишаються 32-бітними. Створення 64-бітної збірки є простим процесом, достатньо виконати команду make. Також було покращено сумісність з VxWorks та посилено захист від корупції бази даних, коли розриваються POSIX advisory locks.
Для детальнішої інформації про всі технічні зміни, будь ласка, відвідайте анонс релізу.




