From ec8f692c3cd5760435712b7ec4afa8f014ed7b2e Mon Sep 17 00:00:00 2001
From: Heikki Linnakangas <heikki.linnakangas@iki.fi>
Date: Thu, 23 Jan 2014 22:58:12 +0200
Subject: [PATCH] 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);
 
-- 
GitLab