From: | Bruce Momjian <bruce(at)momjian(dot)us> |
---|---|
To: | Bruce Momjian <bruce(at)momjian(dot)us> |
Cc: | Michael Glaesemann <grzm(at)seespotcode(dot)net>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Michael Paesold <mpaesold(at)gmx(dot)at>, PostgreSQL-patches <pgsql-patches(at)postgresql(dot)org> |
Subject: | Re: [HACKERS] Interval aggregate regression failure |
Date: | 2006-09-04 03:57:38 |
Message-ID: | 200609040357.k843vc810185@momjian.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-patches |
Bruce Momjian wrote:
> Michael Glaesemann wrote:
> >
> > On Sep 3, 2006, at 12:34 , Bruce Momjian wrote:
> >
> > > OK, I worked with Michael and I think this is the best we are going to
> > > do to fix this. It has one TSROUND call for Powerpc, and that is
> > > documented. Applied.
> >
> > As I was working up regression tests, I found a case that this patch
> > doesn't handle.
> >
> > select interval '4 mon' * .3 as product_h;
> > product_h
> > -----------------------
> > 1 mon 5 days 24:00:00
> > (1 row)
> >
> > This should be 1 mon 6 days. It fails for any number of months
> > greater than 3 that is not evenly divisible by 10, greater than 3
> > months. Do we need to look at the month remainder separately?
>
> Another question. Is this result correct?
>
> test=> select '999 months 999 days'::interval / 100;
> ?column?
> -------------------------
> 9 mons 38 days 40:33:36
> (1 row)
>
> Should that be:
>
> 9 mons 39 days 16:33:36
>
> The core problem is that the combined remainder seconds of months and
> days is > 24 hours.
OK, updated patch. It will fix the >=24:00:00 case because it cascades
up if the remainder number of seconds is greater or equal to one day.
One open item is that it still might show >24 hours if the seconds
computation combined with the remaning seconds >24 hours. Not sure if
that should be handled or not. If you fix that, you really are
cascading up because the resulting seconds might be less than the
computed value, e.g. result is 23:00:00, remainder is 02:00:00, cascade
up would be 1 day, 01:00:00. I am unsure we want to do that. Right
now, this will show 25:00:00.
--
Bruce Momjian bruce(at)momjian(dot)us
EnterpriseDB http://www.enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +
Attachment | Content-Type | Size |
---|---|---|
/pgpatches/interval | text/x-diff | 4.0 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2006-09-04 04:06:02 | Re: [PATCHES] possible ecpg vpath build error |
Previous Message | Michael Glaesemann | 2006-09-04 03:57:32 | Re: [PATCHES] possible ecpg vpath build error |