postgres.git / summary / log / commit / refs

commit    ec8f692c3cd5760435712b7ec4afa8f014ed7b2e
Author:   Heikki Linnakangas <heikki.linnakangas@iki.fi>
Date:     Thu Jan 23 20:58:12 2014 +0000

    Fix alignment of GIN in-line posting lists stored in entry tuples.
    
    The Sparc machines in the buildfarm are crashing because of misaligned
    access to posting lists stored in entry tuples.
    
    I accidentally removed a critical SHORTALIGN() from ginFormTuple, as part
    of the packed posting lists patch. Perhaps I thought it was unnecessary,
    because the index_form_tuple() call above the SHORTALIGN already aligned
    the size, missing the fact that the null-category byte makes it misaligned
    again (I think the SHORTALIGN is indeed unnecessary if there's no null-
    category byte, but let's just play it safe...)


src/backend/access/gin/ginentrypage.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/backend/access/gin/ginentrypage.c b/src/backend/access/gin/ginentrypage.c index 6f4e727b3e9..d5aa243a659 100644 --- a/src/backend/access/gin/ginentrypage.c +++ b/src/backend/access/gin/ginentrypage.c @@ -87,6 +87,8 @@ GinFormTuple(GinState *ginstate, newsize = Max(newsize, minsize); } + newsize = SHORTALIGN(newsize); + GinSetPostingOffset(itup, newsize); GinSetNPosting(itup, nipd); [parent: 0fdb2f7d7c00]