Re: Possible regression setting GUCs on \connect

David Steele <david@pgmasters.net>

From: David Steele <david@pgmasters.net>
To: Nathan Bossart <nathandbossart@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Alexander Korotkov <akorotkov@postgresql.org>, Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2023-04-27T18:47:33Z
Lists: pgsql-hackers
On 4/27/23 21:43, Nathan Bossart wrote:
> 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++;

That seems to work. The errors are now gone.

Thanks!
-David



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.