aboutsummaryrefslogtreecommitdiff
path: root/src/parse.y
diff options
context:
space:
mode:
Diffstat (limited to 'src/parse.y')
-rw-r--r--src/parse.y16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/parse.y b/src/parse.y
index 50bbd0207..7362a0c45 100644
--- a/src/parse.y
+++ b/src/parse.y
@@ -929,10 +929,19 @@ idlist(A) ::= nm(Y).
static Expr *tokenExpr(Parse *pParse, int op, Token t){
Expr *p = sqlite3DbMallocRawNN(pParse->db, sizeof(Expr)+t.n+1);
if( p ){
- memset(p, 0, sizeof(Expr));
+ /* memset(p, 0, sizeof(Expr)); */
p->op = (u8)op;
+ p->affinity = 0;
p->flags = EP_Leaf;
p->iAgg = -1;
+ p->pLeft = p->pRight = 0;
+ p->x.pList = 0;
+ p->pAggInfo = 0;
+ p->pTab = 0;
+ p->op2 = 0;
+#ifndef SQLITE_OMIT_WINDOWFUNC
+ p->pWin = 0;
+#endif
p->u.zToken = (char*)&p[1];
memcpy(p->u.zToken, t.z, t.n);
p->u.zToken[t.n] = 0;
@@ -940,13 +949,16 @@ idlist(A) ::= nm(Y).
if( p->u.zToken[0]=='"' ) p->flags |= EP_DblQuoted;
sqlite3Dequote(p->u.zToken);
}
- if( IN_RENAME_COLUMN ) sqlite3RenameToken(pParse, (void*)p, &t);
#if SQLITE_MAX_EXPR_DEPTH>0
p->nHeight = 1;
#endif
+ if( IN_RENAME_COLUMN ){
+ return (Expr*)sqlite3RenameToken(pParse, (void*)p, &t);
+ }
}
return p;
}
+
}
expr(A) ::= term(A).