On Sunday 18 July 2010 18:02:26 Simon Riggs wrote:
> On Sun, 2010-07-18 at 17:28 +0200, Andres Freund wrote:
> > Unfortunately the same issue exists with constraint exclusion - and we
> > can hardly disable that for serializable transactions...
>
> Then I think the fix is to look at the xmin values on all of the tables
> used during planning and ensure that we only use constraint-based
> optimisations in a serializable transaction when our top xmin is later
> than the last DDL change (via its xmin).
Why not just use a the normal snapshot at that point? Any older constraints
should be just as valid for the tuples visible for the to-be-planned query.
I also think that would lay groundwork for reducing lock-levels further in the
future.
Andres