Tomas Vondra <tomas@vondra.me> writes:
> I'm not forcing you to do elog, if you think ereport() is better. I'm
> only asking because AFAIK the "policy" is that ereport is for cases that
> think can happen (and thus get translated), while elog(ERROR) is for
> cases that we believe shouldn't happen.
The proposed coding looks fine from that perspective, because it uses
errmsg_internal and errdetail_internal which don't give rise to
translatable strings. Having said that, if we think this is a
"can't happen" case then it's fair to wonder why go to such lengths
to format it prettily. Also, I'd argue that the error message
style guidelines still apply, but this errdetail doesn't conform.
regards, tom lane