SQLite 3.53: Нове оновлення для бази даних

SQLite 3.53: Нове оновлення для бази даних

SQLite 3.53 тепер доступний, вирішуючи помилку пошкодження бази даних, пов’язану з обробкою скидання WAL. Оновлення також впроваджує широкий спектр змін у компонентах SQL, CLI, планувальника запитів та API.

Покращення в форматуванні результатів запитів

Ключовою новинкою є Форматувач результатів запитів, який тепер використовують для форматування результатів у CLI. Відповідно до приміток до випуску, це покращує дисплей, автоматично вирівнюючи числові значення у табличному виході вправо, а також змінює стандартний інтерактивний вихід CLI на обрамлені таблиці Unicode для підвищення читабельності. Режим пакетної обробки зберігає старий формат виходу для забезпечення сумісності.

Розширення підтримки мови SQL у SQLite 3.53

SQLite 3.53 також розширює підтримку мови SQL. Тепер оператор ALTER TABLE може додавати або видаляти обмеження NOT NULL та CHECK. Новий оператор REINDEX EXPRESSIONS реконструює індекси виразів. Тіла тригерів TEMP тепер можуть запитувати або змінювати таблиці в основній схемі, а VACUUM INTO підтримує встановлення резервної суми через параметр імені файлу URI. Також додано дві нові SQL функції: json_array_insert() та jsonb_array_insert().

Покращення для користувачів CLI

Для користувачів CLI команда .mode отримала значні покращення. Тепер кінець команд з крапкою і без символів ігнорується. Виправлено проблеми з .testcase та .check. Тепер не пусті .sql або .txt файли, що подаються в командному рядку, інтерпретуються як SQL або dot-command скрипти.

Додаткові функції у SQLite 3.53

До інших функцій належать одноразовий режим для .timer, новий параметр тайм-ауту для .progress та оновлення .indexes, щоб шаблон відповідав назвам індексів, а не назвам таблиць. Крім того, конверсії з плаваючої коми в текст були перероблені для покращення продуктивності, а округлення тепер за замовчуванням виконується до 17 значущих цифр замість 15.

Оновлення планувальника запитів у SQLite 3.53

Планувальник запитів також отримав кілька оновлень. SQLite тепер послідовно використовує сортування та злиття для EXCEPT, INTERSECT та UNION, оскільки цей підхід зазвичай швидший за обробку на основі хеш-таблиць. Випуск також покращує вибір порядку з’єднання для великих з’єднань зірки, розширює оптимізацію EXISTS-to-JOIN, вдосконалює обробку omit-noop-join та збільшує можливості для оптимізації з одним індексом у певних сценаріях GROUP BY та ORDER BY.

Нова функція самовідновлення індексів у SQLite 3.53

Завершуючи огляд, варто зазначити, що нова функція самовідновлення індексів адресує проблему застарілих індексів виразів. Крім того, SQLite також вводить REINDEX EXPRESSIONS для безпосереднього відновлення індексів виразів за потреби.

Для отримання більш детальної інформації, відвідайте чанджлог.