From: drh <> Date: Mon, 31 Jul 2023 17:20:12 +0000 (+0000) Subject: Improved debug tracking of the Parse.nQueryLoop value. X-Git-Tag: version-3.43.0~89 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c8c6763782d102519611586514f858a601c1d6a5;p=thirdparty%2Fsqlite.git Improved debug tracking of the Parse.nQueryLoop value. FossilOrigin-Name: 4a8a17498ecaccca5e5aab65d4596cbca9799547f50683237d08c1fa3556f1cf --- diff --git a/manifest b/manifest index c38f4b9aa8..8db2fb6f39 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Add\stests\sfor\sSAHPoolUtil.exportFile()\sand\simportDb(). -D 2023-07-30T03:54:10.966 +C Improved\sdebug\stracking\sof\sthe\sParse.nQueryLoop\svalue. +D 2023-07-31T17:20:12.907 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -648,7 +648,7 @@ F src/shell.c.in 694aaf751f00610381533d4a31c83d142cfc83ef91ef65e2aa6912ace7c39b4 F src/sqlite.h.in 7b07a33d2af82ee974aa91e6294abce0282b2f4c5934b291d2fff961810dd867 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8 F src/sqlite3ext.h da473ce2b3d0ae407a6300c4a164589b9a6bfdbec9462688a8593ff16f3bb6e4 -F src/sqliteInt.h 6140eb4058d995f3004ee2732fa098b884f26eb497a7fbb3a51c781ec824d14b +F src/sqliteInt.h dc50c6b6940e30bb51b7ba18805968ef0fcbf61946e047e7b63921be11a3dae8 F src/sqliteLimit.h 33b1c9baba578d34efe7dfdb43193b366111cdf41476b1e82699e14c11ee1fb6 F src/status.c 160c445d7d28c984a0eae38c144f6419311ed3eace59b44ac6dafc20db4af749 F src/table.c 0f141b58a16de7e2fbe81c308379e7279f4c6b50eb08efeec5892794a0ba30d1 @@ -728,7 +728,7 @@ F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9 F src/wal.c dd843f619ac60d5dadab7109cf402432ba74dde0c301505fd1c202add07659e3 F src/wal.h c3aa7825bfa2fe0d85bef2db94655f99870a285778baa36307c0a16da32b226a F src/walker.c 7c7ea0115345851c3da4e04e2e239a29983b61fb5b038b94eede6aba462640e2 -F src/where.c 6041f3cae99d6f4c4da7ea094508317900fcd61195fe4292e55ac4531650e70a +F src/where.c 4dbe228a4609650fd623b7b008952e10d840c9d009e9857d091a571e42e6fd25 F src/whereInt.h c7d19902863beadec1d04e66aca39c0bcd60b74f05f0eaa7422c7005dfc5d51a F src/wherecode.c 5d77db30a2a3dd532492ae882de114edba2fae672622056b1c7fd61f5917a8f1 F src/whereexpr.c dc5096eca5ed503999be3bdee8a90c51361289a678d396a220912e9cb73b3c00 @@ -2049,8 +2049,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 8920dcef1f75f578e3f274ab2b980a83d6ea6b761d99fc48410b26886170597b -R 2a07b6b25484c6f82e9fa54454c86f83 -U stephan -Z 94c05dabad5b9ba1d82742c493454088 +P 4aa88b8fb1c99137ed7531e5c82a241738a2b0554f7af82c0ed0ce8d16a0879a +R a7420574bcfe65ab5de9c88d601ffa08 +U drh +Z a5b585bb4bef1b0204b860ed253c8304 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index b0fc9d45e7..7ed422dc06 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -4aa88b8fb1c99137ed7531e5c82a241738a2b0554f7af82c0ed0ce8d16a0879a \ No newline at end of file +4a8a17498ecaccca5e5aab65d4596cbca9799547f50683237d08c1fa3556f1cf \ No newline at end of file diff --git a/src/sqliteInt.h b/src/sqliteInt.h index 78ae7ad69e..7d6a16c87b 100644 --- a/src/sqliteInt.h +++ b/src/sqliteInt.h @@ -3790,7 +3790,7 @@ struct Parse { int addrCrTab; /* Address of OP_CreateBtree on CREATE TABLE */ Returning *pReturning; /* The RETURNING clause */ } u1; - u32 nQueryLoop; /* Est number of iterations of a query (10*log2(N)) */ + LogEst nQueryLoop; /* Est number of iterations of a query (10*log2(N)) */ u32 oldmask; /* Mask of old.* columns referenced */ u32 newmask; /* Mask of new.* columns referenced */ #ifndef SQLITE_OMIT_PROGRESS_CALLBACK diff --git a/src/where.c b/src/where.c index 5476e09f07..d2f060d7eb 100644 --- a/src/where.c +++ b/src/where.c @@ -5003,7 +5003,8 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){ ** For joins of 3 or more tables, track the 10 best paths */ mxChoice = (nLoop<=1) ? 1 : (nLoop==2 ? 5 : 10); assert( nLoop<=pWInfo->pTabList->nSrc ); - WHERETRACE(0x002, ("---- begin solver. (nRowEst=%d)\n", nRowEst)); + WHERETRACE(0x002, ("---- begin solver. (nRowEst=%d, nQueryLoop=%d)\n", + nRowEst, pParse->nQueryLoop)); /* If nRowEst is zero and there is an ORDER BY clause, ignore it. In this ** case the purpose of this call is to estimate the number of rows returned