pgsql: Remove superuser checks in pgstattuple

From: Stephen Frost <sfrost(at)snowman(dot)net>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Remove superuser checks in pgstattuple
Date: 2016-09-30 02:13:43
Message-ID: E1bpnKZ-0002qJ-CL@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Remove superuser checks in pgstattuple

Now that we track initial privileges on extension objects and changes to
those permissions, we can drop the superuser() checks from the various
functions which are part of the pgstattuple extension and rely on the
GRANT system to control access to those functions.

Since a pg_upgrade will preserve the version of the extension which
existed prior to the upgrade, we can't simply modify the existing
functions but instead need to create new functions which remove the
checks and update the SQL-level functions to use the new functions
(and to REVOKE EXECUTE rights on those functions from PUBLIC).

Thanks to Tom and Andres for adding support for extensions to follow
update paths (see: 40b449a), allowing this patch to be much smaller
since no new base version script needed to be included.

Approach suggested by Noah.

Reviewed by Michael Paquier.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/fd321a1dfd64d30bf1652ea6b39b654304f68ae4

Modified Files
--------------
contrib/pgstattuple/Makefile | 7 +-
contrib/pgstattuple/pgstatapprox.c | 39 ++++++--
contrib/pgstattuple/pgstatindex.c | 122 ++++++++++++++++++++++++--
contrib/pgstattuple/pgstattuple--1.4--1.5.sql | 111 +++++++++++++++++++++++
contrib/pgstattuple/pgstattuple.c | 41 +++++++++
contrib/pgstattuple/pgstattuple.control | 2 +-
doc/src/sgml/pgstattuple.sgml | 8 ++
7 files changed, 315 insertions(+), 15 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Magnus Hagander 2016-09-30 09:28:56 pgsql: Retry opening new segments in pg_xlogdump --folllow
Previous Message Peter Eisentraut 2016-09-29 20:10:53 pgsql: Fix compiler warnings