Re: [SQL] Interval subtracting

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

Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> writes:
> I don't think we can accept a change that takes a negative and turns it
> into a positive and negative.

Yeah, I find the patch's changes to the regression results pretty
disturbing.

Perhaps the correct definition ought to be like "if month part >= 0
then the reduced day part should be between 0 and 30, otherwise the
reduced day part should be between 0 and -30". However there are
still corner cases to worry about. If the original month and day
parts are of different sign, you might not be able to do such a
reduction without changing the sign of the month part, consider
"1 month -95 days". Not clear what to do with this.

I guess I would expect a good result to satisfy one of these three
cases:
* month > 0 and 0 <= day < 30
* month < 0 and -30 < day <= 0
* month = 0 and -30 < day < 30
If you believe that then "1 month -95 days" should justify to
"-2 months -5 days".

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Hannu Krosing 2006-03-01 20:28:39 Re: [SQL] Interval subtracting
Previous Message Bruce Momjian 2006-03-01 20:27:46 Re: [SQL] Interval subtracting

Browse pgsql-patches by date

  From Date Subject
Next Message Hannu Krosing 2006-03-01 20:28:39 Re: [SQL] Interval subtracting
Previous Message Bruce Momjian 2006-03-01 20:27:46 Re: [SQL] Interval subtracting

Browse pgsql-sql by date

  From Date Subject
Next Message Hannu Krosing 2006-03-01 20:28:39 Re: [SQL] Interval subtracting
Previous Message Bruce Momjian 2006-03-01 20:27:46 Re: [SQL] Interval subtracting