Re: Patch for jdbc ResultSet.getTimestamp() - Mailing list pgsql-patches
From | Bruce Momjian |
---|---|
Subject | Re: Patch for jdbc ResultSet.getTimestamp() |
Date | |
Msg-id | 200105170409.f4H49HE08629@candle.pha.pa.us Whole thread Raw |
In response to | Patch for jdbc ResultSet.getTimestamp() (Barry Lind <barry@xythos.com>) |
List | pgsql-patches |
Patch applied, and backpatched to jdbc1. Can't apply to 7.1.X. That jdbc code is pretty much frozen. We have had too much breakage of jdbc code to apply this to 7.1.X. However, we are working on patching the CVS and should have jar files available for people to use soon. > > Included is a patch that fixes a bug introduced in the lastest version > (1.22) of interfaces/jdbc/org/postgresql/jdbc2/ResultSet.java. That > change removed a line that set the variable s to the value of the > stringbuffer. This fix changes the following if checks to check the > length of the stringbuffer instead of s, since s no longer contains the > string the if conditions are expecting. > > The bug manifests itself in getTimestamp() loosing the timezone > information of timestamps selected from the database, thereby causing > the time to be incorrect. > > If possible this patch should be patched into 7.1 for the upcoming 7.1.2 > patch. > > thanks, > --Barry > *** ./interfaces/jdbc/org/postgresql/jdbc2/ResultSet.java.orig Tue May 15 21:59:46 2001 > --- ./interfaces/jdbc/org/postgresql/jdbc2/ResultSet.java Tue May 15 22:06:43 2001 > *************** > *** 499,511 **** > // could optimize this a tad to remove too many object creations... > SimpleDateFormat df = null; > > ! if (s.length()>23 && subsecond) { > df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSzzzzzzzzz"); > ! } else if (s.length()>23 && !subsecond) { > df = new SimpleDateFormat("yyyy-MM-dd HH:mm:sszzzzzzzzz"); > ! } else if (s.length()>10 && subsecond) { > df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); > ! } else if (s.length()>10 && !subsecond) { > df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); > } else { > df = new SimpleDateFormat("yyyy-MM-dd"); > --- 499,511 ---- > // could optimize this a tad to remove too many object creations... > SimpleDateFormat df = null; > > ! if (sbuf.length()>23 && subsecond) { > df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSzzzzzzzzz"); > ! } else if (sbuf.length()>23 && !subsecond) { > df = new SimpleDateFormat("yyyy-MM-dd HH:mm:sszzzzzzzzz"); > ! } else if (sbuf.length()>10 && subsecond) { > df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); > ! } else if (sbuf.length()>10 && !subsecond) { > df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); > } else { > df = new SimpleDateFormat("yyyy-MM-dd"); > > ---------------------------(end of broadcast)--------------------------- > TIP 2: you can get off all lists at once with the unregister command > (send "unregister YourEmailAddressHere" to majordomo@postgresql.org) -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026
pgsql-patches by date: