Re: Constraint ordering

From: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
To: Perry Smith <pedz(at)easesoftware(dot)com>
Cc: "pgsql-general(at)lists(dot)postgresql(dot)org" <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: Re: Constraint ordering
Date: 2022-04-09 15:01:25
Message-ID: CAKFQuwZggCj=faio8k-3NaRx8w_se87mFtURQdoe-YJh9tNsjQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Sat, Apr 9, 2022 at 7:43 AM Perry Smith <pedz(at)easesoftware(dot)com> wrote:

> I think (hope) I’ve made a bad assumption. I have my DB with one table
> with two constraint on new entries. The “first” is for the parent and
> basename be unique. The “second” is that the devno and inode are unique if
> it is a directory.
>
> When I was doing my early testing, the parent+basename constraint would
> fire first if it needed to. Now that I’m doing a longer test run, the
> second constraint is firing at a time that I wasn’t expecting. I’m
> debugging but it takes time to hit this again.
>
> My assumption was if the error reported back that the “second" constraint
> failed that the “first” constraint passed. But I bet that isn’t a valid
> assumption at all.
>
> All that to ask: is there a predictable ordering of constraints?
>
>
If you cannot find documentation describing constraint ordering rules then
there are none. It isn't something a production application should rely
upon. And for testing you should just ensure that any given test case only
violates one of those constraints at a time when you are testing to see
that they fire.

I'm not aware of any documentation describing constraint evaluation order.

David J.

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Ron 2022-04-09 15:05:44 Re: Constraint ordering
Previous Message Perry Smith 2022-04-09 14:42:57 Constraint ordering