Re: Fix for getXXX (numbers) - Mailing list pgsql-jdbc
| From | Kim Ho |
|---|---|
| Subject | Re: Fix for getXXX (numbers) |
| Date | |
| Msg-id | 1059074512.7563.94.camel@topanga.toronto.redhat.com Whole thread Raw |
| In response to | Re: Fix for getXXX (numbers) (Barry Lind <blind@xythos.com>) |
| List | pgsql-jdbc |
It solves this (which CTS is checking for):
In psql:
create table real_tab (a numeric);
In java:
PreparedStatement pstmt = conn.prepareStatement("insert into real_tab
values (?)");
pstmt.setFloat(1, Float.parseFloat(String.valueOf(Integer.MIN_VALUE)));
pstmt.executeUpdate();
ResultSet rs = conn.createStatement().executeQuery("select * from
real_tab");
rs.next();
System.out.println(rs.getInt(1));
Without the patch, you get:
Exception in thread "main" Bad Integer -2147483650
at
org.postgresql.jdbc1.AbstractJdbc1ResultSet.toInt(AbstractJdbc1ResultSet.java:812)
at
org.postgresql.jdbc1.AbstractJdbc1ResultSet.getInt(AbstractJdbc1ResultSet.java:248)
With the patch, you get:
-2147483648
Hope that helps,
Kim
On Thu, 2003-07-24 at 11:52, Barry Lind wrote:
> Kim,
>
> Can you explain the problem this patch is trying to solve? On the face
> of it I don't see what is wrong with the existing code.
>
> thanks,
> --Barry
>
>
> Kim Ho wrote:
> > This patch was written by Yoshihiro Yasuoka of Fujitsu.
> >
> > Thanks,
> >
> > Kim
> >
> > On Tue, 2003-07-22 at 15:06, Kim Ho wrote:
> >
> >>Would help if I attach it.
> >>
> >>On Tue, 2003-07-22 at 14:23, Kim Ho wrote:
> >>
> >>>Fixes the way the jdbc driver handles numbers when it gets them from
> >>>backend. Courtesy of Fujitsu.
> >>>
> >>>Cheers,
> >>>
> >>>Kim
> >>>
> >>>
> >>>---------------------------(end of broadcast)---------------------------
> >>>TIP 5: Have you checked our extensive FAQ?
> >>>
> >>> http://www.postgresql.org/docs/faqs/FAQ.html
> >>
> >>----
> >>
> >
> >
> >>Index: org/postgresql/jdbc1/AbstractJdbc1ResultSet.java
> >>===================================================================
> >>RCS file: /projects/cvsroot/pgsql-server/src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1ResultSet.java,v
> >>retrieving revision 1.13
> >>diff -c -p -r1.13 AbstractJdbc1ResultSet.java
> >>*** org/postgresql/jdbc1/AbstractJdbc1ResultSet.java 30 Jun 2003 21:10:55 -0000 1.13
> >>--- org/postgresql/jdbc1/AbstractJdbc1ResultSet.java 22 Jul 2003 18:20:57 -0000
> >>*************** public abstract class AbstractJdbc1Resul
> >>*** 805,811 ****
> >> try
> >> {
> >> s = s.trim();
> >>! return Integer.parseInt(s);
> >> }
> >> catch (NumberFormatException e)
> >> {
> >>--- 805,811 ----
> >> try
> >> {
> >> s = s.trim();
> >>! return Float.valueOf(s).intValue();
> >> }
> >> catch (NumberFormatException e)
> >> {
> >>*************** public abstract class AbstractJdbc1Resul
> >>*** 822,828 ****
> >> try
> >> {
> >> s = s.trim();
> >>! return Long.parseLong(s);
> >> }
> >> catch (NumberFormatException e)
> >> {
> >>--- 822,828 ----
> >> try
> >> {
> >> s = s.trim();
> >>! return Double.valueOf(s).longValue();
> >> }
> >> catch (NumberFormatException e)
> >> {
> >>----
> >>
> >
> >
> >>---------------------------(end of broadcast)---------------------------
> >>TIP 7: don't forget to increase your free space map settings
> >
> >
> >
> >
>
>
>
pgsql-jdbc by date: