bit datatype and getObject()

From: Thomas Kellerer <spam_eater(at)gmx(dot)net>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: bit datatype and getObject()
Date: 2010-11-23 21:55:57
Message-ID: ichd9g$e1g$1@dough.gmane.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Hi,

the JDBC driver seems to map columns defined as "bit" to Boolean regardless of the definition of the column. So even a bit(5) is returned as boolean value which I think is not correct.

Consider the following

CREATE TABLE bit_test (some_bits bit(5));
INSERT INTO bit_test VALUES ('01010');

When I run a select in psql it will return 01010 as the column's value.

When running a select from within Java and using getObject() on that column a java.lang.Boolean is returned.

This might be correct for a bit(1) but not for columns defined with a bigger width.

It is returned correctly when using getString() on that column though.
But for applications using the generic getObject() this returns a wrong value.

I'm not sure what the JDBC specs requires here, but this mapping somehow is confusing.

I tested this with PG 9.0 and the JDBC4 build 801 driver.

Regards
Thomas

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message dmp 2010-11-24 03:06:11 Re: bit datatype and getObject()
Previous Message Robert Haas 2010-11-23 15:54:25 Re: [JDBC] Support for JDBC setQueryTimeout, et al.