diff options
author | drh <drh@noemail.net> | 2010-11-16 02:49:15 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2010-11-16 02:49:15 +0000 |
commit | 95aa47b10a6ff9e920ee82b1dcde8c8ed73c69c2 (patch) | |
tree | 9605a6df054b4f999533db6d21fea19693810a40 /src/where.c | |
parent | 04098e60858effdd49bce4c7550787a61fc39b00 (diff) | |
download | sqlite-95aa47b10a6ff9e920ee82b1dcde8c8ed73c69c2.tar.gz sqlite-95aa47b10a6ff9e920ee82b1dcde8c8ed73c69c2.zip |
Use the estimated number of rows computed for subqueries in the cost
computations for outer queries.
FossilOrigin-Name: 56bbc539246a6dc9f1ae1edb898db7a4f6f6d322
Diffstat (limited to 'src/where.c')
-rw-r--r-- | src/where.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/where.c b/src/where.c index 1d6641ee8..751c7a99c 100644 --- a/src/where.c +++ b/src/where.c @@ -4423,6 +4423,7 @@ WhereInfo *sqlite3WhereBegin( */ sqlite3CodeVerifySchema(pParse, -1); /* Insert the cookie verifier Goto */ notReady = ~(Bitmask)0; + pWInfo->nRowOut = (double)1; for(i=0, pLevel=pWInfo->a; i<nTabList; i++, pLevel++){ Table *pTab; /* Table to open */ int iDb; /* Index of database containing table/index */ @@ -4430,6 +4431,7 @@ WhereInfo *sqlite3WhereBegin( pTabItem = &pTabList->a[pLevel->iFrom]; pTab = pTabItem->pTab; pLevel->iTabCur = pTabItem->iCursor; + pWInfo->nRowOut *= pLevel->plan.nRow; iDb = sqlite3SchemaToIndex(db, pTab->pSchema); if( (pTab->tabFlags & TF_Ephemeral)!=0 || pTab->pSelect ){ /* Do nothing */ |