Re: Using boolean '1' in jdbc2

From: Kaneda K <kaneda(at)dedaletechnology(dot)com>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: Using boolean '1' in jdbc2
Date: 2001-09-14 09:22:53
Message-ID: 5.0.2.1.2.20010914111757.00a94908@dedaletechnology.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

At 22:58 13/09/2001 -0500, you wrote:
>I'm that person. I'm not trying to do anything convoluted. ;-)
>
>I have a schema & data from Oracle that uses a 'fake' boolean column.
>(Stupid oracle doesn't support type boolean afaik - uses number). I
>find the easiest way to adapt the schema & data to postgresql is to
>*not* convert the 'fake' boolean fields (enforced in Oracle using
>constraints) to postgresql boolean but to use either numeric(1) or
>integer. Why? Because all my data (already exported) has 0's and 1's
>and it would be a waste to try convert all the data to true/false, which
>postgresql requires for a boolean field. If there is a trick which
>allows 0's and 1's to be imported into a boolean field, I guess I could
>use that instead!?
>
>So - the submitted patch allows a boolean field to be implemented using
>either numeric or integer fields - I think this is pretty common. An
>according to the archives, this has been dicussed before.
>
>Glenn

Because the "1" features is not suppossed to be in the spécification, cant
you use a personnal class that is a child of the Resultset and overwrite
the method ?

Then - you don't have to permute all your data and this features (which is
not "standard") won't be added to the Driver.

My 2c

Ps: I personnally does that with my MySQL Driver. I use enum('1','0') for
boolean in MySql.

>On Thu, 2001-09-13 at 14:46, Rene Pijlman wrote:
> > On Thu, 13 Sep 2001 15:29:38 -0400 (EDT), you wrote:
> > >> Bruce Momjian writes:
> > >> > I noticed that jdbc1 getBoolean allows '1', while jdbc2 does not. The
> > >> > following patch makes jdbc2 accept '1' also. Is this OK?
> > >>
> > >> Why? Booleans always come out as 't' or 'f'.
> > >
> > >Someone emailed me privately that they wanted to use '1' for
> > >boolean. No idea why, and no idea why jdbc1 has it.
> >
> > In jdbc1 the string to boolean conversion is implemented within
> > getBoolean() itself, which interprets data from the PostgreSQL
> > backend.
> >
> > In jdbc2 its implemented in a helper method
> > ResultSet.toBoolean(), which is public, probably because its now
> > also used in the new Array feature.
> >
> > Perhaps someone is now using ResultSet.toBoolean() as a utility
> > method. I don't think that's a good idea. Even though its public
> > its not part of any published interface. So anyone who wants to
> > convert 1 to true should use his own method. We could rule this
> > out by declaring the method protected or package (no access
> > specifier).
> >
> > This doesn't explain why jdbc1 accepts '1' though. Anyone?
> >
> > Regards,
> > René Pijlman <rene(at)lab(dot)applinet(dot)nl>
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 1: subscribe and unsubscribe commands go to majordomo(at)postgresql(dot)org
>
>
>
>---------------------------(end of broadcast)---------------------------
>TIP 1: subscribe and unsubscribe commands go to majordomo(at)postgresql(dot)org

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Rene Pijlman 2001-09-14 09:40:32 Re: Using boolean '1' in jdbc2
Previous Message Peter T Mount 2001-09-14 08:55:06 Fw: JDBC Bug Report