Remove PlannerInfo's join_search_private method.
Robert Haas <rhaas@postgresql.org>
Remove PlannerInfo's join_search_private method. Instead, use the new mechanism that allows planner extensions to store private state inside a PlannerInfo, treating GEQO as an in-core planner extension. This is a useful test of the new facility, and also buys back a few bytes of storage. To make this work, we must remove innerrel_is_unique_ext's hack of testing whether join_search_private is set as a proxy for whether the join search might be retried. Add a flag that extensions can use to explicitly signal their intentions instead. Reviewed-by: Andrei Lepikhov <lepihov@gmail.com> Reviewed-by: Melanie Plageman <melanieplageman@gmail.com> Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us> Discussion: http://postgr.es/m/CA+TgmoYWKHU2hKr62Toyzh-kTDEnMDeLw7gkOOnjL-TnOUq0kQ@mail.gmail.com
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/optimizer/geqo/geqo_eval.c | modified | +1 −1 |
| src/backend/optimizer/geqo/geqo_main.c | modified | +10 −2 |
| src/backend/optimizer/geqo/geqo_random.c | modified | +3 −4 |
| src/backend/optimizer/plan/analyzejoins.c | modified | +3 −6 |
| src/backend/optimizer/plan/planner.c | modified | +1 −0 |
| src/backend/optimizer/prep/prepjointree.c | modified | +1 −0 |
| src/include/nodes/pathnodes.h | modified | +2 −3 |
| src/include/optimizer/geqo.h | modified | +11 −1 |
Discussion
- RFC: extensible planner state 28 messages · 2025-08-19 → 2025-10-10