While reading the code for heapam.c:heap_multi_insert I happened upon this comment which I'm either too thick for, or it lacks a word or two:
* .. * A check here does not definitively prevent a serialization anomaly; * that check MUST be done at least past the point of acquiring an * exclusive buffer content lock on every buffer that will be affected, * and MAY be done after all inserts are reflected in the buffers and * those locks are released; otherwise there race condition. Since * multiple buffers can be locked and unlocked in the loop below, and it * would not be feasible to identify and lock all of those buffers before * the loop, we must do a final check at the end. * .. The part I don't understand is "otherwise there race condition", it doesn't sound complete to me as a non-native english speaker. Should that really be "otherwise there *is a (potential)* race condition" or something similar? cheers ./daniel