12 листопада 2008 року вийшов SQLite 3.6.5, у якому виправлено роботу лічильників змінених рядків після застосування оптимізації truncate.
Проблема стосувалася роботи інтерфейсів sqlite3_changes та sqlite3_total_changes, а також прагми count_changes. Після застосування оптимізації truncate, яка дозволяє швидко видаляти всі записи з таблиці, лічильники змінених рядків не оновлювалися належним чином, повертаючи невірні значення. Виправлення гарантує, що після виконання операції очищення API коректно відображає кількість фактично видалених записів.
Розробникам, які використовують SQLite у своїх застосунках, рекомендується переглянути логіку обробки результатів запитів, що використовують truncate. Після виконання операції очищення тестової таблиці варто звірити повідомлену кількість змінених рядків із очікуваними даними, щоб переконатися у коректності роботи лічильників та уникнути логічних помилок у коді застосунку.
Корекція лічильників змінених рядків у SQLite 3.6.5
Коректна робота лічильників змінених рядків у базах даних є критичною для логування та аудиту операцій. Невірні дані про кількість оброблених записів можуть призвести до помилок у бізнес-логіці застосунків, що базуються на результатах виконання SQL-запитів.
Практичний крок: Перегляньте логіку обробки результатів запитів у ваших застосунках, що використовують SQLite. Замовте у Softline перевірку коду та оптимізацію роботи з базою даних, щоб уникнути логічних помилок та забезпечити надійність обробки даних.
Використані джерела
- sqlite.org (sqlite.org)