|Title:||The great OP_If bug|
|Last Modified:||2009-11-16 12:51:04|
|Version Found In:||3.6.16|
The code generator for EXISTS and SELECT expressions was storing the
number of the register that holds the result in the Expr.iColumn field.
However, Expr.iColumn is a 16-bit signed integer. Hence, for very complex
statements that use more than 32768 registers prior to running the EXISTS
or SELECT, the register number will overflow and possibly result in using
a negative number for an array index and causing a subsequent malfunction
Solutions to this problem include:
drh added on 2009-10-30 14:05:23:
Fixed by check-in [7253f8fad1] on the trunk.