Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 01575ad

Browse filesBrowse 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 belonging 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
Copy full SHA for 01575ad

File tree

1 file changed

+2
-7
lines changed
Filter options

1 file changed

+2
-7
lines changed

‎src/backend/optimizer/util/inherit.c

Copy file name to clipboardExpand all lines: src/backend/optimizer/util/inherit.c
+2-7Lines 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)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.