Re: Error: timestamp with timezone + interval is not immutable while creating index

From: David Salisbury <salisbury(at)globe(dot)gov>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: Error: timestamp with timezone + interval is not immutable while creating index
Date: 2011-10-13 23:19:00
Message-ID: 4E9771E4.2000005@globe.gov
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 10/13/11 4:38 PM, Phil Couling wrote:
> Hi All
>
> I've got a table with (amongst others) two fields:
> last_updated timestamp with time zone;
> update_cycle interval;
>
> I'd like to create an index on these, to index time "next update" time
> (last_updated + update_cycle).
>
> When I try this I get an error though:
>
> main=> create index foo_next_update on foo( (last_updated + update_cycle) ) ;
> ERROR: functions in index expression must be marked IMMUTABLE
>
> Does anyone know why adding two fields like this results in anything
> other than an immutable function? Under what circumstances could it
> return a different result?
>
> Thanks very much for any help.
>

I believe the problem is that you have a TZ on your timestamp, and
that makes things mutable.

functions that deal with time can't be marked as immutable do to this
reason.

-Dave

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2011-10-13 23:32:54 Re: Error: timestamp with timezone + interval is not immutable while creating index
Previous Message Scott Marlowe 2011-10-13 22:59:01 Re: Tablespace files deleted during continuous run