postgres.git / summary / log / commit / refs

commit    7c0af833c64cb9ab7fd78b10ec7b04e0b0874bcd
Author:   Heikki Linnakangas <heikki.linnakangas@iki.fi>
Date:     Tue Nov 09 15:40:09 2010 +0000
First released in: 9.1.0, 8.3.13, 8.4.6, 9.0.2

    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.


src/backend/access/heap/rewriteheap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/access/heap/rewriteheap.c b/src/backend/access/heap/rewriteheap.c index 6f00c24845f..4a8fe8d36ef 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"); [parent: 658a630ac0ba]