Spec-Zone.ru › SQLite

Значения ограничений в xBestIndex()

int sqlite3_vtab_rhs_value(sqlite3_index_info*, int, sqlite3_value **ppVal);

Этот API может быть использован только внутри метода xBestIndex реализации виртуальной таблицы. Результат вызова этого интерфейса за пределами метода xBestIndex не определен и, вероятно, вреден.

Когда интерфейс sqlite3_vtab_rhs_value(P,J,V) вызывается внутри метода xBestIndex реализации виртуальной таблицы, где P является копией указателя на объект sqlite3_index_info, переданного в xBestIndex, а J — индекс от 0 до P->aConstraint[], эта процедура пытается установить *V в значение правой части этого ограничения, если правая часть известна. Если правая часть неизвестна, то *V устанавливается в NULL. Интерфейс sqlite3_vtab_rhs_value(P,J,V) возвращает SQLITE_OK тогда и только тогда, когда *V установлен в значение. Интерфейс sqlite3_vtab_rhs_value(P,J,V) возвращает SQLITE_NOTFOUND, если правая часть J-го ограничения недоступна. Интерфейс sqlite3_vtab_rhs_value() может вернуть код, отличный от SQLITE_OK или SQLITE_NOTFOUND, если возникнет ошибка.

Интерфейс sqlite3_vtab_rhs_value() обычно успешен только в том случае, если правая часть ограничения — это литеральное значение в исходном SQL-запросе. Если правая часть является выражением или ссылкой на другую колонку или параметр хоста, то sqlite3_vtab_rhs_value() вероятно вернёт SQLITE_NOTFOUND.

У некоторых ограничений, таких как SQLITE_INDEX_CONSTRAINT_ISNULL и SQLITE_INDEX_CONSTRAINT_ISNOTNULL, нет правой части. Для таких ограничений sqlite3_vtab_rhs_value() всегда возвращает SQLITE_NOTFOUND.

Объект sqlite3_value, возвращённый в *V, является защищённым sqlite3_value и остаётся действительным в течение вызова метода xBestIndex. При возвращении из xBestIndex объект sqlite3_value, возвращённый sqlite3_vtab_rhs_value(), автоматически освобождается.

"_rhs_" в имени этой процедуры — это аббревиатура от "Right-Hand Side" (правой части).

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

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

Spec-Zone.ru

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