OK, here are the TODO items I have created:

  * Add support for ANSI time INTERVAL syntax, INTERVAL '1 2:03:04' DAY TO 
SECOND
  * Add support for ANSI date INTERVAL syntax, INTERVAL '1-2' YEAR TO MONTH
  * Process mixed ANSI/PG INTERVAL syntax, and round value to requested 
precision

    Interpret INTERVAL '1 year' MONTH as CAST (INTERVAL '1 year' AS INTERVAL
    MONTH), and this should return '12 months'

Is this sufficient?

---------------------------------------------------------------------------

Roy Badami wrote:
> 
> The following bug has been logged online:
> 
> Bug reference:      1518
> Logged by:          Roy Badami
> Email address:      [EMAIL PROTECTED]
> PostgreSQL version: 8.0.1
> Operating system:   Solaris 9
> Description:        Conversions to (undocumented) SQL year-month and
> day-time interval types silently discard data
> Details: 
> 
> Conversions to the (undocumented) SQL year-month and day-time intervals
> silently discard data, instead of raising an exception.
> 
> Note, the following examples intentinally use non-standard interval syntax,
> since SQL standard interval syntax appears to be broken...
> 
> radius=# create table foo (year_month interval year to month);
> CREATE TABLE
> radius=# insert into foo values ('1 year 1 month');
> INSERT 19963 1
> radius=# select * from foo;
>   year_month  
> --------------
>  1 year 1 mon
> (1 row)
>  
> -- correct
> 
> radius=# insert into foo values ('1 hour 1 minute');
> INSERT 19964 1
> 
> -- should be an error, I think?
> 
> radius=# select * from foo;
>   year_month  
> --------------
>  1 year 1 mon
>  00:00:00
> (2 rows)
> 
> -- but instead the interval has been replaced by a zero interval 
> 
> radius=# create table bar (day_time interval day to second);
> CREATE TABLE
> radius=# insert into bar values ('1 hour 1 minute');
> INSERT 19968 1
> radius=# select * from bar;
>  day_time 
> ----------
>  01:01:00
> (1 row)
> 
> -- correct
>  
> radius=# insert into bar values ('1 year 1 month');
> INSERT 19969 1
> 
> -- should be an error, I think?
> 
> radius=# select * from bar;
>  day_time 
> ----------
>  01:01:00
>  00:00:00
> (2 rows)
>  
> -- but instead has been converted to a zero interval
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]
> 

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

---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
      subscribe-nomail command to [EMAIL PROTECTED] so that your
      message can get through to the mailing list cleanly

Reply via email to