diff options
Diffstat (limited to 'src/backend/partitioning')
| -rw-r--r-- | src/backend/partitioning/partprune.c | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/src/backend/partitioning/partprune.c b/src/backend/partitioning/partprune.c index 0fb10351278..7179b22a057 100644 --- a/src/backend/partitioning/partprune.c +++ b/src/backend/partitioning/partprune.c @@ -210,20 +210,16 @@ static void partkey_datum_from_expr(PartitionPruneContext *context, /* * make_partition_pruneinfo - * Checks if the given set of quals can be used to build pruning steps - * that the executor can use to prune away unneeded partitions. If - * suitable quals are found then a PartitionPruneInfo is built and tagged - * onto the PlannerInfo's partPruneInfos list. - * - * The return value is the 0-based index of the item added to the - * partPruneInfos list or -1 if nothing was added. + * Builds a PartitionPruneInfo which can be used in the executor to allow + * additional partition pruning to take place. Returns NULL when + * partition pruning would be useless. * * 'parentrel' is the RelOptInfo for an appendrel, and 'subpaths' is the list * of scan paths for its child rels. * 'prunequal' is a list of potential pruning quals (i.e., restriction * clauses that are applicable to the appendrel). */ -int +PartitionPruneInfo * make_partition_pruneinfo(PlannerInfo *root, RelOptInfo *parentrel, List *subpaths, List *prunequal) @@ -337,11 +333,10 @@ make_partition_pruneinfo(PlannerInfo *root, RelOptInfo *parentrel, * quals, then we can just not bother with run-time pruning. */ if (prunerelinfos == NIL) - return -1; + return NULL; /* Else build the result data structure */ pruneinfo = makeNode(PartitionPruneInfo); - pruneinfo->root_parent_relids = parentrel->relids; pruneinfo->prune_infos = prunerelinfos; /* @@ -364,9 +359,7 @@ make_partition_pruneinfo(PlannerInfo *root, RelOptInfo *parentrel, else pruneinfo->other_subplans = NULL; - root->partPruneInfos = lappend(root->partPruneInfos, pruneinfo); - - return list_length(root->partPruneInfos) - 1; + return pruneinfo; } /* |
