From: | Bruce Momjian <bruce(at)momjian(dot)us> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Pelle Johansson <pelle(at)morth(dot)org>, PostgreSQL-patches <pgsql-patches(at)postgresql(dot)org> |
Subject: | Re: [BUGS] BUG #3431: age() gets the days wrong |
Date: | 2007-07-18 03:14:43 |
Message-ID: | 200707180314.l6I3EhB14396@momjian.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs pgsql-hackers pgsql-patches |
I have applied the attached patch that documents the age() behavior,
plus fixes the mismatch sign for seconds by using part of Tom's earlier
patch.
I agree we want to keep the symmetry we have. We can call this item
closed.
---------------------------------------------------------------------------
Tom Lane wrote:
> Pelle Johansson <pelle(at)morth(dot)org> writes:
> > If you were to use the result for subtracting from the first value,
> > instead of adding to the second, the conditions are reversed. It's
> > not really as obvious as I first thought whether there's 2 months and
> > 29 days or 2 months and 30 days between 2006-11-02 and 2007-02-01...
>
> Hmm, that's a really good point; perhaps the original author was
> thinking of it in those terms, in which case using the first month of
> the interval is indeed sane. (Almost: I believe that the loop can
> iterate more than once, and then you need to look to the second month
> etc. The code's not doing that, so there's still a corner-case bug,
> plus the fsec issue.)
>
> Other than that corner case, it seems the behavior we currently have is
> if x > y, age() produces a positive interval such that
> x - age(x, y) = y
> if x < y, age() produces a negative interval such that
> y + age(x, y) = x
>
> Are we satisfied with just documenting that, or do we want to change it,
> and if so to what?
>
> As the code currently stands, we have the symmetry property
> age(x,y) = - age(y,x)
> for all x,y. I don't think we can preserve that if we try to simplify
> the relationship to interval addition/subtraction.
>
> Comments?
>
> regards, tom lane
>
> ---------------------------(end of broadcast)---------------------------
> TIP 7: You can help support the PostgreSQL project by donating at
>
> http://www.postgresql.org/about/donate
--
Bruce Momjian <bruce(at)momjian(dot)us> http://momjian.us
EnterpriseDB http://www.enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +
Attachment | Content-Type | Size |
---|---|---|
/rtmp/diff | text/x-diff | 3.2 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Eugene Gershnik | 2007-07-18 03:19:20 | BUG #3462: pg_ctl error output cannot be redirected |
Previous Message | Bruce Momjian | 2007-07-18 00:41:12 | Re: BUG #3431: age() gets the days wrong |
From | Date | Subject | |
---|---|---|---|
Next Message | caij | 2007-07-18 04:07:16 | postgresql compile problem |
Previous Message | Alvaro Herrera | 2007-07-18 01:26:32 | Re: AutoVacuum Behaviour Question |
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2007-07-18 03:20:39 | Re: execl() sentinel |
Previous Message | Bruce Momjian | 2007-07-18 00:41:12 | Re: BUG #3431: age() gets the days wrong |