diff options
author | danielk1977 <danielk1977@noemail.net> | 2004-05-27 09:28:41 +0000 |
---|---|---|
committer | danielk1977 <danielk1977@noemail.net> | 2004-05-27 09:28:41 +0000 |
commit | c572ef7fcd5a400d78317cd8a77ee684b0136c0b (patch) | |
tree | 51c1fe83d5f062b040934866af51402b62a2db5d /src/expr.c | |
parent | f44795013f44c78f54143a2612a5910831a5f9f8 (diff) | |
download | sqlite-c572ef7fcd5a400d78317cd8a77ee684b0136c0b.tar.gz sqlite-c572ef7fcd5a400d78317cd8a77ee684b0136c0b.zip |
Various bugfixes. 68 Test cases still fail. (CVS 1471)
FossilOrigin-Name: 67a140cf78d99e38ccd94751c4f8ead1a2b96859
Diffstat (limited to 'src/expr.c')
-rw-r--r-- | src/expr.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/expr.c b/src/expr.c index 2058e8acd..20cd58f49 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.129 2004/05/27 03:12:54 drh Exp $ +** $Id: expr.c,v 1.130 2004/05/27 09:28:42 danielk1977 Exp $ */ #include "sqliteInt.h" #include <ctype.h> @@ -423,6 +423,7 @@ int sqlite3ExprIsConstant(Expr *p){ return 0; case TK_NULL: case TK_STRING: + case TK_BLOB: case TK_INTEGER: case TK_FLOAT: case TK_VARIABLE: @@ -1039,6 +1040,7 @@ int sqlite3ExprType(Expr *p){ while( p ) switch( p->op ){ case TK_CONCAT: case TK_STRING: + case TK_BLOB: return SQLITE_AFF_TEXT; case TK_AS: @@ -1105,6 +1107,7 @@ void sqlite3ExprCode(Parse *pParse, Expr *pExpr){ case TK_REM: op = OP_Remainder; break; case TK_FLOAT: op = OP_Real; break; case TK_STRING: op = OP_String; break; + case TK_BLOB: op = OP_HexBlob; break; default: break; } switch( pExpr->op ){ @@ -1128,6 +1131,11 @@ void sqlite3ExprCode(Parse *pParse, Expr *pExpr){ sqlite3VdbeDequoteP3(v, -1); break; } + case TK_BLOB: { + sqlite3VdbeOp3(v, op, 0, 0, pExpr->token.z+1, pExpr->token.n-1); + sqlite3VdbeDequoteP3(v, -1); + break; + } case TK_NULL: { sqlite3VdbeAddOp(v, OP_String, 0, 0); break; |