CONFIG_VAR_TYPE_STRING_ARRAY, true, 0, MAX_NUM_BACKENDS
},
NULL,
- "ALWAYS_MASTER",
+ "", /* for ALWAYS_MASTER */
EMPTY_CONFIG_STRING,
BackendFlagsAssignFunc, NULL, BackendFlagsShowFunc, BackendSlotEmptyCheckFunc
},
BackendFlagsAssignFunc(ConfigContext context, char *newval, int index, int elevel)
{
- unsigned short flag = 0;
+ unsigned short flag;
int i,
n;
bool allow_to_failover_is_specified = false;
bool disallow_to_failover_is_specified = false;
char **flags;
- flags = get_list_from_string(newval, "|", &n);
- if (!flags || n < 0)
- {
- if (flags)
- pfree(flags);
+ flag = g_pool_config.backend_desc->backend_info[index].flag;
- ereport(elevel,
- (errmsg("invalid configuration for key \"backend_flag%d\"", index),
- errdetail("unable to get backend flags")));
- return false;
- }
+ flags = get_list_from_string(newval, "|", &n);
for (i = 0; i < n; i++)
{
g_pool_config.backend_desc->backend_info[index].flag = flag;
ereport(DEBUG1,
(errmsg("setting \"backend_flag%d\" flag: %04x ", index, flag)));
- pfree(flags);
+ if (flags)
+ pfree(flags);
return true;
}