![]() |
|
|||
WebMoney: WMZ Z294115950220 WMR R409981405661 WME E134003968233 |
Visa 4274 3200 2453 6495 |
Если 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.
Choose any three.
SQLite C Interface
Определите, обращается ли столбец виртуальной таблицы к UPDATE
int sqlite3_vtab_nochange(sqlite3_context*);