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.
regards, tom lane