Re: predefined role(s) for VACUUM and ANALYZE

Nathan Bossart <nathandbossart@gmail.com>

From: Nathan Bossart <nathandbossart@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Stephen Frost <sfrost@snowman.net>, Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>, "David G. Johnston" <david.g.johnston@gmail.com>, Kyotaro Horiguchi <horikyota.ntt@gmail.com>, Michael Paquier <michael@paquier.xyz>, Robert Haas <robertmhaas@gmail.com>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2022-09-30T22:32:57Z
Lists: pgsql-hackers
On Fri, Sep 30, 2022 at 06:00:53PM -0400, Tom Lane wrote:
> Nathan Bossart <nathandbossart@gmail.com> writes:
>> The main one I see is AclItem, which increases from 12 bytes to 16 bytes.
> 
> ... and now requires double alignment ... did you fix its typalign?

Nope, I missed that, thanks for pointing it out.  Should we move ai_privs
to the beginning of the struct, too?  The only other similar example I see
is TimeTzADT, but that only consists of an int64 and an int32, while
AclItem starts with 2 uint32s.  While it might not be strictly necessary,
it seems like there is a small chance it could become necessary in the
future.

> We could conceivably dodge the alignment increase by splitting the 64-bit
> field into two 32-bit fields, one for base privileges and one for grant
> options.  That'd be rather invasive, so unless it leads to pleasant
> improvements in readability (which it might, perhaps) I wouldn't advocate
> for it.

Yeah, the invasiveness is the main reason I haven't tried this yet, but it
does seem like it'd improve readability.

-- 
Nathan Bossart
Amazon Web Services: https://aws.amazon.com



Commits

  1. Provide non-superuser predefined roles for vacuum and analyze

  2. Provide per-table permissions for vacuum and analyze.

  3. Expand AclMode to 64 bits

  4. Simplify WARNING messages from skipped vacuum/analyze on a table

  5. Allow granting SET and ALTER SYSTEM privileges on GUC parameters.

  6. Add String object access hooks