Qualification descriptor

A qualification descriptor, or MI_AM_QUAL_DESC structure, describes the conditions in the WHERE clause of an SQL statement.

Use the VTI mi_scan_quals() function to obtain a pointer to the qualification descriptor from the scan descriptor.

The following accessor functions extract information from a qualification descriptor.
Accessor function Return value
mi_qual_boolop() The operator type (AND or OR) of a qualification that is a complex expression
mi_qual_column() The position that the column argument to a qualification function occupies within a row
mi_qual_commuteargs() MI_TRUE if the argument list begins with a constant rather than a column value
mi_qual_const_depends_hostvar() MI_TRUE if a constant argument to a qualification function acquires a value at run time from a host variable
mi_qual_const_depends_outer() MI_TRUE if the value of a particular constant argument can change each rescan
mi_qual_constant() The runtime value of the constant argument to a qualification function
mi_qual_constant_nohostvar() The value specified in the WHERE clause for the constant argument to a qualification function
mi_qual_constant_typeid() The data type of the constant argument to a qualification function
mi_qual_constisnull() MI_TRUE if the value of a constant argument to a qualification function is NULL
mi_qual_constisnull_nohostvar() MI_TRUE if the WHERE clause specifies a NULL value as the constant argument to a qualification function
mi_qual_funcid() The routine identifier of a qualification function
mi_qual_funcname() The name of a qualification function
mi_qual_handlenull() MI_TRUE if the qualification function accepts NULL arguments
mi_qual_issimple() MI_TRUE if the qualification contains one function rather than a complex expression
mi_qual_needoutput() MI_TRUE if the qualification function supplies an output parameter value

Obtain and set a pointer to the output-parameter value with mi_qual_setoutput().

mi_qual_negate() MI_TRUE if the qualification includes the operator NOT
mi_qual_nparams() The number of parameters in the qualification descriptor
mi_qual_nquals() The number of nested qualifications in a complex expression, or 0 for a simple qualification that contains no Boolean operators
mi_qual_qual() Pointer to one qualification in a complex qualification descriptor or to the only qualification
mi_qual_value() One of the following possible values:
  • MI_VALUE_NOT_EVALUATED until the qualification returns a result
  • MI_VALUE_TRUE if the qualification returns MI_TRUE
  • MI_VALUE_FALSE if the qualification returns MI_FALSE

Set the results in the qualification descriptor with mi_qual_setvalue(). Reset the qualification descriptor to MI_VALUE_NOT_EVALUATED with mi_init_am_qual().

The following accessor functions set values in the descriptor.
Accessor function Value set
mi_qual_setvalue() The result from running the qualification operator or function
mi_qual_setoutput() A host-variable value
mi_qual_setreopt() An indicator to force reoptimization between rescans
mi_eval_am_qual() MI_TRUE if the current row satisfies the current qualification
mi_init_am_qual() MI_VALUE_NOT_EVALUATED to reset all results fields in a qualification descriptor