Re: BUG #6028: age() function output contracts "months", but not any other units.

From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: Bruce Momjian <bruce(at)momjian(dot)us>
Cc: "Martin A(dot) Brooks" <martin(at)antibodymx(dot)net>, pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #6028: age() function output contracts "months", but not any other units.
Date: 2011-05-23 17:15:05
Message-ID: BANLkTikiz-VVGb_4EM=vjEBRA2pswL=Uhw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Wed, May 18, 2011 at 3:40 PM, Bruce Momjian <bruce(at)momjian(dot)us> wrote:
> Martin A. Brooks wrote:
>>
>> The following bug has been logged online:
>>
>> Bug reference:      6028
>> Logged by:          Martin A. Brooks
>> Email address:      martin(at)antibodyMX(dot)net
>> PostgreSQL version: 9.0.4
>> Operating system:   Debian/GNU Linux 6
>> Description:        age() function output contracts "months", but not any
>> other units.
>> Details:
>>
>> Hi
>>
>> postgres=# select age(now(),'1973-12-20'::timestamp);
>>                    age
>> -----------------------------------------
>>  37 years 4 mons 28 days 15:33:49.041831
>> (1 row)
>>
>>
>> Note "mons" and not "months".  And if "mons", why not "yrs" and "dys"?
>
> I was hoping someone else knew a good answer to this question, but now
> that no one replied --- I have no idea on it was done this way.  I think
> this code came from Berkeley.  My guess is that the spelling was based
> on the libc struct tm field names:
>
>           int tm_mday;    /* day of month (1 - 31) */
>           int tm_mon;     /* month of year (0 - 11) */
>           int tm_year;    /* year - 1900 */
>
> The only clear answer I can think of is that "month" has five letters,
> and "year" and "day" have less then five letters.  :-|
>
> Does anyone feel this is worth changing?  I am concerned such a change
> would break many user applications.

The backward compatibility problem is pretty icky, but I don't much
like the idea of leaving it as-is, either.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Tom Lane 2011-05-23 18:02:04 Re: BUG #6028: age() function output contracts "months", but not any other units.
Previous Message Robert Haas 2011-05-23 17:12:40 Re: BUG #5984: Got FailedAssertion("!(opaque->btpo_prev == target)", File: "nbtpage.c", Line: 1166)