On 2020-Nov-30, Ashutosh Bapat wrote:
> Peter Eisentraut explained that the translation system can not handle
> strings broken by macros, e.g. errmsg("foo" MACRO "bar"), since it doesn't
> know statically what the macro resolves to. But I am not familiar with our
> translation system myself. But if we allow INT64_FORMAT, LSN_FORMAT should
> be allowed. That makes life much easier. We do not need other functions at
> all.
>
> Peter E or somebody familiar with translations can provide more
> information.
We don't allow INT64_FORMAT in translatable strings, period. (See
commit 6a1cd8b9236d which undid some hacks we had to use to work around
the lack of it, by allowing %llu to take its place.) For the same
reason, we cannot allow LSN_FORMAT or similar constructions in
translatable strings either.
If the solution to ugliness of LSN printing is going to require that we
add a "%s" which prints a previously formatted string with LSN_FORMAT,
it won't win us anything.
As annoyed as I am about our LSN printing, I don't think this patch
has the solutions we need.