Re: [BUGS] extract(epoch from infinity) is not 0 - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: [BUGS] extract(epoch from infinity) is not 0
Date
Msg-id 201107131843.p6DIh8923252@momjian.us
Whole thread Raw
Responses Re: [BUGS] extract(epoch from infinity) is not 0
List pgsql-hackers
Daniele Varrazzo wrote:
> Hello,
> 
> =# select extract(epoch from 'infinity'::timestamp);
>  date_part
> -----------
>          0
> 
> A better value would be 'infinity'::float8. Ditto for -infinity.
> 
> I'm trying to use a box-based index to represent the intervals in a
> table containing a pair of fields date_from, date_to (timestamps),
> where semi-open intervals are represented with +/- infinity. Building
> the boxes using extract(epoch from ...) creates wrong entries as
> semi-open intervals are converted into a box with a corner in (0,0).

Looking at:
   timestamptz_part(PG_FUNCTION_ARGS)

I see:
   if (TIMESTAMP_NOT_FINITE(timestamp))   {       result = 0;       PG_RETURN_FLOAT8(result);   }

The assumption is that extracting _anything_ from an infinite timestamp
should be zero, but I can see your point that epoch perhaps should be
special-cased to return +/- inifinity.

Does anyone object to changing this?

--  Bruce Momjian  <bruce@momjian.us>        http://momjian.us EnterpriseDB
http://enterprisedb.com
 + It's impossible for everything to be true. +


pgsql-hackers by date:

Previous
From: Heikki Linnakangas
Date:
Subject: Re: Small patch for GiST: move childoffnum to child
Next
From: Andrew Dunstan
Date:
Subject: Re: Need help understanding pg_locks