Re: [PATCHES] patch for ResultSet.java - Mailing list pgsql-jdbc
From | Christopher Kings-Lynne |
---|---|
Subject | Re: [PATCHES] patch for ResultSet.java |
Date | |
Msg-id | GNELIHDDFBOCMGBFGEFOOEDLCCAA.chriskl@familyhealth.com.au Whole thread Raw |
In response to | Re: [PATCHES] patch for ResultSet.java (Barry Lind <barry@xythos.com>) |
List | pgsql-jdbc |
Barry, It looks like he's getting a new 7.2 timestamp with 2 milliseconds precision?? Chris > -----Original Message----- > From: pgsql-patches-owner@postgresql.org > [mailto:pgsql-patches-owner@postgresql.org]On Behalf Of Barry Lind > Sent: Saturday, 20 April 2002 12:44 AM > To: Alexander Litvinov > Cc: pgsql-patches@postgresql.org; pgsql-jdbc@postgresql.org > Subject: Re: [PATCHES] patch for ResultSet.java > > > Alexander, > > Can you describe the problem you are having a little better. I don't > understand why you are getting "1903-12-29 18:00:12.68", you should be > getting something like "1903-12-29 18:00:12.68+05" (i.e. the timezone > offset should be returned by the server. What is the datatype of the > column you are selecting from? > > I need to better understand the cause of the problem so I can understand > the correctness of your patch. > > thanks, > --Barry > > > > Alexander Litvinov wrote: > > If I try to fetch timestamp using rs,getTimestamp("name") I got: > > > > java.lang.StringIndexOutOfBoundsException: String index out of range: 22 > > at java.lang.String.charAt(String.java(Compiled Code)) > > at > org.postgresql.jdbc2.ResultSet.toTimestamp(ResultSet.java:1653) > > at > org.postgresql.jdbc2.ResultSet.getTimestamp(ResultSet.java:398) > > at > org.postgresql.jdbc2.ResultSet.getTimestamp(ResultSet.java:617) > > > > Later I tried to do rs.getString("name") I got: "1903-12-29 18:00:12.68" > > > > Using PostgreSQL v7.1.3 (JDBC from 7.2.1) > > > > I have added some bounds check to ResultSet.java. See attached patch. > > > > > > ------------------------------------------------------------------------ > > > > --- > src/interfaces/jdbc/org/postgresql/jdbc2/ResultSet.java.original > Thu Apr 18 22:48:40 2002 > > +++ src/interfaces/jdbc/org/postgresql/jdbc2/ResultSet.java Thu > Apr 18 22:57:44 2002 > > @@ -1641,17 +1641,22 @@ > > int i = 19; > > resultSet.sbuf.setLength(i); > > > > - char c = s.charAt(i++); > > + char c = s.charAt(i); > > if (c == '.') > > { > > // Found a fractional > value. Append up to 3 digits including > > // the leading '.' > > - do > > - { > > - if (i < 24) > > + resultSet.sbuf.append(c); > > + i++; > > + while (i < s.length() && i < 24) { > > + c = s.charAt(i); > > + if (Character.isDigit(c)) { > > > resultSet.sbuf.append(c); > > - c = s.charAt(i++); > > - } while (Character.isDigit(c)); > > + i++; > > + } > > + else > > + break; > > + } > > > > // If there wasn't at least > 3 digits we should add some zeros > > // to make up the 3 digits > we tell java to expect. > > @@ -1667,7 +1672,7 @@ > > // prepend the GMT part and then > add the remaining bit of > > // the string. > > resultSet.sbuf.append(" GMT"); > > - resultSet.sbuf.append(c); > > +// resultSet.sbuf.append(c); > > > resultSet.sbuf.append(s.substring(i, s.length())); > > > > // Lastly, if the tz part doesn't > specify the :MM part then > > > > > > ------------------------------------------------------------------------ > > > > > > ---------------------------(end of broadcast)--------------------------- > > TIP 3: if posting/reading through Usenet, please send an appropriate > > subscribe-nomail command to majordomo@postgresql.org so that your > > message can get through to the mailing list cleanly > > > > ---------------------------(end of broadcast)--------------------------- > TIP 4: Don't 'kill -9' the postmaster >
pgsql-jdbc by date: