RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
Visa 
4274 3200 2453 6495 

Small. Fast. Reliable.
Choose any three.

SQLite C Interface

Определите, обращается ли столбец виртуальной таблицы к UPDATE

int sqlite3_vtab_nochange(sqlite3_context*);

Если sqlite3_vtab_nochange(X) вызван в методе xColumn виртуальной таблицы, то это могло бы возвратить true, если колонка получается как часть операции UPDATE, во время которой не изменится значение столбца. Виртуальное внедрение таблицы может использовать этот намек в качестве разрешения заменить возвращаемым значением, которое менее дорого, чтобы вычислить и что соответствующий метод xUpdate понимает как значение "без изменений".

Если метод xColumn вызывает sqlite3_vtab_nochange() и находит, что колонка не изменяется запросом UPDATE, то метод xColumn может произвольно возвратить, не устанавливая результат, не вызывая ни один из интерфейсов sqlite3_result_xxxxx() interfaces. В этом случае sqlite3_value_nochange(X) вернет true для той же самой колонки в методе xUpdate.

sqlite3_vtab_nochange() является оптимизацией. Виртуальные внедрения таблицы должны продолжить давать правильный ответ, даже если sqlite3_vtab_nochange() должен был всегда возвращать false. В текущем внедрении sqlite3_vtab_nochange() интерфейс всегда вернет false для расширенного UPDATE FROM.