Kris Jurka <books@ejurka.com> writes:
> On Wed, 8 Feb 2006, Mark Lewis wrote:
>> To maintain compatibility with existing code but still give access to
>> the entire OID value space, why not map OID values >= 2**31 to negative
>> numbers-- i.e. just consider them to be signed ints?
> We don't always know when we're working with OIDs. If someone says
> PreparedStatement.setInt() we don't know if they're passing us a mangled
> OID they got from LargeObjectManager.create or if they're just passing us
> an int, so we'd have to send the mangled form to the database.
Does that matter? There's an implicit cast from int4 to oid on the
database side, so I am not clear where the problem really comes in.
regression=# select (-1)::int4::oid;
oid
------------
4294967295
(1 row)
regression=# select 4294967295::oid::int4;
int4
------
-1
(1 row)
regards, tom lane