]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Omit the Vdbe.doingRerun field for a slight size reduction and performance gain.
authordrh <>
Fri, 1 Apr 2022 19:04:13 +0000 (19:04 +0000)
committerdrh <>
Fri, 1 Apr 2022 19:04:13 +0000 (19:04 +0000)
FossilOrigin-Name: e93297a9d775688e6274c54ba75b19fc1fe8b29b73b9b5e7f94f3f2ca37f045f

manifest
manifest.uuid
src/vdbe.c
src/vdbeInt.h
src/vdbeapi.c

index 06f6e0fba4e4340178c88dd069590f7e0419714c..a1b43ba5896e62e19600f83571c0a66931fefebe 100644 (file)
--- 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.
index 0dcdfb94a5dc8ea6f4c7769ec3ef106fb99f7cb4..fd47478bc3f095f7fdaf24928d7f0bb0f28e434a 100644 (file)
@@ -1 +1 @@
-d126f304cde66ebfe21a4967c22dcba0bac27cbce56318b14bd50051e49c978c
\ No newline at end of file
+e93297a9d775688e6274c54ba75b19fc1fe8b29b73b9b5e7f94f3f2ca37f045f
\ No newline at end of file
index 5f8543e08a128613e935802b2c16f9a31eae48b3..ffae6a39572bc3e58d0838836eeb6e3ada57ac54 100644 (file)
@@ -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
index 342b56ccbc13a09b99268a67dcc02a0d8d282b1a..792ead7b5ff4d6a62464f77f04e123353e847066 100644 (file)
@@ -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 */
index 40821c11458a0c388719765271bf3ce272bb1cf1..b07211177a185fea1a8a54c66743153091c0f0ff 100644 (file)
@@ -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);