On 19.08.22 03:06, John Naylor wrote:
> On Thu, Aug 18, 2022 at 4:49 PM Peter Eisentraut
> <peter.eisentraut@enterprisedb.com> wrote:
>>
>> On 18.08.22 04:10, John Naylor wrote:
>>> While at it, most format strings already use %u, so for consintency
>>> change the remaining stragglers using %d.
>>
>> This is incorrect. Replication origin IDs are of type uint16, which
>> gets promoted to int in a variable arguments list, so %d is the correct
>> placeholder.
>
> I would think that for uint16, either %d or %u would have the same
> result. Is there some other consideration I'm not aware of?
Every once in a while, I build PostgreSQL with -Wformat-signedness,
which often finds issues with OIDs and timeline IDs printed with the
wrong placeholder. There is a lot of noise to skip past when doing
that, but in the long run it would be nice if we didn't add more of it.