From 9711038cf3003cb04df26cf739ee7bb207d11d0a Mon Sep 17 00:00:00 2001 From: Richard Guo Date: Thu, 22 Dec 2022 15:43:36 +0800 Subject: [PATCH v1] Fix translate_col_privs_multilevel --- src/backend/optimizer/util/inherit.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/src/backend/optimizer/util/inherit.c b/src/backend/optimizer/util/inherit.c index f51ce45cd3..a3b1cb6d06 100644 --- a/src/backend/optimizer/util/inherit.c +++ b/src/backend/optimizer/util/inherit.c @@ -52,7 +52,7 @@ static Bitmapset *translate_col_privs(const Bitmapset *parent_privs, static Bitmapset *translate_col_privs_multilevel(PlannerInfo *root, RelOptInfo *rel, RelOptInfo *top_parent_rel, - Bitmapset *top_parent_cols); + Bitmapset *parent_cols); static void expand_appendrel_subquery(PlannerInfo *root, RelOptInfo *rel, RangeTblEntry *rte, Index rti); @@ -924,27 +924,26 @@ apply_child_basequals(PlannerInfo *root, RelOptInfo *parentrel, /* * translate_col_privs_multilevel * Recursively translates the column numbers contained in - * 'top_parent_cols' to the columns numbers of a descendent relation - * given by 'relid' + * 'parent_cols' to the columns numbers of a descendent relation + * given by 'rel' */ static Bitmapset * translate_col_privs_multilevel(PlannerInfo *root, RelOptInfo *rel, RelOptInfo *top_parent_rel, - Bitmapset *top_parent_cols) + Bitmapset *parent_cols) { - Bitmapset *result; AppendRelInfo *appinfo; - if (top_parent_cols == NULL) + if (parent_cols == NULL) return NULL; /* Recurse if immediate parent is not the top parent. */ if (rel->parent != top_parent_rel) { if (rel->parent) - result = translate_col_privs_multilevel(root, rel->parent, - top_parent_rel, - top_parent_cols); + parent_cols = translate_col_privs_multilevel(root, rel->parent, + top_parent_rel, + parent_cols); else elog(ERROR, "rel with relid %u is not a child rel", rel->relid); } @@ -953,7 +952,5 @@ translate_col_privs_multilevel(PlannerInfo *root, RelOptInfo *rel, appinfo = root->append_rel_array[rel->relid]; Assert(appinfo != NULL); - result = translate_col_privs(top_parent_cols, appinfo->translated_vars); - - return result; + return translate_col_privs(parent_cols, appinfo->translated_vars); } -- 2.31.0