Re: BUG #1517: SQL interval syntax is accepted by the parser, - Mailing list pgsql-bugs

From Bruce Momjian
Subject Re: BUG #1517: SQL interval syntax is accepted by the parser,
Date
Msg-id 200503240339.j2O3dRh06332@candle.pha.pa.us
Whole thread Raw
In response to Re: BUG #1517: SQL interval syntax is accepted by the parser,  (Roy Badami <roy@gnomon.org.uk>)
Responses Re: BUG #1517: SQL interval syntax is accepted by the parser,  (Roy Badami <roy@gnomon.org.uk>)
List pgsql-bugs
Roy Badami wrote:
>     Roy> The 'constraint' (interval type descriptor or whatever it's
>     Roy> really called) is mandatory in standard SQL, I think, so
>     Roy> there's no ambiguity anyway, unless anyone is using this
>     Roy> undocumented syntax at the moment...
>
> Incidentally, this was the ratinale behind my earlier suggestion, that:
>
>  * if the interval type descriptor is absent, parse the interval as a
>    traditional postgres interval
>
>  * if the interval type descriptor is present, parse the interval according
>    to the standard syntax
>
> I have no objection to allowing things like
>
>    '1 hour 10 minutes' DAY TO SECOND
>
> but I'm just wondering whether the hybrid syntax is an unnecessary
> complication.

Added to TODO:

        o For syntax that isn't uniquely ISO or PG syntax, like '1:30' or
          '1', treat as ISO if there is a range specification clause,
          and as PG if there no clause is present, e.g. interpret '1:30'
          MINUTE TO SECOND as '1 minute 30 seconds', and interpret '1:30'
          as '1 hour, 30 minutes'

This brings up the issue of how we are to output interval values.
Currently we do:

    test=> select interval '1 hour 1 minute';
     interval
    ----------
     01:01:00
    (1 row)

and

    test=> select interval '1 hour 1 second' hour to minute;
     interval
    ----------
     01:00:00
    (1 row)

so I think we are OK because we don't output ambiguous syntax.

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

pgsql-bugs by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: BUG #1517: SQL interval syntax is accepted by the parser,
Next
From: Bruce Momjian
Date:
Subject: Re: BUG #1518: Conversions to (undocumented) SQL year-month and