Compare commits

...

1 Commits

Author SHA1 Message Date
drh 59f2b8b7c5 Very small performance improvement by ensuring that the argument to
sqlite3VdbeFreeCursor() is non-NULL.  Hold for the next sprint.

FossilOrigin-Name: f8801ffd946d288099bc3af20602c0d2794b4542ce77b8e15a3d57cac28066a6
2020-01-16 13:02:26 +00:00
4 changed files with 17 additions and 14 deletions
+10 -7
View File
@@ -1,5 +1,5 @@
C Fix\san\sSQL\ssyntax\serror\sin\sthe\scomment\son\sthe\somit-left-join\soptimization.\nNo\schanges\sto\scode.
D 2020-01-16T12:25:14.066
C Very\ssmall\sperformance\simprovement\sby\sensuring\sthat\sthe\sargument\sto\nsqlite3VdbeFreeCursor()\sis\snon-NULL.\s\sHold\sfor\sthe\snext\ssprint.
D 2020-01-16T13:02:26.518
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -603,11 +603,11 @@ F src/upsert.c 2920de71b20f04fe25eb00b655d086f0ba60ea133c59d7fa3325c49838818e78
F src/utf.c 736ff76753236ffbc8b5b939f5e0607f28aeaa7c780b3a56b419228f0a81c87b
F src/util.c e5f3971160154e5c9b660fd119b02ec4890e87cd18a5bc4d45ee60cddbb9e6a2
F src/vacuum.c 82dcec9e7b1afa980288718ad11bc499651c722d7b9f32933c4d694d91cb6ebf
F src/vdbe.c 35dcc7d43c2635853773d994b052061283a4e5b0e60e799cef83e410d90f3145
F src/vdbe.c bd36fa3624bee54181a227c37d65bdbaeb5369dd1a5008c9d29005d4f087225a
F src/vdbe.h defd693289c7bb8d325f109be9490c77138061211a116827da7244b6015a4934
F src/vdbeInt.h 30d3e8b991547cdf39025e416a0a737b0416d46747af70ae058f60e2e0466fe7
F src/vdbeapi.c 1252d80c548711e47a6d84dae88ed4e95d3fbb4e7bd0eaa1347299af7efddf02
F src/vdbeaux.c ff690e6c9314ef281de7c06f8c8c33393f0afca80aabb1fe69836dcf2d60b0bf
F src/vdbeaux.c 236b9c612b8ee802c2e65b8d27dda36c87d7e8bba17bede59ff1c4f343cf9839
F src/vdbeblob.c 253ed82894924c362a7fa3079551d3554cd1cdace39aa833da77d3bc67e7c1b1
F src/vdbemem.c ad9e6217635f2b04df98bc57b12c98cefc9c0a1745cca47f4e8109119213253d
F src/vdbesort.c a3be032cc3fee0e3af31773af4a7a6f931b7230a34f53282ccf1d9a2a72343be
@@ -1857,7 +1857,10 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
P af06f80a590e20f64fa2f630e85fa728c266ea4696b975cc5f2ab72a3b914379
R 9a8c9df7f9259d9aaa9715d05b9ca046
P 86b5e5a20e967af7ac444ff0a40c2e8b93b7e5c505eebf6d3753a341b05503a8
R 47da7063528f28081fc2bb201dd0e23b
T *branch * close-cursor-faster
T *sym-close-cursor-faster *
T -sym-trunk *
U drh
Z c83be37898e2cd5899ddcac01ce6852d
Z 1ee70ee6e40038b3997c71f1bcb449bf
+1 -1
View File
@@ -1 +1 @@
86b5e5a20e967af7ac444ff0a40c2e8b93b7e5c505eebf6d3753a341b05503a8
f8801ffd946d288099bc3af20602c0d2794b4542ce77b8e15a3d57cac28066a6
+4 -2
View File
@@ -4053,8 +4053,10 @@ case OP_OpenPseudo: {
*/
case OP_Close: {
assert( pOp->p1>=0 && pOp->p1<p->nCursor );
sqlite3VdbeFreeCursor(p, p->apCsr[pOp->p1]);
p->apCsr[pOp->p1] = 0;
if( p->apCsr[pOp->p1] ){
sqlite3VdbeFreeCursor(p, p->apCsr[pOp->p1]);
p->apCsr[pOp->p1] = 0;
}
break;
}
+2 -4
View File
@@ -1911,7 +1911,7 @@ void sqlite3VdbeFrameDelete(VdbeFrame *p){
VdbeCursor **apCsr = (VdbeCursor **)&aMem[p->nChildMem];
assert( sqlite3VdbeFrameIsValid(p) );
for(i=0; i<p->nChildCsr; i++){
sqlite3VdbeFreeCursor(p->v, apCsr[i]);
if( apCsr[i] ) sqlite3VdbeFreeCursor(p->v, apCsr[i]);
}
releaseMemArray(aMem, p->nChildMem);
sqlite3VdbeDeleteAuxData(p->v->db, &p->pAuxData, -1, 0);
@@ -2406,9 +2406,7 @@ void sqlite3VdbeMakeReady(
** happens to hold.
*/
void sqlite3VdbeFreeCursor(Vdbe *p, VdbeCursor *pCx){
if( pCx==0 ){
return;
}
assert( pCx!=0 );
assert( pCx->pBtx==0 || pCx->eCurType==CURTYPE_BTREE );
switch( pCx->eCurType ){
case CURTYPE_SORTER: {