Andres Freund <andres@anarazel.de> writes:
> This also explains why I saw nearly no improvement during the genetic search
> itself. The paths out of random_init_pool were already hugely selected, so
> there were not that many improvements to find and a change was relatively like
> to yield a impossible ordering.
Yeah, I suspect most of the variants tried during that phase simply
failed.
> I do even less know how feasible this is, but given that joins in the right
> hand side of a LEFT JOIN are not really useful to study from the outside in
> the general case, would it be possible to "hide" them below the join during
> join order planning?
We could refrain from collapsing the sub-problem during joinlist
formation. But the trouble with that is it creates a "hard" join order
restriction. Most of the restrictions are "soft" to some extent, ie,
you can do some rearrangements but not others. It might be worth
looking at though; in the cases where there is no chance of a
rearrangement, it would save cycles for either regular or GEQO planning.
regards, tom lane