One problem with it is that while we can leave "List of ???" out of the set of translatable strings easily, we can't currently do that for the argument of pg_log_error because it's automatically a gettext trigger. I'd rather not burden translators with figuring out what to do with that. Is it worth creating pg_log_error_internal, equivalently to elog and errmsg_internal in the backend?
I don't think so, unless there are other uses of it waiting. For this particular item, I'm still of the opinion that leaving it as "List of relations" is a pretty good default for some future somebody who forgets to update the lists of relation types. New types are certainly not going to happen often. Better "List of relations" than a release where everybody and their cousin starts asking what "List of ???" means.
BTW, I updated the regression tests for this, and that bears out your argument that one-type commands are the majority. There are still a couple "List of relations", but not many.
Thank you for that, I should have done that in my original patch.
Cheers,
Greg
P.S. I found it amusing to see in some quick grepping that pg_controldata has a msgstr of "???". So far no language has managed to translate it into something else.