aboutsummaryrefslogtreecommitdiff
path: root/src/where.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2010-11-16 02:49:15 +0000
committerdrh <drh@noemail.net>2010-11-16 02:49:15 +0000
commit95aa47b10a6ff9e920ee82b1dcde8c8ed73c69c2 (patch)
tree9605a6df054b4f999533db6d21fea19693810a40 /src/where.c
parent04098e60858effdd49bce4c7550787a61fc39b00 (diff)
downloadsqlite-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.c2
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 */