diff options
author | drh <drh@noemail.net> | 2017-05-25 00:08:48 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2017-05-25 00:08:48 +0000 |
commit | f43ce0b4450965b62e24479db4f21b1917e6bc6d (patch) | |
tree | 7969c44db10ad8b4f2de0df156b54a5400ff9110 /src/expr.c | |
parent | 831265f96291a195281c088947d550a5a9a54c79 (diff) | |
download | sqlite-f43ce0b4450965b62e24479db4f21b1917e6bc6d.tar.gz sqlite-f43ce0b4450965b62e24479db4f21b1917e6bc6d.zip |
The TK_IF_NULL_ROW expression node must be treated as a variable that
references the table Expr.iTable.
Proposed fix for ticket [7fde638e94287d2c].
FossilOrigin-Name: 77fc23013cebc7797985864b91d78db5d0e2469511732044ebfaf02b891c979a
Diffstat (limited to 'src/expr.c')
-rw-r--r-- | src/expr.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/expr.c b/src/expr.c index 8fc727fcd..201dedcc8 100644 --- a/src/expr.c +++ b/src/expr.c @@ -1740,10 +1740,12 @@ static int exprNodeIsConstant(Walker *pWalker, Expr *pExpr){ testcase( pExpr->op==TK_AGG_COLUMN ); if( pWalker->eCode==3 && pExpr->iTable==pWalker->u.iCur ){ return WRC_Continue; - }else{ - pWalker->eCode = 0; - return WRC_Abort; } + /* Fall through */ + case TK_IF_NULL_ROW: + testcase( pExpr->op==TK_IF_NULL_ROW ); + pWalker->eCode = 0; + return WRC_Abort; case TK_VARIABLE: if( pWalker->eCode==5 ){ /* Silently convert bound parameters that appear inside of CREATE |