Fix planner to do the right thing when a degenerate outer join (one whose
Tom Lane <tgl@sss.pgh.pa.us>
Fix planner to do the right thing when a degenerate outer join (one whose joinclause doesn't use any outer-side vars) requires a "bushy" plan to be created. The normal heuristic to avoid joins with no joinclause has to be overridden in that case. Problem is new in 8.2; before that we forced the outer join order anyway. Per example from Teodor.
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/optimizer/geqo/geqo_eval.c | modified | +2 −2 |
| src/backend/optimizer/path/joinrels.c | modified | +10 −5 |
| src/backend/optimizer/util/joininfo.c | modified | +37 −2 |
| src/include/optimizer/joininfo.h | modified | +3 −2 |