Mark Dilger wrote:
> Tom Lane wrote:
> > "Milen A. Radev" <[EMAIL PROTECTED]> writes:
> > 
> >>Milorad Poluga ????????????:
> >>
> >>>>SELECT '10 years 1 mons 1 days'::interval - '9 years 10 mons 15 
> >>>>days'::interval
> >>>>?column?        
> >>>>--------------- 
> >>>>3 mons -14 days 
> >>>>
> >>>>Why not '2 mons  16 days' ? 
> > 
> > 
> >>Please read the last paragraph in section 8.5.1.4 of the manual
> >>(http://www.postgresql.org/docs/8.1/static/datatype-datetime.html#AEN4775)
> >>. It mentions the functions named "justify_days" and "justify_hours"
> >>that could do what you need.
> > 
> > 
> > justify_days doesn't currently do anything with this result --- it
> > thinks its charter is only to reduce day components that are >= 30 days.
> > However, I think a good case could be made that it should normalize
> > negative days too; that is, the invariant on its result should be
> > 0 <= days < 30, not merely days < 30.  Similarly for justify_hours.
> > Comments anyone?  Patch anyone?
> 
> Sure, if nobody objects to this change I can write the patch.

Good question.  Should we restrict days to 0 - 30 or -30 - 30?  The
current system does the later:

        test=> select justify_days('-45 days');
           justify_days
        ------------------
         -1 mons -15 days
        (1 row)

        test=> select justify_days('1 month -45 days');
         justify_days
        --------------
         -15 days
        (1 row)

        test=> select justify_days('1 month -15 days');
          justify_days
        ----------------
         1 mon -15 days
        (1 row)

Should we be adjusting the last one?  I am unsure.  Comments?

-- 
  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. +

---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster

Reply via email to