Re: Patch for jdbc ResultSet.getTimestamp()
От | Bruce Momjian |
---|---|
Тема | Re: Patch for jdbc ResultSet.getTimestamp() |
Дата | |
Msg-id | 200105170409.f4H49HE08629@candle.pha.pa.us обсуждение исходный текст |
Ответ на | Patch for jdbc ResultSet.getTimestamp() (Barry Lind <barry@xythos.com>) |
Список | 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 по дате отправления: