Spec-Zone.ru › SQLite

Изменить параметр EXPLAIN для подготовленного оператора

int sqlite3_stmt_explain(sqlite3_stmt *pStmt, int eMode);

Интерфейс sqlite3_stmt_explain(S,E) изменяет параметр EXPLAIN для подготовленного оператора S. Если E равно нулю, то S становится обычным подготовленным оператором. Если E равно 1, то S ведет себя так, как будто его текст SQL начинался с "EXPLAIN". Если E равно 2, то S ведет себя так, как будто его текст SQL начинался с "EXPLAIN QUERY PLAN".

Вызов sqlite3_stmt_explain(S,E) может привести к повторной подготовке оператора S. SQLite пытается избежать повторной подготовки, но она может потребоваться при первом переходе в режим EXPLAIN или EXPLAIN QUERY PLAN.

Из-за возможной необходимости повторной подготовки вызов sqlite3_stmt_explain(S,E) завершится с кодом SQLITE_ERROR, если S не может быть повторно подготовлен, потому что он был создан с помощью sqlite3_prepare() вместо более новых интерфейсов sqlite3_prepare_v2() или sqlite3_prepare_v3() и, следовательно, не имеет сохраненного текста SQL для повторной подготовки.

Изменение параметра explain для подготовленного оператора не изменяет исходный текст SQL для оператора. Следовательно, если исходный текст SQL начинался с EXPLAIN или EXPLAIN QUERY PLAN, но был вызван sqlite3_stmt_explain(S,0) для преобразования оператора в обычный оператор, ключевые слова EXPLAIN или EXPLAIN QUERY PLAN все равно будут отображаться в выводе sqlite3_sql(S), хотя оператор теперь работает как обычный оператор SQL.

Эта функция возвращает SQLITE_OK, если режим explain был успешно изменен, или код ошибки, если режим explain не удалось изменить. Режим explain не может быть изменен, пока оператор активен. Поэтому рекомендуется вызывать sqlite3_reset(S) непосредственно перед вызовом sqlite3_stmt_explain(S,E).

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

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

Spec-Zone.ru

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