On Mon, Sep 29, 2014 at 2:41 AM, Andres Freund <and...@2ndquadrant.com> wrote:
> On 2014-09-28 17:32:21 +1300, David Rowley wrote: > > My understanding of foreign keys is that any pending foreign key triggers > > will be executed just before the query completes, so we should only ever > > encounter pending foreign key triggers during planning when we're > planning > > a query that's being executed from somewhere like a volatile function or > > trigger function, if the outer query has updated or deleted some records > > which are referenced by a foreign key. > > Note that foreign key checks also can be deferred. So the window for > these cases is actually larger. > > Thanks Andres, I know you had said this before but I had previously failed to realise exactly what you meant. I thought you were talking about defining a foreign key to reference a column that has a deferrable unique index. I now realise you were talking about making the foreign key itself as deferrable. I've made a change to the patch locally to ignore foreign keys that are marked as deferrable. Regards David Rowley