aboutsummaryrefslogtreecommitdiff
path: root/src/expr.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2019-09-02 22:13:06 +0000
committerdrh <drh@noemail.net>2019-09-02 22:13:06 +0000
commit4fc836546e035fc18a4bf66c3bb895dc5af10fa0 (patch)
treed806aaf5104964a109129e683f452d79168fd1a3 /src/expr.c
parent229ae1ae72d3693e675703be2b986f62fb536cb1 (diff)
downloadsqlite-4fc836546e035fc18a4bf66c3bb895dc5af10fa0.tar.gz
sqlite-4fc836546e035fc18a4bf66c3bb895dc5af10fa0.zip
Fix a bug introduced earlier today by check-in [88833a9c2849c959].
Ticket [29f635e0af71234b] FossilOrigin-Name: 6e7b4527d32cc1be0294614b9d7363d4b59cf654a954b86515b3f6888975ce73
Diffstat (limited to 'src/expr.c')
-rw-r--r--src/expr.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/expr.c b/src/expr.c
index ac3d1c8e2..949758b10 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -3132,9 +3132,12 @@ static void sqlite3ExprCodeIN(
}
bLhsReal = sqlite3ExprAffinity(pExpr->pLeft)==SQLITE_AFF_REAL;
for(ii=0; ii<pList->nExpr; ii++){
- r2 = sqlite3ExprCodeTemp(pParse, pList->a[ii].pExpr, &regToFree);
if( bLhsReal ){
+ r2 = regToFree = sqlite3GetTempReg(pParse);
+ sqlite3ExprCode(pParse, pList->a[ii].pExpr, r2);
sqlite3VdbeAddOp4(v, OP_Affinity, r2, 1, 0, "E", P4_STATIC);
+ }else{
+ r2 = sqlite3ExprCodeTemp(pParse, pList->a[ii].pExpr, &regToFree);
}
if( regCkNull && sqlite3ExprCanBeNull(pList->a[ii].pExpr) ){
sqlite3VdbeAddOp3(v, OP_BitAnd, regCkNull, r2, regCkNull);