Re: Possible regression setting GUCs on \connect

Nathan Bossart <nathandbossart@gmail.com>

From: Nathan Bossart <nathandbossart@gmail.com>
To: David Steele <david@pgmasters.net>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Alexander Korotkov <akorotkov@postgresql.org>, Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2023-04-27T18:43:08Z
Lists: pgsql-hackers
I suspect the problem is that GUCArrayDelete() is using the wrong Datum:

diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 9dd624b3ae..ee9f87e7f2 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -6496,7 +6496,7 @@ GUCArrayDelete(ArrayType *array, ArrayType **usersetArray, const char *name)
         {
             newarray = construct_array_builtin(&d, 1, TEXTOID);
             if (usersetArray)
-                newUsersetArray = construct_array_builtin(&d, 1, BOOLOID);
+                newUsersetArray = construct_array_builtin(&userSetDatum, 1, BOOLOID);
         }
 
         index++;

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



Commits

  1. Revert "Add USER SET parameter values for pg_db_role_setting"

  2. Fix wrong construct_array_builtin() call in GUCArrayDelete()

  3. In hstore_plpython, avoid crashing when return value isn't a mapping.

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