On 2018/05/09 11:31, David Rowley wrote: > On 9 May 2018 at 14:29, Amit Langote <langote_amit...@lab.ntt.co.jp> wrote: >> On 2018/05/09 11:20, Michael Paquier wrote: >>> While looking at this code, is there any reason to not make >>> gen_partprune_steps static? This is only used in partprune.c for now, >>> so the intention is to make it available for future patches? >> >> Yeah, making it static might be a good idea. I had made it externally >> visible, because I was under the impression that the runtime pruning >> related code would want to call it from elsewhere within the planner. >> But, instead it introduced a make_partition_pruneinfo() which in turn >> calls get_partprune_steps. > > Yeah. Likely left over from when run-time pruning was generating the > steps during execution rather than during planning.
Here is a patch that does that. Thanks, Amit
diff --git a/src/backend/partitioning/partprune.c b/src/backend/partitioning/partprune.c index f954b92a6b..f1f7b2dea9 100644 --- a/src/backend/partitioning/partprune.c +++ b/src/backend/partitioning/partprune.c @@ -116,6 +116,8 @@ typedef struct PruneStepResult } PruneStepResult; +static List *gen_partprune_steps(RelOptInfo *rel, List *clauses, + bool *contradictory); static List *gen_partprune_steps_internal(GeneratePruningStepsContext *context, RelOptInfo *rel, List *clauses, bool *contradictory); @@ -355,7 +357,7 @@ make_partition_pruneinfo(PlannerInfo *root, List *partition_rels, * If the clauses in the input list are contradictory or there is a * pseudo-constant "false", *contradictory is set to true upon return. */ -List * +static List * gen_partprune_steps(RelOptInfo *rel, List *clauses, bool *contradictory) { GeneratePruningStepsContext context; diff --git a/src/include/partitioning/partprune.h b/src/include/partitioning/partprune.h index c9fe95dc30..3d114b4c71 100644 --- a/src/include/partitioning/partprune.h +++ b/src/include/partitioning/partprune.h @@ -67,7 +67,5 @@ extern List *make_partition_pruneinfo(PlannerInfo *root, List *partition_rels, extern Relids prune_append_rel_partitions(RelOptInfo *rel); extern Bitmapset *get_matching_partitions(PartitionPruneContext *context, List *pruning_steps); -extern List *gen_partprune_steps(RelOptInfo *rel, List *clauses, - bool *contradictory); #endif /* PARTPRUNE_H */