From: drh Date: Tue, 29 Dec 2020 15:06:26 +0000 (+0000) Subject: Do not set the P3 parameter on OP_RowCell when copying an index btree, as X-Git-Tag: version-3.35.0~161 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a06eafc8fc70b8d6eaef429e75f603518aba7948;p=thirdparty%2Fsqlite.git Do not set the P3 parameter on OP_RowCell when copying an index btree, as P3 is not used in that case. FossilOrigin-Name: eef070a4aadf02a845d0ed00767be049d3b76e811e24797a116776fa836d1b03 --- diff --git a/manifest b/manifest index 28ec51ccf2..8a1fc0f31f 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\smissing\scomma\sin\sctime.c\sthat\swould\scause\sthe\sENABLE_MATH_FUNCTIONS\noutput\srw\sto\smerge\swith\swhatever\srow\sfollowed.\s\sProblem\sreported\sin\n[forum:/forumpost/aacac97680|forum\spost\saacac97680]. -D 2020-12-28T21:42:38.075 +C Do\snot\sset\sthe\sP3\sparameter\son\sOP_RowCell\swhen\scopying\san\sindex\sbtree,\sas\nP3\sis\snot\sused\sin\sthat\scase. +D 2020-12-29T15:06:26.440 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -501,7 +501,7 @@ F src/hash.c 8d7dda241d0ebdafb6ffdeda3149a412d7df75102cecfc1021c98d6219823b19 F src/hash.h 9d56a9079d523b648774c1784b74b89bd93fac7b365210157482e4319a468f38 F src/hwtime.h cb1d7e3e1ed94b7aa6fde95ae2c2daccc3df826be26fc9ed7fd90d1750ae6144 F src/in-operator.md 10cd8f4bcd225a32518407c2fb2484089112fd71 -F src/insert.c 74d8c23c9a94d0ebe46084e9b29c3c242485ccbad6c646f3829f73111d0758c2 +F src/insert.c 81b7ee72cd754b5d0018659d5593355f2d61b3d80f07f200167c4826846e907d F src/legacy.c d7874bc885906868cd51e6c2156698f2754f02d9eee1bae2d687323c3ca8e5aa F src/loadext.c 8c9c8cd2bd8eecdb06d9b6e89de7e9e65bae45cc8fc33609cc74023a5c296067 F src/main.c 97e9f137354bc1f76dc9bb60a0a24f8c45cf73b33e80d3ee4c64155336fb820d @@ -612,7 +612,7 @@ F src/upsert.c df8f1727d62b5987c4fd302cd4d7c0c84ae57cd65683c5a34a740dfe24039235 F src/utf.c ee39565f0843775cc2c81135751ddd93eceb91a673ea2c57f61c76f288b041a0 F src/util.c c0c7977de7ef9b8cb10f6c85f2d0557889a658f817b0455909a49179ba4c8002 F src/vacuum.c 492422c1463c076473bae1858799c7a0a5fe87a133d1223239447c422cd26286 -F src/vdbe.c 808c1503dd183578d7ebcf0e517e636c6005f783daadc9a27305b10597c1142e +F src/vdbe.c 67de20067fa3a2ee8566342c751e941a2fe3fd88940fd9886ca5115f04165cce F src/vdbe.h 83603854bfa5851af601fc0947671eb260f4363e62e960e8a994fb9bbcd2aaa1 F src/vdbeInt.h 3ca5e9fd6e095a8b6cf6bc3587a46fc93499503b2fe48951e1034ba9e2ce2f6e F src/vdbeapi.c c5e7cb2ab89a24d7f723e87b508f21bfb1359a04db5277d8a99fd1e015c12eb9 @@ -1894,7 +1894,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P 823f75c2e448b649cbe9e174be21524ae3f580beedced65701ad49a2dcc5ee19 -R 4cea6028a24f1360fba1c7d5e36beba8 +P 328bc4a01dd67096be49c8b5a656109ad2839a7959d1b00c02a96bfbcb44ec18 +R 781b48b7ecdc86b8a50d5d0b6180469c U drh -Z 164f7b84f32a08eccc89b53be84f4226 +Z 7a280581b61c05a6f5da0fb16cf85e09 diff --git a/manifest.uuid b/manifest.uuid index 09aa60792c..7aff062ebd 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -328bc4a01dd67096be49c8b5a656109ad2839a7959d1b00c02a96bfbcb44ec18 \ No newline at end of file +eef070a4aadf02a845d0ed00767be049d3b76e811e24797a116776fa836d1b03 \ No newline at end of file diff --git a/src/insert.c b/src/insert.c index bc8a7f5b25..0e52ee7a00 100644 --- a/src/insert.c +++ b/src/insert.c @@ -2991,7 +2991,7 @@ static int xferOptimization( if( i==pSrcIdx->nColumn ){ idxInsFlags = OPFLAG_USESEEKRESULT|OPFLAG_PREFORMAT; sqlite3VdbeAddOp1(v, OP_SeekEnd, iDest); - sqlite3VdbeAddOp3(v, OP_RowCell, iDest, iSrc, regData); + sqlite3VdbeAddOp2(v, OP_RowCell, iDest, iSrc); } }else if( !HasRowid(pSrc) && pDestIdx->idxType==SQLITE_IDXTYPE_PRIMARYKEY ){ idxInsFlags |= OPFLAG_NCHANGE; diff --git a/src/vdbe.c b/src/vdbe.c index 904b5e2bc0..8e107a8a56 100644 --- a/src/vdbe.c +++ b/src/vdbe.c @@ -5160,6 +5160,8 @@ case OP_RowCell: { VdbeCursor *pSrc; /* Cursor to read from */ i64 iKey; /* Rowid value to insert with */ assert( pOp[1].opcode==OP_Insert || pOp[1].opcode==OP_IdxInsert ); + assert( pOp[1].opcode==OP_Insert || pOp->p3==0 ); + assert( pOp[1].opcode==OP_IdxInsert || pOp->p3>0 ); assert( pOp[1].p5 & OPFLAG_PREFORMAT ); pDest = p->apCsr[pOp->p1]; pSrc = p->apCsr[pOp->p2];