Fix incorrect is-this-the-topmost-join tests in parallel planning.
Tom Lane <tgl@sss.pgh.pa.us>
Fix incorrect is-this-the-topmost-join tests in parallel planning. Two callers of generate_useful_gather_paths were testing the wrong thing when deciding whether to call that function: they checked for being at the top of the current join subproblem, rather than being at the actual top join. This'd result in failing to construct parallel paths for a sub-join for which they might be useful. While set_rel_pathlist() isn't actively broken, it seems best to make its identical-in-intention test for this be like the other two. This has been wrong all along, but given the lack of field complaints I'm hesitant to back-patch into stable branches; we usually prefer to avoid non-bug-fix changes in plan choices in minor releases. It seems not too late for v15 though. Richard Guo, reviewed by Antonin Houska and Tom Lane Discussion: https://postgr.es/m/CAMbWs4-mH8Zf87-w+3P2J=nJB+5OyicO28ia9q_9o=Lamf_VHg@mail.gmail.com
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/optimizer/geqo/geqo_eval.c | modified | +1 −1 |
| src/backend/optimizer/path/allpaths.c | modified | +4 −5 |
Discussion
- Problem about postponing gathering partial paths for topmost scan/join rel 8 messages · 2021-07-28 → 2022-07-30