From: drh <> Date: Fri, 1 Apr 2022 19:04:13 +0000 (+0000) Subject: Omit the Vdbe.doingRerun field for a slight size reduction and performance gain. X-Git-Tag: version-3.39.0~263 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a24832b7b2ca8e10705448d04d4d0ca38e41a0bd;p=thirdparty%2Fsqlite.git Omit the Vdbe.doingRerun field for a slight size reduction and performance gain. FossilOrigin-Name: e93297a9d775688e6274c54ba75b19fc1fe8b29b73b9b5e7f94f3f2ca37f045f --- diff --git a/manifest b/manifest index 06f6e0fba4..a1b43ba589 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C New\smacro\sROUND8P()\swhich\sworks\slike\sROUND8()\sbut\sassumes\sthat\sthe\sinput\sis\nalready\sa\smultiple\sof\sthe\ssize\sof\sa\spointer.\s\sIt\sbecomes\sa\sno-op\sfor\n64-bit\smachines,\sgiving\sa\ssmall\ssize\sreduction\sand\sspeed\sboost. -D 2022-04-01T18:45:11.641 +C Omit\sthe\sVdbe.doingRerun\sfield\sfor\sa\sslight\ssize\sreduction\sand\sperformance\sgain. +D 2022-04-01T19:04:13.644 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -624,10 +624,10 @@ F src/upsert.c 8789047a8f0a601ea42fa0256d1ba3190c13746b6ba940fe2d25643a7e991937 F src/utf.c ee39565f0843775cc2c81135751ddd93eceb91a673ea2c57f61c76f288b041a0 F src/util.c 602fe229f32a96ceccae4f40824129669582096f7c355f53dbac156c9fecef23 F src/vacuum.c 6c38ddc52f0619865c91dae9c441d4d48bf3040d7dc1bc5b22da1e45547ed0b3 -F src/vdbe.c 297ff0e5cb7873c177c92627a314e91a21e905323efbd907a50bc3d34d3418d6 +F src/vdbe.c 8f8373466beab434b7d1991fafec68a13318adf10ccf345a14ed178873c66632 F src/vdbe.h a1d0e3b934e835e73edd146f2e7c4eadb711b5c9875c18159a57483fd78e550e -F src/vdbeInt.h 81172c6b828b546d9fa1ce3e2cbeba90d56e39a6fbef87c46813611090d41f07 -F src/vdbeapi.c 17474f2122c1f54c93dcdb7b845e68e207bbebab6a040c65ed374c4aec049d34 +F src/vdbeInt.h 22babf1e585ae7e5c49f2e6442969b88f07bdcc3d154164346d25ef4efa3ebf3 +F src/vdbeapi.c 76024c6f5af4ca00490b00caa4fb1fb6e016bded19f3b901c255686455d0ef31 F src/vdbeaux.c 7be57b47c60e348c32048d2e33c719b3d918a2aef36b30c6da571033c489dd58 F src/vdbeblob.c 5e61ce31aca17db8fb60395407457a8c1c7fb471dde405e0cd675974611dcfcd F src/vdbemem.c 062cd58c54f887dc2eeb865686251c17237f791f0e6394e9c6f7a6f3c1a7e206 @@ -1945,8 +1945,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P cb5e6f8e265c91221227e5f15b95798c688773262407dd138d414103184702f6 -R d734309bfa3d7179546c9735303c8516 +P d126f304cde66ebfe21a4967c22dcba0bac27cbce56318b14bd50051e49c978c +R e63b5f59e7e4b2f0f7f707ce12aa7775 U drh -Z 952158b32ce23df022f8a24df89bf845 +Z 4a5439f66922b2e5d0302346fbe72c1a # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 0dcdfb94a5..fd47478bc3 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -d126f304cde66ebfe21a4967c22dcba0bac27cbce56318b14bd50051e49c978c \ No newline at end of file +e93297a9d775688e6274c54ba75b19fc1fe8b29b73b9b5e7f94f3f2ca37f045f \ No newline at end of file diff --git a/src/vdbe.c b/src/vdbe.c index 5f8543e08a..ffae6a3957 100644 --- a/src/vdbe.c +++ b/src/vdbe.c @@ -8340,7 +8340,7 @@ case OP_Init: { /* jump */ #ifndef SQLITE_OMIT_TRACE if( (db->mTrace & (SQLITE_TRACE_STMT|SQLITE_TRACE_LEGACY))!=0 - && !p->doingRerun + && p->minWriteFileFormat!=254 /* tag-20220401a */ && (zTrace = (pOp->p4.z ? pOp->p4.z : p->zSql))!=0 ){ #ifndef SQLITE_OMIT_DEPRECATED diff --git a/src/vdbeInt.h b/src/vdbeInt.h index 342b56ccbc..792ead7b5f 100644 --- a/src/vdbeInt.h +++ b/src/vdbeInt.h @@ -455,7 +455,6 @@ struct Vdbe { u8 errorAction; /* Recovery action to do in case of an error */ u8 minWriteFileFormat; /* Minimum file format for writable database files */ u8 prepFlags; /* SQLITE_PREPARE_* flags */ - u8 doingRerun; /* True if rerunning after an auto-reprepare */ u8 eVdbeState; /* On of the VDBE_*_STATE values */ bft expired:2; /* 1: recompile VM immediately 2: when convenient */ bft explain:2; /* True if EXPLAIN present on SQL command */ diff --git a/src/vdbeapi.c b/src/vdbeapi.c index 40821c1145..b07211177a 100644 --- a/src/vdbeapi.c +++ b/src/vdbeapi.c @@ -797,7 +797,6 @@ int sqlite3_step(sqlite3_stmt *pStmt){ } db = v->db; sqlite3_mutex_enter(db->mutex); - v->doingRerun = 0; while( (rc = sqlite3Step(v))==SQLITE_SCHEMA && cnt++ < SQLITE_MAX_SCHEMA_RETRY ){ int savedPc = v->pc; @@ -823,7 +822,13 @@ int sqlite3_step(sqlite3_stmt *pStmt){ break; } sqlite3_reset(pStmt); - if( savedPc>=0 ) v->doingRerun = 1; + if( savedPc>=0 ){ + /* Setting minWriteFileFormat to 254 is a signal to the OP_Init and + ** OP_Trace opcodes to *not* perform SQLITE_TRACE_STMT because one + ** should output has already occurred due to SQLITE_SCHEMA. + ** tag-20220401a */ + v->minWriteFileFormat = 254; + } assert( v->expired==0 ); } sqlite3_mutex_leave(db->mutex);