aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordrh <>2024-05-29 14:04:52 +0000
committerdrh <>2024-05-29 14:04:52 +0000
commiteccb42eb0e522646d54b0e1a87d872339a7613dc (patch)
tree0ce4bd5af3c494e9dbc8f52a5e8d079422d526d9 /src
parentbb24c75b418a6f75a2cab5ab5674b2810e466d35 (diff)
downloadsqlite-eccb42eb0e522646d54b0e1a87d872339a7613dc.tar.gz
sqlite-eccb42eb0e522646d54b0e1a87d872339a7613dc.zip
Small performance enhancement in wherePathSolver()
FossilOrigin-Name: bdab69641df4704f7b080cf7841bbf39da9160222f7b664a79ed662b70ca7b0a
Diffstat (limited to 'src')
-rw-r--r--src/where.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/where.c b/src/where.c
index 5a5fd7b28..fe2e39b9c 100644
--- a/src/where.c
+++ b/src/where.c
@@ -5457,7 +5457,10 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){
/* At this point, pWLoop is a candidate to be the next loop.
** Compute its cost */
- rUnsorted = sqlite3LogEstAdd(pWLoop->rSetup,pWLoop->rRun + pFrom->nRow);
+ rUnsorted = pWLoop->rRun + pFrom->nRow;
+ if( pWLoop->rSetup ){
+ rUnsorted = sqlite3LogEstAdd(pWLoop->rSetup, rUnsorted);
+ }
rUnsorted = sqlite3LogEstAdd(rUnsorted, pFrom->rUnsorted);
nOut = pFrom->nRow + pWLoop->nOut;
maskNew = pFrom->maskLoop | pWLoop->maskSelf;
@@ -5502,6 +5505,7 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){
** to (pTo->isOrdered==(-1))==(isOrdered==(-1))" for the range
** of legal values for isOrdered, -1..64.
*/
+ assert( nTo>0 );
for(jj=0, pTo=aTo; jj<nTo; jj++, pTo++){
if( pTo->maskLoop==maskNew
&& ((pTo->isOrdered^isOrdered)&0x80)==0