From 0f4c8d33d49da012a04076159a008c9fa80bcc47 Mon Sep 17 00:00:00 2001 From: Robert Haas Date: Tue, 10 Feb 2026 11:50:28 -0500 Subject: [PATCH] Pass cursorOptions to planner_setup_hook. Commit 94f3ad3961a2cb32d30c79f01a70db4caff13318 failed to do this because I couldn't think of a use for the information, but this has proven to be short-sighted. Best to fix it before this code is officially released. Now, the only argument to standard_planenr that isn't passed to planner_setup_hook is boundParams, but that is accessible via glob->boundParams, and so doesn't need to be passed separately. Discussion: https://www.postgresql.org/message-id/CA+TgmoYS4ZCVAF2jTce=bMP0Oq_db_srocR4cZyO0OBp9oUoGg@mail.gmail.com --- src/backend/optimizer/plan/planner.c | 3 ++- src/include/optimizer/planner.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/backend/optimizer/plan/planner.c b/src/backend/optimizer/plan/planner.c index 757bdc7b1de..0c93f41ffff 100644 --- a/src/backend/optimizer/plan/planner.c +++ b/src/backend/optimizer/plan/planner.c @@ -511,7 +511,8 @@ standard_planner(Query *parse, const char *query_string, int cursorOptions, /* Allow plugins to take control after we've initialized "glob" */ if (planner_setup_hook) - (*planner_setup_hook) (glob, parse, query_string, &tuple_fraction, es); + (*planner_setup_hook) (glob, parse, query_string, cursorOptions, + &tuple_fraction, es); /* primary planning entry point (may recurse for subqueries) */ root = subquery_planner(glob, parse, NULL, NULL, false, tuple_fraction, diff --git a/src/include/optimizer/planner.h b/src/include/optimizer/planner.h index ae3f7f2edb6..80509773c01 100644 --- a/src/include/optimizer/planner.h +++ b/src/include/optimizer/planner.h @@ -35,6 +35,7 @@ extern PGDLLIMPORT planner_hook_type planner_hook; /* Hook for plugins to get control after PlannerGlobal is initialized */ typedef void (*planner_setup_hook_type) (PlannerGlobal *glob, Query *parse, const char *query_string, + int cursorOptions, double *tuple_fraction, ExplainState *es); extern PGDLLIMPORT planner_setup_hook_type planner_setup_hook;