8000 Prevent duplicate RTEPermissionInfo for plain-inheritance parents · Giperboloid/postgres@01575ad · GitHub
[go: up one dir, main page]

Skip to content

Commit 01575ad

Browse files
committed
Prevent duplicate RTEPermissionInfo for plain-inheritance parents
Currently, expand_single_inheritance_child() doesn't reset perminfoindex in a plain-inheritance parent's child RTE, because prior to 387f9ed, the executor would use the first child RTE to locate the parent's RTEPermissionInfo. That in turn causes add_rte_to_flat_rtable() to create an extra RTEPermissionInfo belongi 8000 ng to the parent's child RTE with the same content as the one belonging to the parent's original ("root") RTE. In 387f9ed, we changed things so that the executor can now use the parent's "root" RTE for locating its RTEPermissionInfo instead of the child RTE, so the latter's perminfoindex need not be set anymore, so make it so. Reported-by: Tom Lane Discussion: https://postgr.es/m/839708.1698174464@sss.pgh.pa.us Backpatch-through: 16
1 parent 29d0a77 commit 01575ad

File tree

1 file changed

+2
-7
lines changed

1 file changed

+2
-7
lines changed

src/backend/optimizer/util/inherit.c

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -494,13 +494,8 @@ expand_single_inheritance_child(PlannerInfo *root, RangeTblEntry *parentrte,
494494
childrte->inh = false;
495495
childrte->securityQuals = NIL;
496496

497-
/*
498-
* No permission checking for the child RTE unless it's the parent
499-
* relation in its child role, which only applies to traditional
500-
* inheritance.
501-
*/
502-
if (childOID != parentOID)
503-
childrte->perminfoindex = 0;
497+
/* No permission checking for child RTEs. */
498+
childrte->perminfoindex = 0;
504499

505500
/* Link not-yet-fully-filled child RTE into data structures */
506501
parse->rtable = lappend(parse->rtable, childrte);

0 commit comments

Comments
 (0)
0