Anssi Kääriäinen<anssi(dot)kaariainen(at)thl(dot)fi> wrote:
> something seems to be broken when using partial indexes.
Boy do I feel dumb for taking all day to find the cause.
The problem was a misdirected optimization -- on an update it was
only checking the "after" image for conflict, assuming that it would
be redundant to check both the before and after images. The problem
is that with a partial index, you might only see one of those
tuples, and I suspect there could be bugs with updates which changed
a value later used for access.
The evil premature optimization is eliminated here:
This also includes an attempt to eliminate the assertion failure Dan
found in DBT-2 testing yesterday. I'm not sure if this change is
radical enough, but I figured it was better to try the minimal
change first, and see if that was sufficient. If not, I'll have to
move some code between functions, and duplicate a bit of code.
New patch (version 10) attached.
Description: application/octet-stream (60.9 KB)
In response to
pgsql-hackers by date
|Next:||From: Andrew Dunstan||Date: 2011-01-11 23:44:53|
|Subject: Re: arrays as pl/perl input arguments [PATCH]|
|Previous:||From: Jeff Davis||Date: 2011-01-11 23:23:38|
|Subject: Re: Allowing multiple concurrent base backups|