Re: NOT ENFORCED constraint feature - Mailing list pgsql-hackers

From jian he
Subject Re: NOT ENFORCED constraint feature
Date
Msg-id CACJufxEG6_Ru25w0sWw5=amt7BRihjt406=iyEseHspn0JU7fw@mail.gmail.com
Whole thread Raw
In response to Re: NOT ENFORCED constraint feature  (Peter Eisentraut <peter@eisentraut.org>)
Responses Re: NOT ENFORCED constraint feature
Re: NOT ENFORCED constraint feature
List pgsql-hackers
i just only apply v5-0001 for now.

create table t(a int);
alter table t ADD CONSTRAINT cc CHECK (a > 0);
alter table t alter CONSTRAINT cc NOT ENFORCED;
alter table t alter CONSTRAINT cc ENFORCED;

the last two queries will fail, which means
ALTER CONSTRAINT constraint_name [ DEFERRABLE | NOT DEFERRABLE ] [
INITIALLY DEFERRED | INITIALLY IMMEDIATE ] [ ENFORCED | NOT ENFORCED ]
in doc/src/sgml/ref/alter_table.sgml is not correct?
also no code change in ATExecAlterConstraint.

errmsg("cannot validated NOT ENFORCED constraint")));
should be
errmsg("cannot validate NOT ENFORCED constraint")));
?

typedef struct ConstrCheck
{
    char       *ccname;
    char       *ccbin;            /* nodeToString representation of expr */
    bool        ccenforced;
    bool        ccvalid;
    bool        ccnoinherit;    /* this is a non-inheritable constraint */
} ConstrCheck

ConstraintImpliedByRelConstraint,
get_relation_constraints
need skip notenforced check constraint?


put domain related tests from constraints.sql to domain.sql would be better.



pgsql-hackers by date:

Previous
From: "David G. Johnston"
Date:
Subject: Re: Contradictory behavior of array_agg(distinct) aggregate.
Next
From: Daniil Davydov
Date:
Subject: Improve DDL related functionality in table AM