aboutsummaryrefslogtreecommitdiff
path: root/src/expr.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2013-04-25 00:57:10 +0000
committerdrh <drh@noemail.net>2013-04-25 00:57:10 +0000
commitaa87f9a68b5ac0305699507574cb2ed074e722b8 (patch)
tree02f0a9ef2946b21e63b3173c9e4fbddc86a47e16 /src/expr.c
parented17167e1dc966bfb871aea8297206991eac2794 (diff)
downloadsqlite-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.c3
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);
}