aboutsummaryrefslogtreecommitdiff
path: root/src/expr.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/expr.c')
-rw-r--r--src/expr.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/src/expr.c b/src/expr.c
index 5377a2daa..e8dfc2baf 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -12,7 +12,7 @@
** This file contains routines used for analyzing expressions and
** for generating VDBE code that evaluates expressions in SQLite.
**
-** $Id: expr.c,v 1.157 2004/08/21 17:54:45 drh Exp $
+** $Id: expr.c,v 1.158 2004/08/31 13:45:12 drh Exp $
*/
#include "sqliteInt.h"
#include <ctype.h>
@@ -1147,8 +1147,9 @@ void sqlite3ExprCode(Parse *pParse, Expr *pExpr){
case TK_RSHIFT: op = OP_ShiftRight; break;
case TK_REM: op = OP_Remainder; break;
case TK_FLOAT: op = OP_Real; break;
- case TK_STRING: op = OP_String8; break;
+ case TK_STRING: op = OP_String8; break;
case TK_BLOB: op = OP_HexBlob; break;
+ case TK_CONCAT: op = OP_Concat; break;
default: op = 0; break;
}
switch( pExpr->op ){
@@ -1209,16 +1210,11 @@ void sqlite3ExprCode(Parse *pParse, Expr *pExpr){
case TK_BITOR:
case TK_SLASH:
case TK_LSHIFT:
- case TK_RSHIFT: {
- sqlite3ExprCode(pParse, pExpr->pLeft);
- sqlite3ExprCode(pParse, pExpr->pRight);
- sqlite3VdbeAddOp(v, op, 0, 0);
- break;
- }
+ case TK_RSHIFT:
case TK_CONCAT: {
sqlite3ExprCode(pParse, pExpr->pLeft);
sqlite3ExprCode(pParse, pExpr->pRight);
- sqlite3VdbeAddOp(v, OP_Concat8, 2, 0);
+ sqlite3VdbeAddOp(v, op, 0, 0);
break;
}
case TK_UMINUS: {