On Tue, Feb 7, 2023 at 6:03 AM Peter Smith <smithpb2...@gmail.com> wrote: > > 5. > +defGetMinApplyDelay(DefElem *def) > +{ > + char *input_string; > + int result; > + const char *hintmsg; > + > + input_string = defGetString(def); > + > + /* > + * Parse given string as parameter which has millisecond unit > + */ > + if (!parse_int(input_string, &result, GUC_UNIT_MS, &hintmsg)) > + ereport(ERROR, > + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), > + errmsg("invalid value for parameter \"%s\": \"%s\"", > + "min_apply_delay", input_string), > + hintmsg ? errhint("%s", _(hintmsg)) : 0)); > + > + /* > + * Check both the lower boundary for the valid min_apply_delay range and > + * the upper boundary as the safeguard for some platforms where INT_MAX is > + * wider than int32 respectively. Although parse_int() has confirmed that > + * the result is less than or equal to INT_MAX, the value will be stored > + * in a catalog column of int32. > + */ > + if (result < 0 || result > PG_INT32_MAX) > + ereport(ERROR, > + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), > + errmsg("%d ms is outside the valid range for parameter \"%s\" (%d .. %d)", > + result, > + "min_apply_delay", > + 0, PG_INT32_MAX))); > + > + return result; > +} > > 5a. > Since there are no translator considerations here why not write the > first error like: > > errmsg("invalid value for parameter \"min_apply_delay\": \"%s\"", > input_string) > > ~ > > 5b. > Since there are no translator considerations here why not write the > second error like: > > errmsg("%d ms is outside the valid range for parameter > \"min_apply_delay\" (%d .. %d)", > result, 0, PG_INT32_MAX)) >
I see that existing usage in the code matches what the patch had before this comment. See below and similar usages in the code. if (start <= 0) ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("invalid value for parameter \"%s\": %d", "start", start))); -- With Regards, Amit Kapila.