On 2020-11-27 11:40, Ashutosh Bapat wrote: > The solution seems to be simple though. In the attached patch, I have > added two macros > #define LSN_FORMAT "%X/%X" > #define LSN_FORMAT_ARG(lsn) (uint32) ((lsn) >> 32), (uint32) (lsn) > > which can be used instead.
It looks like we are not getting any consensus on this approach. One reduced version I would consider is just the second part, so you'd write something like
This would still reduce notational complexity quite a bit but avoid any funny business with the format strings.
Thanks for looking into this. I would like to keep both the LSN_FORMAT and LSN_FORMAT_ARGS but with a note that the first can not be used in elog() or in messages which require localization. We have many other places doing snprintf() and such stuff, which can use LSN_FORMAT. If we do so, the functions to output string representation will not be needed so they can be removed.