Fix wrong construct_array_builtin() call in GUCArrayDelete()
authorAlexander Korotkov
Thu, 27 Apr 2023 19:06:14 +0000 (22:06 +0300)
committerAlexander Korotkov
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++;