summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeikki Linnakangas2010-11-09 15:40:09 +0000
committerHeikki Linnakangas2010-11-09 15:48:30 +0000
commit39a67533975c8cbadf3d755216cea3ec2c3ce64c (patch)
treed663bfaa2bbed4992d7a841c59d295cea0a7839a
parente55e4c9ced485b44be9e100bbe54546a3272ddae (diff)
In rewriteheap.c (used by VACUUM FULL and CLUSTER), calculate the tuple
length stored in the line pointer the same way it's calculated in the normal heap_insert() codepath. As noted by Jeff Davis, the length stored by raw_heap_insert() included padding but the one stored by the normal codepath did not. While the mismatch seems to be harmless, inconsistency isn't good, and the normal codepath has received a lot more testing over the years. Backpatch to 8.3 where the heap rewrite code was introduced.
-rw-r--r--src/backend/access/heap/rewriteheap.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/backend/access/heap/rewriteheap.c b/src/backend/access/heap/rewriteheap.c
index e35fbeb9b1..378b0ad620 100644
--- a/src/backend/access/heap/rewriteheap.c
+++ b/src/backend/access/heap/rewriteheap.c
@@ -636,7 +636,7 @@ raw_heap_insert(RewriteState state, HeapTuple tup)
}
/* And now we can insert the tuple into the page */
- newoff = PageAddItem(page, (Item) heaptup->t_data, len,
+ newoff = PageAddItem(page, (Item) heaptup->t_data, heaptup->t_len,
InvalidOffsetNumber, false, true);
if (newoff == InvalidOffsetNumber)
elog(ERROR, "failed to add tuple");