Re: Check-out mutable functions in check constraints
От
Tomas Vondra
Тема
Re: Check-out mutable functions in check constraints
Дата
Msg-id
20190712111457.ekkcgx5mpkxl2ooh@development
Ответ на
Check-out mutable functions in check constraints (Kyotaro Horiguchi)
Список
Дерево обсуждения
Check-out mutable functions in check constraints Kyotaro Horiguchi <horikyota.ntt@gmail.com>
Re: Check-out mutable functions in check constraints Tomas Vondra <tomas.vondra@2ndquadrant.com>
Re: Check-out mutable functions in check constraints Kyotaro Horiguchi <horikyota.ntt@gmail.com>
Re: Check-out mutable functions in check constraints Pavel Stehule <pavel.stehule@gmail.com>
Re: Check-out mutable functions in check constraints Tomas Vondra <tomas.vondra@2ndquadrant.com>
Re: Check-out mutable functions in check constraints Pavel Stehule <pavel.stehule@gmail.com>
Re: Check-out mutable functions in check constraints Tomas Vondra <tomas.vondra@2ndquadrant.com>
Re: Check-out mutable functions in check constraints Tom Lane <tgl@sss.pgh.pa.us>
Re: Check-out mutable functions in check constraints Tomas Vondra <tomas.vondra@2ndquadrant.com>
Re: Check-out mutable functions in check constraints Tom Lane <tgl@sss.pgh.pa.us>
Re: Check-out mutable functions in check constraints Kyotaro Horiguchi <horikyota.ntt@gmail.com>
Re: Check-out mutable functions in check constraints Robert Haas <robertmhaas@gmail.com>
On Fri, Jul 12, 2019 at 03:44:58PM +0900, Kyotaro Horiguchi wrote:
>Hello.
>
>As mentioned in the following message:
>
>https://www.postgresql.org/message-id/20190712.150527.145133646.horikyota.ntt%40gmail.com
>
>Mutable function are allowed in check constraint expressions but
>it is not right. The attached is a proposed fix for it including
>regression test.
>
I think the comment in parse_expr.c is wrong:
/*
* All SQL value functions are stable so we reject them in check
* constraint expressions.
*/
if (pstate->p_expr_kind == EXPR_KIND_CHECK_CONSTRAINT)
ereport(ERROR,
(errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
errmsg("mutable functions are not allowed in check constraints")));
At first it claims SQL value functions are stable, but then rejects them
with a message that they're mutable.
Also, the other places use "cannot ..." messages:
case EXPR_KIND_COLUMN_DEFAULT:
err = _("cannot use column reference in DEFAULT expression");
break;
so maybe these new checks should use the same style.
regards
--
Tomas Vondra http://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
В списке pgsql-hackers по дате отправления
От: Sehrope Sarkuni
Дата: