Thread: Calling functions with smallint fails

Calling functions with smallint fails

From
Christian Niles
Date:
I'm having problems using CallableStatement to execute a function that
has a smallint parameter. The problem I'm having is identical to this
bug report:

http://archives.postgresql.org/pgsql-bugs/2003-04/msg00060.php

 From a basic examination of the code, it seems that setShort(int,
short) simply serializes the value to a string, making it
indistinguishable from an integer. The response to that bug mentions
that the literal needs to be cast to a smallint:

http://archives.postgresql.org/pgsql-bugs/2003-04/msg00061.php

Is this a known problem with the JDBC implementation, or is this a bug
that can be fixed?

best,
christian.


Re: Calling functions with smallint fails

From
Kris Jurka
Date:

On Thu, 21 Oct 2004, Christian Niles wrote:

>
>  From a basic examination of the code, it seems that setShort(int,
> short) simply serializes the value to a string, making it
> indistinguishable from an integer.

This has been fixed in the 8.0 driver series as all calls are now strongly
typed.

Kris Jurka

Re: Calling functions with smallint fails

From
Christian Niles
Date:
Thanks for the quick reply on both issues. The new driver works as
advertised.

best,
christian.

On Oct 21, 2004, at 2:59 PM, Kris Jurka wrote:

>
>
> On Thu, 21 Oct 2004, Christian Niles wrote:
>
>>
>>  From a basic examination of the code, it seems that setShort(int,
>> short) simply serializes the value to a string, making it
>> indistinguishable from an integer.
>
> This has been fixed in the 8.0 driver series as all calls are now
> strongly
> typed.
>
> Kris Jurka
>


Re: Calling functions with smallint fails

From
Markus Schaber
Date:
Hi, Kris,

On Thu, 21 Oct 2004 13:59:54 -0500 (EST)
Kris Jurka <books@ejurka.com> wrote:

> >  From a basic examination of the code, it seems that setShort(int,
> > short) simply serializes the value to a string, making it
> > indistinguishable from an integer.
>
> This has been fixed in the 8.0 driver series as all calls are now strongly
> typed.

And this just broke the persistence abstraction layer in one of our
legacy apps, as they use code like setString(i, obj.toString()) for
everything including Number types. :-(

Now, we have an additional reason to throw this crappy code away, and
replace it with hibernate :-)


Thanks for your great work.
Markus

--
markus schaber | dipl. informatiker
logi-track ag | rennweg 14-16 | ch 8001 zürich
phone +41-43-888 62 52 | fax +41-43-888 62 53
mailto:schabios@logi-track.com | www.logi-track.com