diff --git a/src/backend/distributed/planner/distributed_planner.c b/src/backend/distributed/planner/distributed_planner.c index a17ef0e42..58cb9ca65 100644 --- a/src/backend/distributed/planner/distributed_planner.c +++ b/src/backend/distributed/planner/distributed_planner.c @@ -157,6 +157,10 @@ distributed_planner(Query *parse, int cursorOptions, ParamListInfo boundParams) result = CreateDistributedPlannedStmt(planId, result, originalQuery, parse, boundParams, plannerRestrictionContext); + + setPartitionedTablesInherited = true; + AdjustPartitioningForDistributedPlanning(parse, + setPartitionedTablesInherited); } } PG_CATCH(); @@ -166,13 +170,6 @@ distributed_planner(Query *parse, int cursorOptions, ParamListInfo boundParams) } PG_END_TRY(); - if (needsDistributedPlanning) - { - setPartitionedTablesInherited = true; - - AdjustPartitioningForDistributedPlanning(parse, setPartitionedTablesInherited); - } - /* remove the context from the context list */ PopPlannerRestrictionContext(); @@ -1517,6 +1514,13 @@ CurrentPlannerRestrictionContext(void) plannerRestrictionContext = (PlannerRestrictionContext *) linitial(plannerRestrictionContextList); + if (plannerRestrictionContext == NULL) + { + ereport(ERROR, (errcode(ERRCODE_INTERNAL_ERROR), + errmsg("planner restriction context stack was empty"), + errdetail("Please report this to the Citus core team."))); + } + return plannerRestrictionContext; }