pgsql: Stop accessing checkAsUser via RTE in some cases

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Stop accessing checkAsUser via RTE in some cases
Date: 2022-11-30 11:08:26
Message-ID: E1p0Kx0-001QLw-17@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Stop accessing checkAsUser via RTE in some cases

A future commit will move the checkAsUser field from RangeTblEntry
to a new node that, unlike RTEs, will only be created for tables
mentioned in the query but not for the inheritance child relations
added to the query by the planner. So, checkAsUser value for a
given child relation will have to be obtained by referring to that
for its ancestor mentioned in the query.

In preparation, it seems better to expand the use of RelOptInfo.userid
during planning in place of rte->checkAsUser so that there will be
fewer places to adjust for the above change.

Given that the child-to-ancestor mapping is not available during the
execution of a given "child" ForeignScan node, add a checkAsUser
field to ForeignScan to carry the child relation's RelOptInfo.userid.

Author: Amit Langote <amitlangote09(at)gmail(dot)com>
Discussion: https://postgr.es/m/CA+HiwqGFCs2uq7VRKi7g+FFKbP6Ea_2_HkgZb2HPhUfaAKT3ng@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/599b33b9492dfefd1219c1d31801f40b3ba90b0d

Modified Files
--------------
contrib/postgres_fdw/postgres_fdw.c | 18 +++++++-----------
src/backend/executor/execMain.c | 2 +-
src/backend/optimizer/plan/createplan.c | 6 +++++-
src/backend/rewrite/rowsecurity.c | 2 +-
src/backend/statistics/extended_stats.c | 6 +++---
src/backend/utils/adt/selfuncs.c | 29 ++++++++++++++++++-----------
src/backend/utils/misc/rls.c | 2 +-
src/include/nodes/pathnodes.h | 2 +-
src/include/nodes/plannodes.h | 2 ++
9 files changed, 39 insertions(+), 30 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Alvaro Herrera 2022-11-30 11:10:14 pgsql: Bump catalog version for previous commit
Previous Message Noah Misch 2022-11-30 07:07:01 Re: pgsql: Revoke PUBLIC CREATE from public schema, now owned by pg_databas