Re: Bogus nestloop rows estimate in 8.4.7 - Mailing list pgsql-hackers

From Tom Lane
Subject Re: Bogus nestloop rows estimate in 8.4.7
Date
Msg-id 13181.1338309357@sss.pgh.pa.us
Whole thread Raw
In response to Re: Bogus nestloop rows estimate in 8.4.7  (Robert Haas <robertmhaas@gmail.com>)
Responses Re: Bogus nestloop rows estimate in 8.4.7
List pgsql-hackers
Robert Haas <robertmhaas@gmail.com> writes:
> Hmm, but isn't this a case of the left hand not knowing what the right
> hand is doing?  I mean, somehow we have enough information to estimate
> that the index scans on b{1,2,3} are going to produce 2 rows per
> execution, but having figured that out (correctly) we then proceed to
> ignore it.

Well, if you wanted to do that, what it would amount to is saying that
the estimated size of the join relation is going to change depending on
which implementation path you consider for it, which would be a mess,
not to mention mathematically silly.  You could possibly choose to use
the size from one path that you believe more than the other paths, but
on what grounds will you make that choice; and then will you go back and
change your estimates for the paths you already did costing for?

We have bitten off some of this for cases involving join relations that
are still parameterized, but I don't think it makes much sense for
non-parameterized join paths.  And even in the parameterized case, we
are careful to use the same size estimate for all implementation paths
that yield the same parameterization.
        regards, tom lane


pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: Re: Bogus nestloop rows estimate in 8.4.7
Next
From: Robert Haas
Date:
Subject: Re: Issues with MinGW W64