Remove PlannerInfo's join_search_private method.
authorRobert Haas <rhaas@postgresql.org>
Wed, 20 Aug 2025 19:10:52 +0000 (15:10 -0400)
committerRobert Haas <rhaas@postgresql.org>
Thu, 25 Sep 2025 16:02:29 +0000 (12:02 -0400)
commit924d15c2058c4300b5eaccc5e5a7608b47f643c0
tree1d6f2a21d9c4fe8f86966dba2e4ffbf5e260d25f
parent086b9395a959ad9bc640286a1e24da06fc915b7c
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.
src/backend/optimizer/geqo/geqo_eval.c
src/backend/optimizer/geqo/geqo_main.c
src/backend/optimizer/geqo/geqo_random.c
src/backend/optimizer/plan/analyzejoins.c
src/backend/optimizer/plan/planner.c
src/backend/optimizer/prep/prepjointree.c
src/include/nodes/pathnodes.h
src/include/optimizer/geqo.h