Re: Patch for jdbc ResultSet.getTimestamp() - Mailing list pgsql-patches
From | Bruce Momjian |
---|---|
Subject | Re: Patch for jdbc ResultSet.getTimestamp() |
Date | |
Msg-id | 200105162016.f4GKGRk07097@candle.pha.pa.us Whole thread Raw |
In response to | Patch for jdbc ResultSet.getTimestamp() (Barry Lind <barry@xythos.com>) |
List | pgsql-patches |
Your patch has been added to the PostgreSQL unapplied patches list at: http://candle.pha.pa.us/cgi-bin/pgpatches I will try to apply it withing the next 48 hours. I can not backpatch this to 7.1.X because we are only adding major bug fixes into that release. > > 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: