Re: Strange results from to_timestamp

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: Strange results from to_timestamp
Дата
Msg-id 200604191848.k3JImwh00842@candle.pha.pa.us
обсуждение исходный текст
Ответ на Strange results from to_timestamp  (Mario Weilguni <mweilguni@sime.com>)
Ответы Re: Strange results from to_timestamp  (Bruce Momjian <pgman@candle.pha.pa.us>)
Список pgsql-hackers
Interesting bug report.  The problem is that sscanf(buf, "%d", &val)
eats leading white space, but our functions were not handling that.

I have applied the attached patch that fixes this:test=> select to_timestamp('         0300','yyyymmdd hh24mi');
to_timestamp------------------------0300-01-01 00:00:00-05(1 row)test=> select to_timestamp('         030004','yyyymmdd
hh24mi');     to_timestamp------------------------ 0300-04-01 00:00:00-05(1 row)test=>  select to_timestamp('
040004','yyyymmddhh24mi');      to_timestamp------------------------ 0400-04-01 00:00:00-05(1 row)
 

It doesn't throw an error for too mamy format strings, but it does avoid
the incorrect values.  The fix will appear in 8.2.

---------------------------------------------------------------------------

Mario Weilguni wrote:
> mydb=# select to_timestamp('00000000 0300','yyyymmdd hh24mi');
>        to_timestamp
> ---------------------------
>  0001-01-01 03:00:00+01 BC
> (1 row)
> 
> Questionable, but probably valid.
> 
> 
> 
> mydb=# select to_timestamp('         0300','yyyymmdd hh24mi');
>       to_timestamp
> ------------------------
>  0300-12-25 03:00:00+01
> (1 row)
> 
> This puzzles me. Where is the 25th of december coming from?
> 
> 
> 
> mydb=# select to_timestamp('         030004','yyyymmdd hh24mi');
>       to_timestamp
> ------------------------
>  0382-04-23 03:00:00+01
> (1 row)
> 
> Same as above.
> 
> 
> mydb=# select to_timestamp('         040004','yyyymmdd hh24mi');
>       to_timestamp
> ------------------------
>  0509-10-10 04:00:00+01
> 
> 
> I think all except the first one should raise a warning, isn't it? Where can I 
> find the source code of this function?
> 
> Best regards,
>     Mario Weilguni
> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 9: In versions below 8.0, the planner will ignore your desire to
>        choose an index scan if your joining column's datatypes do not
>        match
> 

--  Bruce Momjian   http://candle.pha.pa.us EnterpriseDB    http://www.enterprisedb.com
 + If your life is a hard drive, Christ can be your backup. +


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Who is responsible for ECPG?
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: Strange results from to_timestamp