Thread

  1. JDBC timestamp does not understand [-]infinity

    Dima Tkach <dmitry@openratings.com> — 2002-07-23T16:55:33Z

    The attached patch fixes 'Bad Timestamp format' exception when timestamp value is 'ininity' or '-ininity'.
    I hope, it helps...
    Dima.
    
  2. Re: JDBC timestamp does not understand [-]infinity

    Bruce Momjian <pgman@candle.pha.pa.us> — 2002-08-27T16:42:16Z

    This code doesn't exist in the jdbc driver anymore.  They must have
    already fixed it.
    
    ---------------------------------------------------------------------------
    
    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 5: Have you checked our extensive FAQ?
    > 
    > http://www.postgresql.org/users-lounge/docs/faq.html
    
    -- 
      Bruce Momjian                        |  http://candle.pha.pa.us
      pgman@candle.pha.pa.us               |  (610) 359-1001
      +  If your life is a hard drive,     |  13 Roberts Road
      +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073
    
    
  3. Re: [PATCHES] JDBC timestamp does not understand [-]infinity

    Barry Lind <barry@xythos.com> — 2002-09-02T03:14:51Z

    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)
    >  
    >