Tomas Vondra <to...@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