Re: Exclusion constraints with time expressions

From: "Albe Laurenz" <laurenz(dot)albe(at)wien(dot)gv(dot)at>
To: "Thomas Munro *EXTERN*" <munro(at)ip9(dot)org>, <pgsql-general(at)postgresql(dot)org>
Subject: Re: Exclusion constraints with time expressions
Date: 2012-11-06 09:57:02
Message-ID: D960CB61B694CF459DCFB4B0128514C208A4E94F@exadv11.host.magwien.gv.at
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Thomas Munro wrote:
> I am using 9.1.6, and I've set up a partitioned table as described in
the manual, with partitions
> based on a timestamptz column called 'time'. The exclusion
constraints work nicely when I select
> ranges of times with literal constants. But why would a WHERE clause
like the following not benefit
> from exclusion constraints?
>
> time > TIMESTAMPTZ '2012-11-03 00:00:00Z' + INTERVAL '24 hours'
>
>
> Isn't that expression on the right reducible to a constant up front?
Obviously I can use a host
> language to do the arithmetic and provide a constant, but I am curious
to understand why that wouldn't
> be constant-folded.

I think the problem is that this + operator is implemented
by the function "timestamptz_pl_interval", which is STABLE
but not IMMUTABLE.

I am not sure why this function cannot be IMMUTABLE, it
seems to me that it should be.

Yours,
Laurenz Albe

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Magnus Hagander 2012-11-06 10:01:38 Re: Problem with streaming replication over SSL
Previous Message Albe Laurenz 2012-11-06 09:47:50 Problem with streaming replication over SSL