BUG #14379: Different results
The following bug has been logged on the website:
Bug reference: 14379
Logged by: Bart Lengkeek
Email address: pq@lengkeek.com
PostgreSQL version: 9.4.9
Operating system: Windows/Linux
Description:
The following query:
SELECT '2147483648'::cid;
Returns '2147483648' on Linux server (9.5.1) and '2147483647' (=INT32_MAX)
on windows server (9.4.9 and 9.5.4).
Not sure if this is a bug. I thought it surprising that results differ. I
couldn't see any uint32 to int32 conversion in a fast scan of the source.
--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs
pq@lengkeek.com writes:
The following query:
SELECT '2147483648'::cid;
Returns '2147483648' on Linux server (9.5.1) and '2147483647' (=INT32_MAX)
on windows server (9.4.9 and 9.5.4).
Not sure if this is a bug. I thought it surprising that results differ. I
couldn't see any uint32 to int32 conversion in a fast scan of the source.
Hmm. cidin() just uses atoi() and doesn't worry about overflow. I'm not
sure how much we care about detecting invalid input, since CID isn't
really a user-facing type, but nonetheless atoi() seems like the wrong
thing here because CommandId is uint32 not int32. It really ought to
use strtoul() like xidin() does, so that it can correctly read any
output of cidout().
Thanks for the report!
regards, tom lane
--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs