Re: BUG #6126: CC parameter in to_char() behaves incorrectly - Mailing list pgsql-bugs

From Bruce Momjian
Subject Re: BUG #6126: CC parameter in to_char() behaves incorrectly
Date
Msg-id 20120804143414.GA29773@momjian.us
Whole thread Raw
In response to Re: BUG #6126: CC parameter in to_char() behaves incorrectly  (Bruce Momjian <bruce@momjian.us>)
Responses Re: BUG #6126: CC parameter in to_char() behaves incorrectly  (Bruce Momjian <bruce@momjian.us>)
List pgsql-bugs
On Fri, Aug  3, 2012 at 06:51:45PM -0400, Bruce Momjian wrote:
> I also tested boundry values, e.g. 6th Century BC is 600-501:
>
>     test=> select to_char('0600-01-01 00:00:00 BC' :: timestamp, 'CC');
>      to_char
>     ---------
>      -6
>     (1 row)
>
>     test=> select to_char('0599-01-01 00:00:00 BC' :: timestamp, 'CC');
>      to_char
>     ---------
>      -6
>     (1 row)
>
>     test=> select to_char('0501-01-01 00:00:00 BC' :: timestamp, 'CC');
>      to_char
>     ---------
>      -6
>     (1 row)
>
>     test=> select to_char('0500-01-01 00:00:00 BC' :: timestamp, 'CC');
>      to_char
>     ---------
>      -5
>     (1 row)
>
> I am thinking it is too late to apply this for 9.2 because users might
> have already tested their applications, though I doubt many are using BC
> dates.  Feedback?

There is never just one bug in formatting.c --- the input side was also
broken for BC/negative centuries.  The attached patch fixes the input
side as well, and shows the old/fixed output for BC centuries.  The test
queries were:

    SELECT to_date('-6  4', 'CC YY');
    SELECT to_date(' 6  4', 'CC YY');
    SELECT to_date('-6 00', 'CC YY');
    SELECT to_date(' 6 00', 'CC YY');
    SELECT to_date('-6', 'CC');
    SELECT to_date(' 6', 'CC');

I believe this is all for 9.3-only.

--
  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + It's impossible for everything to be true. +

Attachment

pgsql-bugs by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: BUG #6126: CC parameter in to_char() behaves incorrectly
Next
From: Eric Thomas
Date:
Subject: Small bug in psqlodbc-09.01 prevents interoperability with LISTSERV