Re: Allow placeholders in ALTER ROLE w/o superuser

Justin Pryzby <pryzby@telsasoft.com>

From: Justin Pryzby <pryzby@telsasoft.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Alexander Korotkov <aekorotkov@gmail.com>, Pavel Borisov <pashkin.elfe@gmail.com>, Alvaro Herrera <alvherre@alvh.no-ip.org>, Steve Chavez <steve@supabase.io>, Kyotaro Horiguchi <horikyota.ntt@gmail.com>, nathandbossart@gmail.com, pgsql-hackers@postgresql.org
Date: 2022-12-28T17:28:07Z
Lists: pgsql-hackers
On Tue, Dec 27, 2022 at 11:29:40PM -0500, Tom Lane wrote:
> Justin Pryzby <pryzby@telsasoft.com> writes:
> > This fails when run more than once:
> > time meson test --setup running --print test_pg_db_role_setting-running/regress
> 
> Ah.
> 
> > It didn't fail for you because it says:
> > ./src/test/modules/test_pg_db_role_setting/Makefile
> > +# disable installcheck for now
> > +NO_INSTALLCHECK = 1
> 
> So ... exactly why is the meson infrastructure failing to honor that?
> This test looks sufficiently careless about its side-effects that
> I completely agree with the decision to not run it in pre-existing
> installations.  Failing to drop a created superuser is just one of
> its risk factors --- it also leaves around pg_db_role_setting entries.

Meson doesn't try to parse the Makefiles (like the MSVC scripts) but
(since 3f0e786ccb) has its own implementation, which involves setting
'runningcheck': false.

096dd80f3c seems to have copied the NO_INSTALLCHECK from oat's makefile,
but didn't copy "runningcheck" from oat's meson.build (but did copy its
regress_args).

-- 
Justin



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