Re: My Bug report: JDBC-Driver produces wrong output.]

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: My Bug report: JDBC-Driver produces wrong output.]
Дата
Msg-id 200011041638.LAA22508@candle.pha.pa.us
обсуждение исходный текст
Ответ на My Bug report: JDBC-Driver produces wrong output.  (Jan Thomae <jan@smb-tec.com>)
Список pgsql-bugs
I think this is fixed in the current cvs tree.  Can you grab a snapshot
ftp file and let me know.  If not, can I get a contect diff.  Thanks.


> Hi,
>
> I had a look over the JDBC-Driver and was able to remove the bug. It seems,
> that the formatting of the timestamp caused the malfunction. I'd like to send
> you my modifications, since you might be interested in them:
>
> File: ResultSet.java
> Directory: src/interfaces/jdbc/org/postgresql/jdbc2
>
>   public Timestamp getTimestamp(int columnIndex) throws SQLException
>   {
>     String s = getString(columnIndex);
>
>     if(s==null)
>     return null;
>
>     // This works, but it's commented out because Michael Stephenson's
>     // solution is better still:
>     // SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
>
> // Modification by Jan Thomae
>     String sub = s.substring(s.length() - 3, s.length()-2);
>     if (sub.equals("+") || sub.equals("-")) {
>         s = s.substring(0, s.length()-3) + "GMT"+ s.substring(s.length()-3, s.length())+":00";
>     }
> // -------
>     // Michael Stephenson's solution:
>     SimpleDateFormat df = null;
>
> // Modification by Jan Thomae
>     if (s.length()>27) {
>     df = new SimpleDateFormat("yyyy-MM-dd HH:mm:sszzzzzzzzz");
>     } else
> // -------
>     if (s.length()>21 && s.indexOf('.') != -1) {
>     df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSzzz");
>     } else if (s.length()>19 && s.indexOf('.') == -1) {
>     df = new SimpleDateFormat("yyyy-MM-dd HH:MM:sszzz");
>     } else if (s.length()>19 && s.indexOf('.') != -1) {
>     df = new SimpleDateFormat("yyyy-MM-dd HH:MM:ss.SS");
>     } else if (s.length()>10 && s.length()<=18) {
>     df = new SimpleDateFormat("yyyy-MM-dd HH:MM:ss");
>     } else {
>     df = new SimpleDateFormat("yyyy-MM-dd");
>     }
>
>     try {
>     return new Timestamp(df.parse(s).getTime());
>     } catch(ParseException e) {
>     throw new PSQLException("postgresql.res.badtimestamp",new Integer(e.getErrorOffset()),s);
>     }
>   }
>
> Best regards,
> Jan Thomae
>
> --
> ____________________________________________________________________
> Jan Thomae                                    jan@smb-tec.com
> SMB GmbH                             http://www.smb-tec.com
>
>
>
>


--
  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-bugs по дате отправления:

Предыдущее
От: Max Pyziur
Дата:
Сообщение: AbortTransaction errors - remedy?
Следующее
От: Tom Lane
Дата:
Сообщение: Re: AbortTransaction errors - remedy?