diff options
author | drh <drh@noemail.net> | 2013-04-25 00:57:10 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2013-04-25 00:57:10 +0000 |
commit | aa87f9a68b5ac0305699507574cb2ed074e722b8 (patch) | |
tree | 02f0a9ef2946b21e63b3173c9e4fbddc86a47e16 /src/expr.c | |
parent | ed17167e1dc966bfb871aea8297206991eac2794 (diff) | |
download | sqlite-aa87f9a68b5ac0305699507574cb2ed074e722b8.tar.gz sqlite-aa87f9a68b5ac0305699507574cb2ed074e722b8.zip |
Make sure the affinity and datatype of sub-subqueries are initialized
prior to subqueries as the latter relies on the former.
FossilOrigin-Name: 39b4e6ff9316cc78ea88349091e195b8104d1e9e
Diffstat (limited to 'src/expr.c')
-rw-r--r-- | src/expr.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/expr.c b/src/expr.c index ae6a1dec1..a974c5a61 100644 --- a/src/expr.c +++ b/src/expr.c @@ -1214,6 +1214,7 @@ static int selectNodeIsConstant(Walker *pWalker, Select *NotUsed){ } static int exprIsConst(Expr *p, int initFlag){ Walker w; + memset(&w, 0, sizeof(w)); w.u.i = initFlag; w.xExprCallback = exprNodeIsConstant; w.xSelectCallback = selectNodeIsConstant; @@ -3428,8 +3429,8 @@ void sqlite3ExprCodeConstants(Parse *pParse, Expr *pExpr){ Walker w; if( pParse->cookieGoto ) return; if( OptimizationDisabled(pParse->db, SQLITE_FactorOutConst) ) return; + memset(&w, 0, sizeof(w)); w.xExprCallback = evalConstExpr; - w.xSelectCallback = 0; w.pParse = pParse; sqlite3WalkExpr(&w, pExpr); } |