Spec-Zone.ru › SQLite

Определить, предназначен ли доступ к виртуальному столбцу для UPDATE

int sqlite3_vtab_nochange(sqlite3_context*);

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

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

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

См. также списки Объектов, Констант и Функций.

SQLite is in the Public Domain.
https://sqlite.org/c3ref/vtab_nochange.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API