Pass cursorOptions to planner_setup_hook.

Commit 94f3ad3961 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
pull/272/head
Robert Haas 3 weeks ago
parent cbdf93d471
commit 0f4c8d33d4
  1. 3
      src/backend/optimizer/plan/planner.c
  2. 1
      src/include/optimizer/planner.h

@ -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,

@ -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;

Loading…
Cancel
Save