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;