Re: Using SUBSELECT in CHECK expressions - Mailing list pgsql-general

From Michael Glaesemann
Subject Re: Using SUBSELECT in CHECK expressions
Date
Msg-id 59E8621A-0FB8-11D8-B410-0005029FC1A7@myrealbox.com
Whole thread Raw
In response to Re: Using SUBSELECT in CHECK expressions  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: Using SUBSELECT in CHECK expressions
List pgsql-general
On Thursday, November 6, 2003, at 02:38 AM, Tom Lane wrote:

> Michael Glaesemann <grzm@myrealbox.com> writes:
>> On Wednesday, November 5, 2003, at 06:26 AM, Tom Lane wrote:
>>> Just put the SELECT into a function that's called by the CHECK
>>> expression.
>
>> Tom, you've just provided the solution to something I've been thinking
>> about a lot. I really have to start thinking in terms of functions.
>> Are
>> there any restrictions on the function used in the CHECK, i.e., it
>> must
>> be STRICT or IMMUTABLE?
>
> IIRC we check that it is labeled IMMUTABLE.  Whether it really is or
> not, we cannot check (and if it uses a SELECT on tables that could
> change, then of course it isn't; so you are going to need to tell a
> little white lie here).
>
> Because of that, you need to be careful that you pass at least one
> nonconstant argument to the function within the CHECK expression, else
> you risk having the call constant-folded too early.  Normally you'd
> probably pass values from the checked row into the function, so this
> doesn't seem like it should be a problem, but I could see someone
> getting bit by it someday ...

Thanks for the clarification. Is this in the documentation somewhere?
I'm not quite used to the new documentation ordering yet.

Michael
grzm myrealbox com


pgsql-general by date:

Previous
From: Jan Poslusny
Date:
Subject: invalid command \
Next
From: Tom Lane
Date:
Subject: Re: Using SUBSELECT in CHECK expressions