aboutsummaryrefslogtreecommitdiff
path: root/src/parse.y
diff options
context:
space:
mode:
Diffstat (limited to 'src/parse.y')
-rw-r--r--src/parse.y8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/parse.y b/src/parse.y
index a7e07b9a7..991a93269 100644
--- a/src/parse.y
+++ b/src/parse.y
@@ -14,7 +14,7 @@
** the parser. Lemon will also generate a header file containing
** numeric codes for all of the tokens.
**
-** @(#) $Id: parse.y,v 1.224 2007/05/08 17:54:44 danielk1977 Exp $
+** @(#) $Id: parse.y,v 1.225 2007/05/10 10:46:57 danielk1977 Exp $
*/
// All token codes are small integers with #defines that begin with "TK_"
@@ -766,6 +766,7 @@ expr(A) ::= expr(W) between_op(N) expr(X) AND expr(Y). [BETWEEN] {
A = sqlite3Expr(TK_IN, X, 0, 0);
if( A ){
A->pList = Y;
+ sqlite3ExprSetHeight(A);
}else{
sqlite3ExprListDelete(Y);
}
@@ -776,6 +777,7 @@ expr(A) ::= expr(W) between_op(N) expr(X) AND expr(Y). [BETWEEN] {
A = sqlite3Expr(TK_SELECT, 0, 0, 0);
if( A ){
A->pSelect = X;
+ sqlite3ExprSetHeight(A);
}else{
sqlite3SelectDelete(X);
}
@@ -785,6 +787,7 @@ expr(A) ::= expr(W) between_op(N) expr(X) AND expr(Y). [BETWEEN] {
A = sqlite3Expr(TK_IN, X, 0, 0);
if( A ){
A->pSelect = Y;
+ sqlite3ExprSetHeight(A);
}else{
sqlite3SelectDelete(Y);
}
@@ -796,6 +799,7 @@ expr(A) ::= expr(W) between_op(N) expr(X) AND expr(Y). [BETWEEN] {
A = sqlite3Expr(TK_IN, X, 0, 0);
if( A ){
A->pSelect = sqlite3SelectNew(0,pSrc,0,0,0,0,0,0,0);
+ sqlite3ExprSetHeight(A);
}else{
sqlite3SrcListDelete(pSrc);
}
@@ -807,6 +811,7 @@ expr(A) ::= expr(W) between_op(N) expr(X) AND expr(Y). [BETWEEN] {
if( p ){
p->pSelect = Y;
sqlite3ExprSpan(p,&B,&E);
+ sqlite3ExprSetHeight(A);
}else{
sqlite3SelectDelete(Y);
}
@@ -818,6 +823,7 @@ expr(A) ::= CASE(C) case_operand(X) case_exprlist(Y) case_else(Z) END(E). {
A = sqlite3Expr(TK_CASE, X, Z, 0);
if( A ){
A->pList = Y;
+ sqlite3ExprSetHeight(A);
}else{
sqlite3ExprListDelete(Y);
}