On 2018-07-09 15:44:36 -0400, Alvaro Herrera wrote:
> > + ereport(errlevel,
> > (errcode(ERRCODE_TOO_MANY_ROWS),
> > errmsg("query returned more than one row"),
> > - errdetail ? errdetail_internal("parameters: %s", errdetail) : 0));
> > + errdetail ? errdetail_internal("parameters: %s", errdetail) : 0,
> > + use_errhint ? errhint("too_many_rows check of extra_%s is active.",
> > + too_many_rows_level == ERROR ? "errors" : "warnings") : 0));
>
> Please write this in a way that results in less translatable messages,
> and don't build setting names at runtime. Concretely I suggest this:
>
> errhint(too_many_rows_level == ERROR ?
> gettext_noop("%s check of extra_errors is active.") :
> gettext_noop("%s check of extra_warnings is active."),
> "too_many_rows");
Why not put extra_errors/extra_warnings into a variable as well?
Greetings,
Andres Freund