v1-0001-Fix-translate_col_privs_multilevel.patch
application/octet-stream
Filename: v1-0001-Fix-translate_col_privs_multilevel.patch
Type: application/octet-stream
Part: 0
Patch
Format: format-patch
Series: patch v1-0001
Subject: Fix translate_col_privs_multilevel
| File | + | − |
|---|---|---|
| src/backend/optimizer/util/inherit.c | 9 | 12 |
From 9711038cf3003cb04df26cf739ee7bb207d11d0a Mon Sep 17 00:00:00 2001
From: Richard Guo <guofenglinux@gmail.com>
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