aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>2010-11-09 17:40:09 +0200
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>2010-11-09 17:48:14 +0200
commit000efc3dfdf425136ef9564e86d1800cbe584e75 (patch)
tree0ee19705a14d287d6b8bfb66fed1fcf515f22ebf /src
parent73bc5218df0330a4beb737f497fa8d7b337c9f90 (diff)
downloadpostgresql-000efc3dfdf425136ef9564e86d1800cbe584e75.tar.gz
postgresql-000efc3dfdf425136ef9564e86d1800cbe584e75.zip
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.
Diffstat (limited to 'src')
-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 0bd18650682..19ca302ebb9 100644
--- a/src/backend/access/heap/rewriteheap.c
+++ b/src/backend/access/heap/rewriteheap.c
@@ -641,7 +641,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");