Re: Allow placeholders in ALTER ROLE w/o superuser

Alexander Korotkov <aekorotkov@gmail.com>

From: Alexander Korotkov <aekorotkov@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Alvaro Herrera <alvherre@alvh.no-ip.org>, Pavel Borisov <pashkin.elfe@gmail.com>, Steve Chavez <steve@supabase.io>, Kyotaro Horiguchi <horikyota.ntt@gmail.com>, nathandbossart@gmail.com, pgsql-hackers@postgresql.org
Date: 2022-12-06T15:00:54Z
Lists: pgsql-hackers

Attachments

On Mon, Dec 5, 2022 at 10:32 PM Alexander Korotkov <aekorotkov@gmail.com> wrote:
> On Mon, Dec 5, 2022 at 8:18 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
> > Alvaro Herrera <alvherre@alvh.no-ip.org> writes:
> > > I couldn't find any discussion of the idea of adding "(s)" to the
> > > variable name in order to mark the variable userset in the catalog, and
> > > I have to admit I find it a bit strange.  Are we really agreed that
> > > that's the way to proceed?
> >
> > I hadn't been paying close attention to this thread, sorry.
> >
> > I agree that that seems like a very regrettable choice,
> > especially if you anticipate having to bump catversion anyway.
>
> I totally understand that this change requires a catversion bump.
> I've reflected this in the commit message.
>
> > Better to add a bool column to the catalog.
>
> What about adding a boolean array to the pg_db_role_setting? So,
> pg_db_role_setting would have the following columns.
>  * setdatabase oid
>  * setrole oid
>  * setconfig text[]
>  * setuser bool[]

The revised patch implements this way for storage USER SET flag.  I
think it really became more structured and less cumbersome.

------
Regards,
Alexander Korotkov

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Remove extra regress check arguments from test_pg_db_role_setting

  2. meson: Add 'running' test setup, as a replacement for installcheck

  3. Add USER SET parameter values for pg_db_role_setting

  4. Fix sloppy cleanup of roles in privileges.sql.

  5. Drop test user when done with it.

  6. GRANT rights to CURRENT_USER instead of adding roles

  7. Clean up roles from roleattributes test

  8. Make repeated 'make installcheck' runs work