]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Avoid unnecessary duplication of SQL parameter names.
authordrh <drh@noemail.net>
Wed, 1 Jun 2011 19:16:06 +0000 (19:16 +0000)
committerdrh <drh@noemail.net>
Wed, 1 Jun 2011 19:16:06 +0000 (19:16 +0000)
FossilOrigin-Name: e704e8690ae35decc9769a45cf8d519ccad8b79d

manifest
manifest.uuid
src/expr.c
src/vdbe.c

index b747a1409fd18fc4c15157f5b5ccc9d82ddaff13..9e6489e647ad15369be5319b7d314b3bb8a1767f 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Refactor\sthe\sSQL\sparameter\sprocessing\sso\sthat\sparameter\snames\sfor\svalues\nthat\sare\soptimized\sout\sof\sthe\sprepare\sstatement\sare\snot\sforgotten.
-D 2011-06-01T18:15:55.858
+C Avoid\sunnecessary\sduplication\sof\sSQL\sparameter\snames.
+D 2011-06-01T19:16:06.364
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in 11dcc00a8d0e5202def00e81732784fb0cc4fe1d
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -131,7 +131,7 @@ F src/complete.c dc1d136c0feee03c2f7550bafc0d29075e36deac
 F src/ctime.c 7deec4534f3b5a0c3b4a4cbadf809d321f64f9c4
 F src/date.c 1548fdac51377e4e7833251de878b4058c148e1b
 F src/delete.c cecc926c70783452f3e8eb452c728291ce1a0b21
-F src/expr.c c33584bcf4ee011e28ff74e4dcef02da1dc09dd6
+F src/expr.c ab46ab0f0c44979a8164ca31728d7d10ae5e8106
 F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb
 F src/fkey.c a43ba8a005fb5efd1deeee06853e3a6120d46a91
 F src/func.c b9117e40975245b8504cf3625d7e321d8d4b63dc
@@ -236,7 +236,7 @@ F src/update.c 5bcb56e5c7380a2eecb0e71891dbd4ad7437748f
 F src/utf.c d83650c3ea08f7407bd9d0839d9885241c209c60
 F src/util.c 0f33bbbdfcc4a2d8cf20c3b2a16ffc3b57c58a70
 F src/vacuum.c 05513dca036a1e7848fe18d5ed1265ac0b32365e
-F src/vdbe.c 103827f560cdc48b1d455ce4d4b3573dd88f9ab4
+F src/vdbe.c 2ec37637fa70ab0c694d8327ee5dcedbc0621524
 F src/vdbe.h d9c6123384189dc37d27beac1bf44688aa75b6cb
 F src/vdbeInt.h ad84226cc0adcb1185c22b70696b235a1678bb45
 F src/vdbeapi.c 0eeadc75e44a30efd996d6af6e7c5a2488e35be8
@@ -938,7 +938,7 @@ F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
 F tool/split-sqlite3c.tcl d9be87f1c340285a3e081eb19b4a247981ed290c
 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
-P a0ae314c7f41d0146a9ee1adc576cd977219a378
-R d99e1065a540709b7ea760de89dbcfd0
+P b3aaf715b60b8a338cc6c92dad1ead4a3f7146a3
+R 018490a374b5cf414074a5a4bbd3de70
 U drh
-Z ce5ce2791f47aa05a4daaafded206f56
+Z dcf10ad87997753baf45956f9011da61
index 4597483a7ec93d696bb339d55f15e350a59ce6da..de373954a32e3c3ad2787130138654ad90bb16db 100644 (file)
@@ -1 +1 @@
-b3aaf715b60b8a338cc6c92dad1ead4a3f7146a3
\ No newline at end of file
+e704e8690ae35decc9769a45cf8d519ccad8b79d
\ No newline at end of file
index 4cd2f24551f39e47551fb6f8e1ae32b8ab29c832..be2f4d7c6666f4bb274a97aedf9b0935a146d6d6 100644 (file)
@@ -2345,7 +2345,9 @@ int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target){
       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;
     }
index eea6aba70e6bd7424492e8fe672088e0ec9d3c19..439fe72540c311ac315c507e91020797ed18b9be 100644 (file)
@@ -988,6 +988,7 @@ case OP_Variable: {            /* out2-prerelease */
   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;