dbTalk Databases Forums  

[BUGS] Patch for Bug#1611

mailing.database.pgsql-bugs mailing.database.pgsql-bugs


Discuss [BUGS] Patch for Bug#1611 in the mailing.database.pgsql-bugs forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Ingolf Knopf
 
Posts: n/a

Default [BUGS] Patch for Bug#1611 - 04-28-2005 , 12:19 PM






--------------Boundary-00=_WKYN6510GA60IQ30IS10
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

My patch once more, based on 'postgresql-jdbc-8.0-311.src.tar.gz'.

(Sorry, my last version of this patch made a NullPointerException!) Using t=
his=20
patch, I still have not found any more problems with my application.

With kind regards,
Ingolf.

--------------Boundary-00=_WKYN6510GA60IQ30IS10
Content-Type: text/x-diff;
charset="us-ascii";
name="bug1611.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="bug1611.diff"

diff -cr postgresql-jdbc-8.0-311.src/org/postgresql/jdbc2/AbstractJdbc2ResultSet.java postgresql-jdbc-8.0-311.src.patched/org/postgresql/jdbc2/AbstractJdbc2ResultSet.java
*** postgresql-jdbc-8.0-311.src/org/postgresql/jdbc2/AbstractJdbc2ResultSet.java Wed Mar 23 20:48:17 2005
--- postgresql-jdbc-8.0-311.src.patched/org/postgresql/jdbc2/AbstractJdbc2ResultSet.java Thu Apr 28 17:44:06 2005
***************
*** 23,28 ****
--- 23,29 ----
import java.util.StringTokenizer;
import java.util.Vector;
import java.util.GregorianCalendar;
+ import java.util.Calendar;
import org.postgresql.Driver;
import org.postgresql.core.*;
import org.postgresql.largeobject.*;
***************
*** 2088,2094 ****
this.checkResultSet(columnIndex);
if (calendar == null)
calendar = new GregorianCalendar();
! return TimestampUtils.toTimestamp(calendar, getString(columnIndex));
}

public InputStream getAsciiStream(int columnIndex) throws SQLException
--- 2089,2107 ----
this.checkResultSet(columnIndex);
if (calendar == null)
calendar = new GregorianCalendar();
! Timestamp ts = TimestampUtils.toTimestamp(calendar, getString(columnIndex));
! if (null!=ts && java.sql.Types.DATE==getMetaData().getColumnType(c olumnIndex) )
! {
! Calendar cal = Calendar.getInstance();
! cal.setTime(ts);
! cal.set(Calendar.HOUR,0);
! cal.set(Calendar.HOUR_OF_DAY,0);
! cal.set(Calendar.MINUTE,0);
! cal.set(Calendar.SECOND,0);
! cal.set(Calendar.MILLISECOND,0);
! ts.setTime(cal.getTimeInMillis());
! }
! return ts;
}

public InputStream getAsciiStream(int columnIndex) throws SQLException
diff -cr postgresql-jdbc-8.0-311.src/org/postgresql/test/jdbc2/ResultSetTest.java postgresql-jdbc-8.0-311.src.patched/org/postgresql/test/jdbc2/ResultSetTest.java
*** postgresql-jdbc-8.0-311.src/org/postgresql/test/jdbc2/ResultSetTest.java Tue Jan 11 09:25:48 2005
--- postgresql-jdbc-8.0-311.src.patched/org/postgresql/test/jdbc2/ResultSetTest.java Thu Apr 28 17:44:06 2005
***************
*** 46,51 ****
--- 46,59 ----
TestUtil.createTable(con, "teststring", "a text");
stmt.executeUpdate("INSERT INTO teststring VALUES ('12345')");

+ TestUtil.createTable(con, "testdate", "d date");
+ stmt.executeUpdate("INSERT INTO testdate VALUES (CURRENT_DATE)");
+ stmt.executeUpdate("INSERT INTO testdate VALUES ( null )");
+
+ TestUtil.createTable(con, "testtimestamp", "d timestamp");
+ stmt.executeUpdate("INSERT INTO testtimestamp VALUES (CURRENT_DATE)");
+ stmt.executeUpdate("INSERT INTO testtimestamp VALUES ( null )");
+
TestUtil.createTable(con, "testint", "a int");
stmt.executeUpdate("INSERT INTO testint VALUES (12345)");

***************
*** 103,108 ****
--- 111,118 ----
{
TestUtil.dropTable(con, "testrs");
TestUtil.dropTable(con, "teststring");
+ TestUtil.dropTable(con, "testdate");
+ TestUtil.dropTable(con, "testtimestamp");
TestUtil.dropTable(con, "testint");
TestUtil.dropTable(con, "testbool");
//TestUtil.dropTable(con, "testbit");
***************
*** 178,183 ****
--- 188,233 ----
rs.next();
assertEquals("12", rs.getString(1));
assertEquals("12", new String(rs.getBytes(1)));
+ }
+
+ public void testDate() throws SQLException
+ {
+ Statement stmt = con.createStatement();
+ stmt.setMaxFieldSize(2);
+
+ ResultSet rs = stmt.executeQuery("select * from testdate");
+
+ //independent of how current date is read, it should be a
+ //date and not a timestamp
+ while ( rs.next() )
+ {
+ java.sql.Date dtVal = rs.getDate(1);
+ java.sql.Timestamp tsVal = rs.getTimestamp(1);
+ if ( null == dtVal )
+ assertNull("date is null, timestamp should be null", tsVal);
+ else
+ assertEquals("date should stay a date even when it is read by 'getTimestamp()'", dtVal.getTime(), tsVal.getTime());
+ }
+ }
+
+ public void testDateTimestamp() throws SQLException
+ {
+ Statement stmt = con.createStatement();
+ stmt.setMaxFieldSize(2);
+
+ ResultSet rs = stmt.executeQuery("select * from testtimestamp");
+
+ //independent of how current date is read, it should be a
+ //date and not a timestamp
+ while ( rs.next() )
+ {
+ java.sql.Date dtVal = rs.getDate(1);
+ java.sql.Timestamp tsVal = rs.getTimestamp(1);
+ if ( null == dtVal )
+ assertNull("date is null, timestamp should be null", tsVal);
+ else
+ assertEquals("I stored a date, and I want to get a date", dtVal.getTime(), tsVal.getTime());
+ }
}

public void booleanTests(boolean useServerPrepare) throws SQLException

--------------Boundary-00=_WKYN6510GA60IQ30IS10
Content-Type: text/plain
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0


---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo (AT) postgresql (DOT) org so that your
message can get through to the mailing list cleanly

--------------Boundary-00=_WKYN6510GA60IQ30IS10--


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.