From 8fa393a6d739796d9f06a7fba91d7e1d0c354879 Mon Sep 17 00:00:00 2001
From: Heikki Linnakangas <heikki.linnakangas@iki.fi>
Date: Thu, 26 Mar 2015 19:11:54 +0200
Subject: [PATCH] Minor cleanup of GiST code, for readability.

Remove the gistcentryinit function, inlining the relevant part of it into
the only caller.
---
 src/backend/access/gist/gistutil.c | 50 +++++++++---------------------
 src/include/access/gist_private.h  |  6 +---
 2 files changed, 16 insertions(+), 40 deletions(-)

diff --git a/src/backend/access/gist/gistutil.c b/src/backend/access/gist/gistutil.c
index 38af0e0cb0a..824c40eb203 100644
--- a/src/backend/access/gist/gistutil.c
+++ b/src/backend/access/gist/gistutil.c
@@ -558,53 +558,33 @@ gistdentryinit(GISTSTATE *giststate, int nkey, GISTENTRY *e,
 		gistentryinit(*e, (Datum) 0, r, pg, o, l);
 }
 
-
-/*
- * initialize a GiST entry with a compressed version of key
- */
-void
-gistcentryinit(GISTSTATE *giststate, int nkey,
-			   GISTENTRY *e, Datum k, Relation r,
-			   Page pg, OffsetNumber o, bool l, bool isNull)
-{
-	if (!isNull)
-	{
-		GISTENTRY  *cep;
-
-		gistentryinit(*e, k, r, pg, o, l);
-		cep = (GISTENTRY *)
-			DatumGetPointer(FunctionCall1Coll(&giststate->compressFn[nkey],
-										   giststate->supportCollation[nkey],
-											  PointerGetDatum(e)));
-		/* compressFn may just return the given pointer */
-		if (cep != e)
-			gistentryinit(*e, cep->key, cep->rel, cep->page, cep->offset,
-						  cep->leafkey);
-	}
-	else
-		gistentryinit(*e, (Datum) 0, r, pg, o, l);
-}
-
 IndexTuple
 gistFormTuple(GISTSTATE *giststate, Relation r,
-			  Datum attdata[], bool isnull[], bool newValues)
+			  Datum attdata[], bool isnull[], bool isleaf)
 {
-	GISTENTRY	centry[INDEX_MAX_KEYS];
 	Datum		compatt[INDEX_MAX_KEYS];
 	int			i;
 	IndexTuple	res;
 
+	/*
+	 * Call the compress method on each attribute.
+	 */
 	for (i = 0; i < r->rd_att->natts; i++)
 	{
 		if (isnull[i])
 			compatt[i] = (Datum) 0;
 		else
 		{
-			gistcentryinit(giststate, i, &centry[i], attdata[i],
-						   r, NULL, (OffsetNumber) 0,
-						   newValues,
-						   FALSE);
-			compatt[i] = centry[i].key;
+			GISTENTRY	centry;
+			GISTENTRY  *cep;
+
+			gistentryinit(centry, attdata[i], r, NULL, (OffsetNumber) 0,
+						  isleaf);
+			cep = (GISTENTRY *)
+				DatumGetPointer(FunctionCall1Coll(&giststate->compressFn[i],
+										   giststate->supportCollation[i],
+												  PointerGetDatum(&centry)));
+			compatt[i] = cep->key;
 		}
 	}
 
@@ -612,7 +592,7 @@ gistFormTuple(GISTSTATE *giststate, Relation r,
 
 	/*
 	 * The offset number on tuples on internal pages is unused. For historical
-	 * reasons, it is set 0xffff.
+	 * reasons, it is set to 0xffff.
 	 */
 	ItemPointerSetOffsetNumber(&(res->t_tid), 0xffff);
 	return res;
diff --git a/src/include/access/gist_private.h b/src/include/access/gist_private.h
index ce83042e177..95506879168 100644
--- a/src/include/access/gist_private.h
+++ b/src/include/access/gist_private.h
@@ -485,15 +485,11 @@ extern IndexTuple gistgetadjusted(Relation r,
 				IndexTuple addtup,
 				GISTSTATE *giststate);
 extern IndexTuple gistFormTuple(GISTSTATE *giststate,
-			  Relation r, Datum *attdata, bool *isnull, bool newValues);
+			  Relation r, Datum *attdata, bool *isnull, bool isleaf);
 
 extern OffsetNumber gistchoose(Relation r, Page p,
 		   IndexTuple it,
 		   GISTSTATE *giststate);
-extern void gistcentryinit(GISTSTATE *giststate, int nkey,
-			   GISTENTRY *e, Datum k,
-			   Relation r, Page pg,
-			   OffsetNumber o, bool l, bool isNull);
 
 extern void GISTInitBuffer(Buffer b, uint32 f);
 extern void gistdentryinit(GISTSTATE *giststate, int nkey, GISTENTRY *e,
-- 
GitLab