Re: [PATCHES] JDBC timestamp does not understand [-]infinity

Barry Lind <barry@xythos.com>

From: Barry Lind <barry@xythos.com>
To: Dmitry Tkach <dmitry@openratings.com>
Cc: pgsql-jdbc@postgresql.org, pgsql-patches@postgresql.org
Date: 2002-09-02T03:14:51Z
Lists: pgsql-bugs
A modified version of this patch has been applied.

--Barry

Dmitry Tkach wrote:

> The attached patch fixes 'Bad Timestamp format' exception when 
> timestamp value is 'ininity' or '-ininity'.
> I hope, it helps...
> Dima.
>
>------------------------------------------------------------------------
>
>Index: AbstractJdbc1ResultSet.java
>===================================================================
>RCS file: /projects/cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1ResultSet.java,v
>retrieving revision 1.1
>diff -p -r1.1 AbstractJdbc1ResultSet.java
>*** AbstractJdbc1ResultSet.java	2002/07/23 03:59:55	1.1
>--- AbstractJdbc1ResultSet.java	2002/07/23 16:58:00
>*************** public abstract class AbstractJdbc1Resul
>*** 40,46 ****
>--- 40,50 ----
>  	protected StringBuffer sbuf = null;
>  	public byte[][] rowBuffer=null;
>  
>+ 	public static final String MIN_DATE_STR = "0000-01-01";
>+ 	public static final String MAX_DATE_STR = "9999-12-31";
>+ 	
>  
>+ 
>  	public AbstractJdbc1ResultSet(org.postgresql.PGConnection conn, Field[] fields, Vector tuples, String status, int updateCount, long insertOID, boolean binaryCursor)
>  	{
>  		this.connection = conn;
>*************** public abstract class AbstractJdbc1Resul
>*** 853,861 ****
>  			else
>  				rs.sbuf.setLength(0);
>  
>  			// Copy s into sbuf for parsing.
>  			rs.sbuf.append(s);
>- 			int slen = s.length();
>  
>  			if (slen > 19)
>  			{
>--- 857,871 ----
>  			else
>  				rs.sbuf.setLength(0);
>  
>+ 			int slen = s.length();
>+ 
>+ 			if (slen == 8 && s.equals ("infinity"))
>+ 			  s = MAX_DATE_STR;
>+ 			else if (slen == 9 && s.equals ("-infinity"))
>+ 			  s = MIN_DATE_STR;
>+ 			
>  			// Copy s into sbuf for parsing.
>  			rs.sbuf.append(s);
>  
>  			if (slen > 19)
>  			{
>  
>
>------------------------------------------------------------------------
>
>
>---------------------------(end of broadcast)---------------------------
>TIP 2: you can get off all lists at once with the unregister command
>    (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
>  
>