On Thu, Jan 26, 2012 at 2:27 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Robert Haas <robertmhaas@gmail.com> writes:
>>>> Is there a guard in here against joining a parameterized path to an
>>>> intermediate relation when no SJ is involved? In other words, if
>>>> we're joining a parameterized path on A to a path on B, then either
>>>> the join to B should satisfy at least part of the parameterization
>>>> needed by A, or there should be a special join with A and B on one
>>>> side and a relation that satisfies at least part of the
>>>> parameterization of A on the other.
>
> I've implemented this idea, recast a bit to prevent generating a
> parameterized join path in the first place unless it depends on a
> parameter from a relation for which there's a join ordering constraint
> still outstanding. It seems to get us to where the planning time
> penalty is only about 10%, which frankly is probably less than sampling
> error considering the small set of test cases I'm looking at.
Awesome. If you can post the updated patch, I'll poke at it a little
more and see if anything jumps out at me, but that sounds promising.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company