Fix wrong construct_array_builtin() call in GUCArrayDelete()
authorAlexander Korotkov <[email protected]>
Thu, 27 Apr 2023 19:06:14 +0000 (22:06 +0300)
committerAlexander Korotkov <[email protected]>
Thu, 27 Apr 2023 19:06:14 +0000 (22:06 +0300)
The current code unintentionally uses the wrong datum to construct an array.
The bug was introduced by 096dd80f3c, so no backpatching is needed.

Reported-by: David Steele
Discussion: https://postgr.es/m/d46f9265-ff3c-6743-2278-6772598233c2%40pgmasters.net
Author: Nathan Bossart
Reviewed-by: David Steele, Tom Lane
src/backend/utils/misc/guc.c

index 9dd624b3ae0f81989ffc39484935a536777c3f3f..53d1d9a06a735d239436bd579db41a919f2621d2 100644 (file)
@@ -6496,7 +6496,8 @@ 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++;