From 64095d157482136ee609586266f8a37467c69bde Mon Sep 17 00:00:00 2001 From: Robert Haas Date: Wed, 20 Aug 2025 15:10:52 -0400 Subject: 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 Reviewed-by: Melanie Plageman Reviewed-by: Tom Lane Discussion: http://postgr.es/m/CA+TgmoYWKHU2hKr62Toyzh-kTDEnMDeLw7gkOOnjL-TnOUq0kQ@mail.gmail.com --- src/include/nodes/pathnodes.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'src/include/nodes/pathnodes.h') diff --git a/src/include/nodes/pathnodes.h b/src/include/nodes/pathnodes.h index 554d7c3ef67..4e3230ba234 100644 --- a/src/include/nodes/pathnodes.h +++ b/src/include/nodes/pathnodes.h @@ -536,6 +536,8 @@ struct PlannerInfo bool placeholdersFrozen; /* true if planning a recursive WITH item */ bool hasRecursion; + /* true if a planner extension may replan this subquery */ + bool assumeReplanning; /* * The rangetable index for the RTE_GROUP RTE, or 0 if there is no @@ -582,9 +584,6 @@ struct PlannerInfo bool *isAltSubplan pg_node_attr(read_write_ignore); bool *isUsedSubplan pg_node_attr(read_write_ignore); - /* optional private data for join_search_hook, e.g., GEQO */ - void *join_search_private pg_node_attr(read_write_ignore); - /* Does this query modify any partition key columns? */ bool partColsUpdated; -- cgit v1.2.3