On Thu, 2008-05-08 at 14:56 +0200, Peter Eisentraut wrote:
> Am Donnerstag, 8. Mai 2008 schrieb Simon Riggs:
> > CREATE RULE somename AS ON INSERT TO x WHERE where-clause DO INSERT ...
> >
> > which seems straightforward, no?
>
> Double evaluation is the key word. The conclusion was more or less that you
> can't implement check constraints using the rules system. You need to check
> them in the executor.
That makes sense. I can't see how we would make LOCAL CHECK CONSTRAINTs
work with rules anyhow.
So that means WITH CHECK CONSTRAINT is going to end up executed in a
similar place to constraint evaluation on underlying tables.
That leaves me in a difficult position with MERGE though. MERGE does
something similar with conditional-WHEN clause evaluation, plus
transformation of the sub-statements is only sensible when we have
updatable views. :-(
--
Simon Riggs
2ndQuadrant http://www.2ndQuadrant.com