mirror of
https://github.com/postgres/postgres.git
synced 2025-11-09 06:21:09 +03:00
Enable use of Memoize atop an Append that came from UNION ALL.
create_append_path() would only apply get_baserel_parampathinfo when the path is for a partitioned table, but it's also potentially useful for paths for UNION ALL appendrels. Specifically, that supports building a Memoize path atop this one. While we're in the vicinity, delete some dead code in create_merge_append_plan(): there's no need for it to support parameterized MergeAppend paths, and it doesn't look like that is going to change anytime soon. It'll be easy enough to undo this when/if it becomes useful. Richard Guo Discussion: https://postgr.es/m/CAMbWs4_ABSu4PWG2rE1q10tJugEXHWgru3U8dAgkoFvgrb6aEA@mail.gmail.com
This commit is contained in:
@@ -1531,16 +1531,8 @@ create_merge_append_plan(PlannerInfo *root, MergeAppendPath *best_path,
|
||||
|
||||
prunequal = extract_actual_clauses(rel->baserestrictinfo, false);
|
||||
|
||||
if (best_path->path.param_info)
|
||||
{
|
||||
List *prmquals = best_path->path.param_info->ppi_clauses;
|
||||
|
||||
prmquals = extract_actual_clauses(prmquals, false);
|
||||
prmquals = (List *) replace_nestloop_params(root,
|
||||
(Node *) prmquals);
|
||||
|
||||
prunequal = list_concat(prunequal, prmquals);
|
||||
}
|
||||
/* We don't currently generate any parameterized MergeAppend paths */
|
||||
Assert(best_path->path.param_info == NULL);
|
||||
|
||||
if (prunequal != NIL)
|
||||
node->part_prune_index = make_partition_pruneinfo(root, rel,
|
||||
|
||||
Reference in New Issue
Block a user