Portability concerns over pq_sendbyte?

From: Andrew Gierth <andrew(at)tao11(dot)riddles(dot)org(dot)uk>
To: pgsql-hackers(at)postgresql(dot)org
Subject: Portability concerns over pq_sendbyte?
Date: 2018-05-24 17:13:23
Message-ID: 87r2m10zm2.fsf@news-spur.riddles.org.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

In PG11, pq_sendbyte got changed from taking an int parameter to taking
an int8.

While that seems to work in general, it does mean that there are now
several places in the code that do the equivalent of:

unsigned char x = 128;
pq_sendbyte(&buf, x);

which I believe is not well-defined since pq_sendbyte takes an int8, and
conversions of unrepresentable values to _signed_ integer types are
(iirc) implementation-dependent.

There are also some cases where pq_sendint16 is being called for an
unsigned value or a value that might exceed 32767.

Would it be better for these to take unsigned values, or have unsigned
variants?

--
Andrew (irc:RhodiumToad)

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2018-05-24 18:20:21 Re: A Japanese-unfriendy error message contruction
Previous Message Alvaro Herrera 2018-05-24 17:08:53 Re: found xmin from before relfrozenxid on pg_catalog.pg_authid