From: | Fabien COELHO <coelho(at)cri(dot)ensmp(dot)fr> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | PostgreSQL Bugs List <pgsql-bugs(at)postgresql(dot)org>, PostgreSQL Patches <pgsql-patches(at)postgresql(dot)org> |
Subject: | Re: Bug: century/millenium still broken |
Date: | 2004-08-10 15:00:50 |
Message-ID: | Pine.LNX.4.58.0408101434310.1998@sablons.cri.ensmp.fr |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs pgsql-patches |
Dear Tom,
> After all that about numbering centuries and millenia correctly,
> why does CVS tip still give me
>
> regression=# select extract(century from now());
> date_part
> -----------
> 20
> (1 row)
> [ ... looks in code ... ]
>
> Apparently it's because you fixed only timestamp_part, and not
> timestamptz_part. I'm not too sure about what timestamp_trunc or
> timestamptz_trunc should do, but they may be wrong as well.
Sigh... as usual, what is not tested does not work:-(
> Could we have a more complete patch?
Please find a submission attached. I hope it really fixes all decade,
century and millenium issues for extract and *_trunc functions on interval
and other timestamp types. If someone could check that the results
are reasonnable, it would be great.
I indeed overlooked the fact that there were two functions. The patch
fixes the code so that both variants agree.
I added comments to interval extractions, because it relies on the C
division to have a negative remainder: -7/10 = 0 and remains -7.
As for *_trunc functions, I have chosen to put the first year of the
century or millennium: -100, 1, 101... 1001 2001 etc. Indeed, I don't
think it would make sense to put 2000 (last year of the 2nd millennium)
for rounding all years of the third millenium.
I also fixed the code so that all decades last 10 years and decade 199
means the 1990's.
I have added some tests that are relevant to deal with tricky cases. The
formula may be simplified, but all these cases must pass. Please keep
them.
Have a nice day,
--
Fabien Coelho - coelho(at)cri(dot)ensmp(dot)fr
Attachment | Content-Type | Size |
---|---|---|
date_2.patch | text/plain | 11.6 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | PostgreSQL Bugs List | 2004-08-10 15:12:07 | BUG #1209: Problem related to installation |
Previous Message | PostgreSQL Bugs List | 2004-08-10 13:45:38 | BUG #1208: Invalid page header |
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2004-08-10 18:03:32 | Re: PITR on Win32 - Archive and Restore |
Previous Message | Tom Lane | 2004-08-10 14:10:37 | Re: Win32 PostgreSQL 8.0 Beta 1 Installer available for download |