1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-09 14:21:03 +03:00

Transform OP_HexBlob and OP_String8 to OP_Blob and OP_String the first time they are executed. (CVS 1492)

FossilOrigin-Name: 3225de8902b0e7e60c4d9f3a5ef51bc74f57d364
This commit is contained in:
danielk1977
2004-05-29 11:24:50 +00:00
parent bd26f925e0
commit 0f69c1e3ec
12 changed files with 117 additions and 148 deletions

View File

@@ -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.131 2004/05/28 08:21:06 drh Exp $
** $Id: expr.c,v 1.132 2004/05/29 11:24:50 danielk1977 Exp $
*/
#include "sqliteInt.h"
#include <ctype.h>
@@ -867,7 +867,7 @@ int sqlite3ExprResolveIds(
/* Evaluate the expression and insert it into the temp table */
sqlite3ExprCode(pParse, pE2);
sqlite3VdbeOp3(v, OP_MakeKey, 1, 0, affStr, P3_STATIC);
sqlite3VdbeAddOp(v, OP_String, 0, 0);
sqlite3VdbeAddOp(v, OP_String8, 0, 0);
sqlite3VdbeAddOp(v, OP_PutStrKey, pExpr->iTable, 0);
}
}
@@ -1107,7 +1107,7 @@ 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_String; break;
case TK_STRING: op = OP_String8; break;
case TK_BLOB: op = OP_HexBlob; break;
default: break;
}
@@ -1138,7 +1138,7 @@ void sqlite3ExprCode(Parse *pParse, Expr *pExpr){
break;
}
case TK_NULL: {
sqlite3VdbeAddOp(v, OP_String, 0, 0);
sqlite3VdbeAddOp(v, OP_String8, 0, 0);
break;
}
case TK_VARIABLE: {
@@ -1259,7 +1259,7 @@ void sqlite3ExprCode(Parse *pParse, Expr *pExpr){
addr = sqlite3VdbeCurrentAddr(v);
sqlite3VdbeAddOp(v, OP_NotNull, -1, addr+4); /* addr + 0 */
sqlite3VdbeAddOp(v, OP_Pop, 2, 0);
sqlite3VdbeAddOp(v, OP_String, 0, 0);
sqlite3VdbeAddOp(v, OP_String8, 0, 0);
sqlite3VdbeAddOp(v, OP_Goto, 0, addr+7);
sqlite3VdbeOp3(v, OP_MakeKey, 1, 0, affStr, P3_STATIC); /* addr + 4 */
sqlite3VdbeAddOp(v, OP_Found, pExpr->iTable, addr+7);
@@ -1318,7 +1318,7 @@ void sqlite3ExprCode(Parse *pParse, Expr *pExpr){
if( pExpr->pRight ){
sqlite3ExprCode(pParse, pExpr->pRight);
}else{
sqlite3VdbeAddOp(v, OP_String, 0, 0);
sqlite3VdbeAddOp(v, OP_String8, 0, 0);
}
sqlite3VdbeResolveLabel(v, expr_end_label);
break;