]> granicus.if.org Git - postgresql/blobdiff - src/backend/access/gin/ginbtree.c
Cosmetic cleanup of ginInsertValue().
[postgresql] / src / backend / access / gin / ginbtree.c
index b160551b5ed6ed16693904488b9c3bda7e0146d3..82ac53e148724502e5bd51a33df37a040274c53d 100644 (file)
@@ -275,20 +275,22 @@ ginFindParents(GinBtree btree, GinBtreeStack *stack,
 void
 ginInsertValue(GinBtree btree, GinBtreeStack *stack, GinStatsData *buildStats)
 {
-       GinBtreeStack *parent = stack;
-       BlockNumber rootBlkno = InvalidBuffer;
+       GinBtreeStack *parent;
+       BlockNumber rootBlkno;
        Page            page,
                                rpage,
                                lpage;
 
-       /* remember root BlockNumber */
-       while (parent)
-       {
-               rootBlkno = parent->blkno;
+       /* extract root BlockNumber from stack */
+       Assert(stack != NULL);
+       parent = stack;
+       while (parent->parent)
                parent = parent->parent;
-       }
+       rootBlkno = parent->blkno;
+       Assert(BlockNumberIsValid(rootBlkno));
 
-       while (stack)
+       /* this loop crawls up the stack until the insertion is complete */
+       for (;;)
        {
                XLogRecData *rdata;
                BlockNumber savedRightLink;
@@ -457,7 +459,7 @@ ginInsertValue(GinBtree btree, GinBtreeStack *stack, GinStatsData *buildStats)
                                 */
                                ginFindParents(btree, stack, rootBlkno);
                                parent = stack->parent;
-                               page = BufferGetPage(parent->buffer);
+                               Assert(parent != NULL);
                                break;
                        }