Re: Using SUBSELECT in CHECK expressions

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Using SUBSELECT in CHECK expressions
Дата
Msg-id 3304.1068053893@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: Using SUBSELECT in CHECK expressions  (Michael Glaesemann <grzm@myrealbox.com>)
Ответы Re: Using SUBSELECT in CHECK expressions  (Michael Glaesemann <grzm@myrealbox.com>)
Список pgsql-general
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 ...

            regards, tom lane

В списке pgsql-general по дате отправления:

Предыдущее
От: Greg Stark
Дата:
Сообщение: Re: System crash and trying to run vacuum getting errors
Следующее
От: Jan Poslusny
Дата:
Сообщение: invalid command \