aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2014-08-29 12:29:39 +0000
committerdrh <drh@noemail.net>2014-08-29 12:29:39 +0000
commit53932ce8fa8d095cd61b44aa1244af78a955ccf3 (patch)
treefa4c04fc4c3f115a3ad6e4a74e85e017728b9a9c /src
parentae914d783a2db649b1b4505cf7314e5dafa7a199 (diff)
downloadsqlite-53932ce8fa8d095cd61b44aa1244af78a955ccf3.tar.gz
sqlite-53932ce8fa8d095cd61b44aa1244af78a955ccf3.zip
Avoid an unnecessary OP_Move operation for expression subqueries.
FossilOrigin-Name: 462f42af52f146fd328ddcbbe78c8444ef7bd2c3
Diffstat (limited to 'src')
-rw-r--r--src/expr.c1
-rw-r--r--src/select.c2
2 files changed, 2 insertions, 1 deletions
diff --git a/src/expr.c b/src/expr.c
index fabdae2fc..1a2465f7e 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -1912,6 +1912,7 @@ int sqlite3CodeSubselect(
sqlite3SelectDestInit(&dest, 0, ++pParse->nMem);
if( pExpr->op==TK_SELECT ){
dest.eDest = SRT_Mem;
+ dest.iSdst = dest.iSDParm;
sqlite3VdbeAddOp2(v, OP_Null, 0, dest.iSDParm);
VdbeComment((v, "Init subquery result"));
}else{
diff --git a/src/select.c b/src/select.c
index 932874d8f..44b9cd034 100644
--- a/src/select.c
+++ b/src/select.c
@@ -829,7 +829,7 @@ static void selectInnerLoop(
if( pSort ){
pushOntoSorter(pParse, pSort, p, regResult);
}else{
- sqlite3ExprCodeMove(pParse, regResult, iParm, 1);
+ assert( regResult==iParm );
/* The LIMIT clause will jump out of the loop for us */
}
break;