aboutsummaryrefslogtreecommitdiff
path: root/src/tutorial/advanced.source
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2006-11-19 21:33:29 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2006-11-19 21:33:29 +0000
commitdfb25d2863388a65c909845b8aaa46b87c9ad4b3 (patch)
tree2a5d5e8141de0696b6764139696666e681c836aa /src/tutorial/advanced.source
parent91eb4895bb6c57face2edf30e20e16e6ab942ef1 (diff)
downloadpostgresql-dfb25d2863388a65c909845b8aaa46b87c9ad4b3.tar.gz
postgresql-dfb25d2863388a65c909845b8aaa46b87c9ad4b3.zip
Repair problems with hash indexes that span multiple segments: the hash code's
preference for filling pages out-of-order tends to confuse the sanity checks in md.c, as per report from Balazs Nagy in bug #2737. The fix is to ensure that the smgr-level code always has the same idea of the logical EOF as the hash index code does, by using ReadBuffer(P_NEW) where we are adding a single page to the end of the index, and using smgrextend() to reserve a large batch of pages when creating a new splitpoint. The patch is a bit ugly because it avoids making any changes in md.c, which seems the most prudent approach for a backpatchable beta-period fix. After 8.3 development opens, I'll take a look at a cleaner but more invasive patch, in particular getting rid of the now unnecessary hack to allow reading beyond EOF in mdread(). Backpatch as far as 7.4. The bug likely exists in 7.3 as well, but because of the magnitude of the 7.3-to-7.4 changes in hash, the later-version patch doesn't even begin to apply. Given the other known bugs in the 7.3-era hash code, it does not seem worth trying to develop a separate patch for 7.3.
Diffstat (limited to 'src/tutorial/advanced.source')
0 files changed, 0 insertions, 0 deletions