On Thursday, November 6, 2003, at 02:38 AM, Tom Lane wrote:


Michael Glaesemann <[EMAIL PROTECTED]> 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


---------------------------(end of broadcast)--------------------------- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])

Reply via email to