Re: Patch for jdbc ResultSet.getTimestamp()

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

Предыдущее
От: Oleg Bartunov
Дата:
Сообщение: Re: GIST question
Следующее
От: Jason Tishler
Дата:
Сообщение: Re: Cygwin PostgreSQL Python Module Patch