Re: [BUGS] Mapping Hibernate boolean to smallint(Postgresql)

From: Mark Kirkwood <mark(dot)kirkwood(at)catalyst(dot)net(dot)nz>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: [BUGS] Mapping Hibernate boolean to smallint(Postgresql)
Date: 2010-09-30 22:09:33
Message-ID: 4CA50A9D.2030707@catalyst.net.nz
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs pgsql-jdbc

On 01/10/10 10:50, stagirus wrote:
> Oliver: Thank you for your generous response. The options you suggested were
> not yet viable. Disagreeing is part of human nature. No worries there.
>
> But if you review Craig's remarks carefully, this issue is likely outside
> the scope of JDBC drivers. It is more to do with the Postgresql DB Engine
> that is not happy to cast or convert boolean values to SMALLINT columns.
>
> Craig.. is my interpretation of your comments right?
>
>

This could be an interesting related factor (using 9.0 here):

test=# create table smallinttest(val smallint);
CREATE TABLE

test=# create table booltest(val bool);
CREATE TABLE

test=# insert into booltest values (1);
ERROR: column "val" is of type boolean but expression is of type integer
LINE 1: insert into booltest values (1);

test=# insert into booltest values ((1::smallint)::bool);
ERROR: cannot cast type smallint to boolean
LINE 1: insert into booltest values ((1::smallint)::bool);
^
^
HINT: You will need to rewrite or cast the expression.
test=# insert into booltest values (1::bool);
INSERT 0 1

test=# insert into smallinttest values (true);
ERROR: column "val" is of type smallint but expression is of type boolean
LINE 1: insert into smallinttest values (true);
^
HINT: You will need to rewrite or cast the expression.
test=# insert into smallinttest values (true::smallint);
ERROR: cannot cast type boolean to smallint
LINE 1: insert into smallinttest values (true::smallint);
^
test=# insert into smallinttest values (true::int);
INSERT 0 1

So looks like we are missing type casts BOOLEAN <-> SMALLINT, given that
we can happily cast to and from INTEGER.

Before getting too excited, note that the server is clearly not doing
automated casts under any circumstances, I had to coerce it - so might
not help you even if we added such casts.

Cheers

Mark

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Robert Haas 2010-09-30 22:11:58 Re: Unexpected omission of tables with duplicate names across schemas
Previous Message Oliver Jowett 2010-09-30 22:08:47 Re: [BUGS] Mapping Hibernate boolean to smallint(Postgresql)

Browse pgsql-jdbc by date

  From Date Subject
Next Message stagirus 2010-09-30 22:18:53 Re: [BUGS] Mapping Hibernate boolean to smallint(Postgresql)
Previous Message Oliver Jowett 2010-09-30 22:08:47 Re: [BUGS] Mapping Hibernate boolean to smallint(Postgresql)