*** DRAFT ***

SQLite Requirement Matrix Details
vtab_rhs_value.html

Index Summary Markup Original


R-60223-49197-47442-02320-11696-61949-31575-11697 tcl slt th3 src

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.

tcl/vtabrhs1.test:25

/* IMP: R-60223-49197 */
# EVIDENCE-OF: R-60223-49197 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.

R-37799-62852-34454-60527-13943-51938-08001-65488 tcl slt th3 src

If the right-hand operand is not known, then *V is set to a NULL pointer.

tcl/vtabrhs1.test:59

/* IMP: R-37799-62852 */
# EVIDENCE-OF: R-37799-62852 If the right-hand operand is not known,
# then *V is set to a NULL pointer.

R-19933-32160-25808-62001-60118-10554-34487-09495 tcl slt th3 src

The sqlite3_vtab_rhs_value(P,J,V) interface returns SQLITE_OK if and only if *V is set to a value.

src/where.c:4079

/* IMP: R-19933-32160 */
# EVIDENCE-OF: R-19933-32160 The sqlite3_vtab_rhs_value(P,J,V) interface
# returns SQLITE_OK if and only if *V is set to a value.

R-36424-56542-13143-39138-22363-38156-30287-29133 tcl slt th3 src

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.

src/where.c:4080

/* IMP: R-36424-56542 */
# EVIDENCE-OF: R-36424-56542 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.

R-30545-25046-21416-05477-19453-52596-39209-12513 tcl slt th3 src

The sqlite3_vtab_rhs_value() interface can return an result code other than SQLITE_OK or SQLITE_NOTFOUND if something goes wrong.

src/where.c:4065

/* IMP: R-30545-25046 */
# EVIDENCE-OF: R-30545-25046 The sqlite3_vtab_rhs_value() interface can
# return an result code other than SQLITE_OK or SQLITE_NOTFOUND if
# something goes wrong.

R-45933-31655-55413-62604-46715-25205-52668-25930 tcl slt th3 src

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.

/* IMP: R-45933-31655 */
# EVIDENCE-OF: R-45933-31655 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.

R-52199-53720-48820-63672-32555-08461-14999-59627 tcl slt th3 src

The sqlite3_value object returned in *V is a protected sqlite3_value and remains valid for the duration of the xBestIndex method call.

/* IMP: R-52199-53720 */
# EVIDENCE-OF: R-52199-53720 The sqlite3_value object returned in *V is
# a protected sqlite3_value and remains valid for the duration of the
# xBestIndex method call.

R-14553-25174-23160-33731-13209-59828-40060-12886 tcl slt th3 src

When xBestIndex returns, the sqlite3_value object returned by sqlite3_vtab_rhs_value() is automatically deallocated.

src/where.c:1429   tcl/vtabrhs1.test:69

/* IMP: R-14553-25174 */
# EVIDENCE-OF: R-14553-25174 When xBestIndex returns, the sqlite3_value
# object returned by sqlite3_vtab_rhs_value() is automatically
# deallocated.