mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-27 08:39:28 +08:00
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.
This commit is contained in:
parent
73bc5218df
commit
000efc3dfd
@ -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");
|
||||
|
Loading…
Reference in New Issue
Block a user