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-28T01:06:55Z
Lists: pgsql-hackers
On Tue, Dec 27, 2022 at 01:58:14AM -0500, Tom Lane wrote:
> Justin Pryzby <pryzby@telsasoft.com> writes:
> > FYI: this causes meson test running ("installcheck") fail when run
> > twice.  I guess that's expected to work, per:
> 
> We do indeed expect that to work ... but I don't see any problem
> with repeat "make installcheck" on HEAD.  Can you provide more
> detail about what you're seeing?

This fails when run more than once:
time meson test --setup running --print test_pg_db_role_setting-running/regress

@@ -1,12 +1,13 @@
 CREATE EXTENSION test_pg_db_role_setting;
 CREATE USER regress_super_user SUPERUSER;
+ERROR:  role "regress_super_user" already exists
 CREATE USER regress_regular_user;
+ERROR:  role "regress_regular_user" already exists
...

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

It also says:
+# and also for now force NO_LOCALE and UTF8
+ENCODING = UTF8
+NO_LOCALE = 1

which was evidently copied from the "oat" tests, which have said that
since March (5b29a9f77, 7c51b7f7c).

It fails the same way with "make" if you change it to not disable
installcheck:

EXTRA_REGRESS_OPTS="--bindir=`pwd`/tmp_install/usr/local/pgsql/bin" PGHOST=/tmp make installcheck -C src/test/modules/test_pg_db_role_setting

-- 
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