Re: [SQL] Interval subtracting

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: Mark Dilger <pgsql(at)markdilger(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: [SQL] Interval subtracting
Date: 2006-03-01 21:45:27
Message-ID: 200603012145.k21LjRX11928@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-patches pgsql-sql

Mark Dilger wrote:
> Your proposal is that justify_hours borrows 24 hours from the days column in
> order to bring the -12 hours up to a positive 12 hours. Should it only do that
> if the days column is a positive number? What if it is negative?
>
> I think we all agree on the following but nobody is explicitly saying so:
>
> select justify_days(justify_hours('2 days -12:00:00'::interval))
> justify_days
> -------------------------
> 1 day 12:00:00

Right.

> select justify_days(justify_hours('-2 days -12:00:00'::interval))
> justify_days
> -------------------------
> -2 days -12:00:00

Right, unchanged.

> Am I correct that the second case should still have negative hours? If so, then
> justify_hours(...) needs to examine the sign of the days and months portion of
> the interval while performing its work.

Yes, it would need to look at both, and this opens a new problem.
Imagine this:

'1 mons -2 days -12:00:00'

Which sign do we head to for this? For justify_hours, if we don't look
at the months it remains unchange, but calling justify_days we get:

'28 days -12:00:00'

which is wrong (negative and positive). Now if we knew justify_days was
going to be called we would have had justify_hours return '-3 days
12:00:00' so the final result after calling justify_days would be '27
days 12:00:00'.

My head hurts.

--
Bruce Momjian http://candle.pha.pa.us
SRA OSS, Inc. http://www.sraoss.com

+ If your life is a hard drive, Christ can be your backup. +

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Mark Dilger 2006-03-01 21:52:16 Re: [SQL] Interval subtracting
Previous Message Mark Dilger 2006-03-01 21:21:36 Re: [SQL] Interval subtracting

Browse pgsql-patches by date

  From Date Subject
Next Message Mark Dilger 2006-03-01 21:52:16 Re: [SQL] Interval subtracting
Previous Message Mark Dilger 2006-03-01 21:21:36 Re: [SQL] Interval subtracting

Browse pgsql-sql by date

  From Date Subject
Next Message Mark Dilger 2006-03-01 21:52:16 Re: [SQL] Interval subtracting
Previous Message Mark Dilger 2006-03-01 21:21:36 Re: [SQL] Interval subtracting