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: