don't immediately apply forward deletes - don't need to for correctness, and testing has revealed on balance it's worse to do so.

it does mean more hash blocks later will fail (because they will select in rows that will actually get cleared when the forward deletes are later applied), but that's better than running a lot of extra delete statements.  it's not a correctness problem because the unique index at both ends means that the hypothetical later row using the unique key value now found on the earlier row must have been changed, so we know the later hash will fail.