Re: bit datatype and getObject() - Mailing list pgsql-jdbc

From Kris Jurka
Subject Re: bit datatype and getObject()
Date
Msg-id alpine.BSO.2.00.1011240122570.13088@leary.csoft.net
Whole thread Raw
In response to bit datatype and getObject()  (Thomas Kellerer <spam_eater@gmx.net>)
Responses Re: bit datatype and getObject()  (Kris Jurka <books@ejurka.com>)
List pgsql-jdbc

On Tue, 23 Nov 2010, Thomas Kellerer wrote:

> 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.
>
> I'm not sure what the JDBC specs requires here, but this mapping somehow is
> confusing.

Yeah, losing data is not good.  Previously the discussion on list was to
use java.util.BitSet, but it never resulted in a patch.  I'm not sure if
we can retain backwards compatibility for single bit length bitstrings.
So we'd have to determine whether we can maintain compatibility and if
not, is it still worth it to use BitSet.

Kris Jurka

pgsql-jdbc by date:

Previous
From: dmp
Date:
Subject: Re: bit datatype and getObject()
Next
From: Radosław Smogura
Date:
Subject: JDBC and Binary protocol error, for some statements