Re: BUG #1646: ERROR: column "mycolumn" is of type boolean - Mailing list pgsql-bugs

From Oliver Jowett
Subject Re: BUG #1646: ERROR: column "mycolumn" is of type boolean
Date
Msg-id 427943FF.20202@opencloud.com
Whole thread Raw
In response to BUG #1646: ERROR: column "mycolumn" is of type boolean but expression is of type character  ("Kjh" <kjh@networks.nera.no>)
List pgsql-bugs
Kjh wrote:
> The following bug has been logged online:
>
> Bug reference:      1646
> Logged by:          Kjh
> Email address:      kjh@networks.nera.no
> PostgreSQL version: 8.0
> Operating system:   windows XP
> Description:        ERROR: column "mycolumn" is of type boolean but
> expression is of type character
> Details:
>
> newest drivers (JDBC3)
> deployed it with JBoss 3.2.6
>
> Indeed, the entity bean has fields of java-type Boolean and the database has
> fields of type boolean, but the application server seems to send it to the
> database as "true" or "false" strings.  That is what the errormessage
> indicates to me anyway: ERROR: column "mycolumn" is of type boolean but
> expression is of type character.  (Though I am not aware of how to verify
> this other than changing column type varchar(5) which I have tried -
> unfortunately, this had lots of other undesired side-effects even though it
> worked in some cases.)

Which PreparedStatement.set...() method is being called to set the value
for this column?

To set a boolean-typed parameter, you shoud use
PreparedStatement.setBoolean(...), PreparedStatement.setObject(...,
Types.BIT), or PreparedStatement.setObject(..., Types.BOOLEAN).

If the application server is using setString() to send a boolean value,
that's where the bug lies.

-O

pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: BUG #1643: dbf2pg broken + quick fix
Next
From: "Nicholas Vinen"
Date:
Subject: BUG #1649: Date calculation year off-by-one error