Avoid unnecessary duplication of SQL parameter names.
FossilOrigin-Name: e704e8690ae35decc9769a45cf8d519ccad8b79d
diff --git a/src/expr.c b/src/expr.c
index 4cd2f24..be2f4d7 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -2345,7 +2345,9 @@
assert( pExpr->u.zToken[0]!=0 );
sqlite3VdbeAddOp2(v, OP_Variable, pExpr->iColumn, target);
if( pExpr->u.zToken[1]!=0 ){
- sqlite3VdbeChangeP4(v, -1, pExpr->u.zToken, P4_TRANSIENT);
+ assert( pExpr->u.zToken[0]=='?'
+ || strcmp(pExpr->u.zToken, pParse->azVar[pExpr->iColumn-1])==0 );
+ sqlite3VdbeChangeP4(v, -1, pParse->azVar[pExpr->iColumn-1], P4_STATIC);
}
break;
}
diff --git a/src/vdbe.c b/src/vdbe.c
index eea6aba..439fe72 100644
--- a/src/vdbe.c
+++ b/src/vdbe.c
@@ -988,6 +988,7 @@
Mem *pVar; /* Value being transferred */
assert( pOp->p1>0 && pOp->p1<=p->nVar );
+ assert( pOp->p4.z==0 || pOp->p4.z==p->azVar[pOp->p1-1] );
pVar = &p->aVar[pOp->p1 - 1];
if( sqlite3VdbeMemTooBig(pVar) ){
goto too_big;