]> granicus.if.org Git - postgresql/commitdiff
Minor cleanup of GiST code, for readability.
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Thu, 26 Mar 2015 17:11:54 +0000 (19:11 +0200)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Thu, 26 Mar 2015 17:11:54 +0000 (19:11 +0200)
Remove the gistcentryinit function, inlining the relevant part of it into
the only caller.

src/backend/access/gist/gistutil.c
src/include/access/gist_private.h

index 38af0e0cb0a0a13267a4f2ad982c6a7f7fde47b7..824c40eb203fc9cf4a378f6fb3d13ac15e4db6bc 100644 (file)
@@ -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;
index ce83042e177cfcc069017f7344d18a14359915c4..955068791682fc66df9ab66394f8849482494bde 100644 (file)
@@ -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,