mirror of
https://github.com/postgres/postgres.git
synced 2025-05-18 17:41:14 +03:00
Handle NULL for short descriptions of custom GUC variables
If a short description is specified as NULL in one of the various DefineCustomXXXVariable() functions available to external modules to define a custom parameter, SHOW ALL would crash. This change teaches SHOW ALL to properly handle NULL short descriptions, as well as any code paths that manipulate it, to gain in flexibility. Note that help_config.c was already able to do that, when describing a set of GUCs for postgres --describe-config. Author: Steve Chavez Reviewed by: Nathan Bossart, Andres Freund, Michael Paquier, Tom Lane Discussion: https://postgr.es/m/CAGRrpzY6hO-Kmykna_XvsTv8P2DshGiU6G3j8yGao4mk0CqjHA%40mail.gmail.com Backpatch-through: 10
This commit is contained in:
parent
9e3dbc6fd9
commit
1e6802990c
@ -9089,7 +9089,16 @@ ShowAllGUCConfig(DestReceiver *dest)
|
||||
isnull[1] = true;
|
||||
}
|
||||
|
||||
values[2] = PointerGetDatum(cstring_to_text(conf->short_desc));
|
||||
if (conf->short_desc)
|
||||
{
|
||||
values[2] = PointerGetDatum(cstring_to_text(conf->short_desc));
|
||||
isnull[2] = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
values[2] = PointerGetDatum(NULL);
|
||||
isnull[2] = true;
|
||||
}
|
||||
|
||||
/* send it to dest */
|
||||
do_tup_output(tstate, values, isnull);
|
||||
@ -9101,7 +9110,8 @@ ShowAllGUCConfig(DestReceiver *dest)
|
||||
pfree(setting);
|
||||
pfree(DatumGetPointer(values[1]));
|
||||
}
|
||||
pfree(DatumGetPointer(values[2]));
|
||||
if (conf->short_desc)
|
||||
pfree(DatumGetPointer(values[2]));
|
||||
}
|
||||
|
||||
end_tup_output(tstate);
|
||||
@ -9279,7 +9289,7 @@ GetConfigOptionByNum(int varnum, const char **values, bool *noshow)
|
||||
values[3] = _(config_group_names[conf->group]);
|
||||
|
||||
/* short_desc */
|
||||
values[4] = _(conf->short_desc);
|
||||
values[4] = conf->short_desc != NULL ? _(conf->short_desc) : NULL;
|
||||
|
||||
/* extra_desc */
|
||||
values[5] = conf->long_desc != NULL ? _(conf->long_desc) : NULL;
|
||||
|
Loading…
x
Reference in New Issue
Block a user