Hi Peter,

I understand what you're pointing at and I agree that it could be a good
thing to be able to dump/restore a table without problem.

My point was that check constraints weren't supposed to be used that way
theorically (or maybe i'm mistaken ?) so I thought maybe we should just
inform the user that this kind of use of a check constraint is a misuse of
that feature.

Maybe it's not the right way to say it. I can remove the part about pg_dump
if it's too confusing...

Regards,

Lætitia



Le mer. 27 juin 2018 à 08:44, Peter Eisentraut <
peter.eisentr...@2ndquadrant.com> a écrit :

> On 6/26/18 09:49, Lætitia Avrot wrote:
> > +   <note>
> > +    <para>
> > +     Check constraints are not designed to enforce business rules
> across tables.
> > +     Avoid using check constraints with a function accessing other
> tables and
> > +     use <xref linkend="triggers"/> instead. Although PostgreSQL won't
> prevent you
> > +     from doing so, beware that dumps generated by
> <application>pg_dump</application>
> > +     or <application>pg_dumpall</application> may be hard
> > +     to restore because of such checks, as the underlying dependencies
> are not
> > +     taken into account.
> > +    </para>
> > +   </note>
>
> In a way, I think this is attacking the wrong problem.  It is saying
> that you should use triggers instead of check constraints in certain
> circumstances.  But triggers are also used as an implementation detail
> of constraints.  While it currently doesn't exist, a deferrable check
> constraint would probably be implemented as a trigger.  It's not the
> triggerness that fixes this problem.  The problem is more generally that
> if a function uses a table, then pg_dump can't know about the ordering.
> It happens to work for triggers because triggers are dumped after all
> tables, as a performance optimization, and we could very well dump check
> constraints differently as well.
>
> --
> Peter Eisentraut              http://www.2ndQuadrant.com/
> PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
>


-- 
*Think! Do you really need to print this email ? *
*There is no Planet B.*

Reply via email to