Lists: | pgsql-jdbc |
---|
From: | Holger Schulz <hst1(at)online(dot)de> |
---|---|
To: | pgsql-jdbc(at)postgresql(dot)org |
Subject: | Bug extracting bit value |
Date: | 2006-10-01 10:57:17 |
Message-ID: | bKGiHoZKhuw0FF0vBDRcMjj7JmqBR4ufH7XEELpMhkV@akmail |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-jdbc |
Hello!
When I extract a bit value by JDBC I get an Boolean Object - even for bit(3)!
CREATE TABLE testbits
(
cbitone bit(1),
cbitthree bit(3),
cvarbit varbit,
cboolean bool
)
INSERT INTO testbits
("cbitone", "cbitthree", "cvarbit", "cboolean") values
(
B'1',
B'101',
B'0101',
true
)
------------------
In Java:
select * from testbits
Object oValue = m_resultSet.getObject(i);
returns:
| cbitone | cbitthree | cvarbit | cboolean |
-|---------------------|---------------------|--------------------------------|---------------------|-
| true | false | 0101 | true |
| 'java.lang.Boolean' | 'java.lang.Boolean' | 'org.postgresql.util.PGobject' | 'java.lang.Boolean' |
------------------
When I use getString() instead of getObject() I get this result:
Object oValue = m_resultSet.getObject(i);
| cbitone | cbitthree | cvarbit | cboolean |
-|--------------------|--------------------|--------------------|--------------------|-
| '1' | '101' | '0101' | 't' |
| 'java.lang.String' | 'java.lang.String' | 'java.lang.String' | 'java.lang.String' |
------------------
Same statement in pgAdmin III returns:
1;101;"0101";t
------------------
Tested with:
PostgreSQL 8.1.4 on Windows 2000
JDBC driver: postgresql-8.2dev-503.jdbc3.jar AND postgresql-8.1-407.jdbc3.jar
Holger
From: | Oliver Jowett <oliver(at)opencloud(dot)com> |
---|---|
To: | Holger Schulz <hst1(at)online(dot)de> |
Cc: | pgsql-jdbc(at)postgresql(dot)org |
Subject: | Re: Bug extracting bit value |
Date: | 2006-10-01 21:25:29 |
Message-ID: | 45203249.7070304@opencloud.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-jdbc |
Holger Schulz wrote:
> When I extract a bit value by JDBC I get an Boolean Object - even for bit(3)!
That's a bit strange, if varbit(n) returns a custom PGobject I'd expect
bit(n) to do the same..
Again this is a type where there's no good JDBC mapping for it though ..
maybe boolean[] would be right, but then you can also have real arrays
of bools..
The confusing thing is that JDBC's Types.BIT really means "boolean" not
"bit(n)" :(
-O
From: | Kris Jurka <books(at)ejurka(dot)com> |
---|---|
To: | Oliver Jowett <oliver(at)opencloud(dot)com> |
Cc: | Holger Schulz <hst1(at)online(dot)de>, pgsql-jdbc(at)postgresql(dot)org |
Subject: | Re: Bug extracting bit value |
Date: | 2006-10-30 20:41:04 |
Message-ID: | Pine.BSO.4.63.0610301410390.2855@leary2.csoft.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-jdbc |
On Sun, 1 Oct 2006, Oliver Jowett wrote:
> Holger Schulz wrote:
>
>> When I extract a bit value by JDBC I get an Boolean Object - even for
>> bit(3)!
>
> That's a bit strange, if varbit(n) returns a custom PGobject I'd expect
> bit(n) to do the same..
Well, varbit only returns a bare PGobject not a custom implementation, so
it's rather useless. Any type the driver knows nothing about gets this,
so we could remove the bit behavior, but I'm not sure it's a clear winner.
>
> Again this is a type where there's no good JDBC mapping for it though ..
> maybe boolean[] would be right, but then you can also have real arrays of
> bools..
Right, this would be good for getObject, but setObject wouldn't know what
to do with it.
Kris Jurka