Updated: 2022/Sep/29
Please read Privacy Policy. It's for your privacy.
SQLITE3_VTAB_RHS_VALUE(3) Library Functions Manual SQLITE3_VTAB_RHS_VALUE(3)
NAME
sqlite3_vtab_rhs_value - constraint values in xBestIndex()
SYNOPSIS
#include <sqlite3.h>
int
sqlite3_vtab_rhs_value(sqlite3_index_info*, int, sqlite3_value **ppVal);
DESCRIPTION
This API may only be used from within the xBestIndex method of a virtual
table implementation. The result of calling this interface from outside
of an xBestIndex method are undefined and probably harmful.
When the sqlite3_vtab_rhs_value(P,J,V) interface is invoked from within
the xBestIndex method of a virtual table implementation, with P being a
copy of the sqlite3_index_info object pointer passed into xBestIndex and
J being a 0-based index into P->aConstraint[], then this routine attempts
to set *V to the value of the right-hand operand of that constraint if
the right-hand operand is known. If the right-hand operand is not known,
then *V is set to a NULL pointer. The sqlite3_vtab_rhs_value(P,J,V)
interface returns SQLITE_OK if and only if *V is set to a value. The
sqlite3_vtab_rhs_value(P,J,V) inteface returns SQLITE_NOTFOUND if the
right-hand side of the J-th constraint is not available. The
sqlite3_vtab_rhs_value() interface can return an result code other than
SQLITE_OK or SQLITE_NOTFOUND if something goes wrong.
The sqlite3_vtab_rhs_value() interface is usually only successful if the
right-hand operand of a constraint is a literal value in the original SQL
statement. If the right-hand operand is an expression or a reference to
some other column or a host parameter, then sqlite3_vtab_rhs_value() will
probably return SQLITE_NOTFOUND.
Some constraints, such as SQLITE_INDEX_CONSTRAINT_ISNULL and
SQLITE_INDEX_CONSTRAINT_ISNOTNULL, have no right-hand operand. For such
constraints, sqlite3_vtab_rhs_value() always returns SQLITE_NOTFOUND.
The sqlite3_value object returned in *V is a protected sqlite3_value and
remains valid for the duration of the xBestIndex method call. When
xBestIndex returns, the sqlite3_value object returned by
sqlite3_vtab_rhs_value() is automatically deallocated.
The "_rhs_" in the name of this routine is an abbreviation for "Right-
Hand Side".
IMPLEMENTATION NOTES
These declarations were extracted from the interface documentation at
line 9971.
SQLITE_API int sqlite3_vtab_rhs_value(sqlite3_index_info*, int, sqlite3_value **ppVal);
SEE ALSO
sqlite3_bind_blob(3), sqlite3_index_info(3), sqlite3_value(3),
SQLITE_INDEX_CONSTRAINT_EQ(3), SQLITE_OK(3)
NetBSD 10.99 August 24, 2023 NetBSD 10.99