]> granicus.if.org Git - postgresql/commitdiff
Correct obsolete nbtsort.c minimum key comment.
authorPeter Geoghegan <pg@bowt.ie>
Wed, 8 May 2019 04:42:12 +0000 (21:42 -0700)
committerPeter Geoghegan <pg@bowt.ie>
Wed, 8 May 2019 04:42:12 +0000 (21:42 -0700)
It is no longer possible under any circumstances for nbtree code to
reconstruct a strict lower bound key (parent page's pivot tuple key) for
a right sibling page by retrieving the first item in the right sibling
page.

src/backend/access/nbtree/nbtsort.c

index cc50ec1fa43c4d29fcb44acc2f30dc267de25087..0b5be776d63fa07f16da80eca5170a436cbadf59 100644 (file)
@@ -1007,9 +1007,8 @@ _bt_buildadd(BTWriteState *wstate, BTPageState *state, IndexTuple itup)
                pfree(state->btps_minkey);
 
                /*
-                * Save a copy of the minimum key for the new page.  We have to copy
-                * it off the old page, not the new one, in case we are not at leaf
-                * level.
+                * Save a copy of the high key from the old page.  It is also used as
+                * the minimum key for the new page.
                 */
                state->btps_minkey = CopyIndexTuple(oitup);
 
@@ -1045,9 +1044,8 @@ _bt_buildadd(BTWriteState *wstate, BTPageState *state, IndexTuple itup)
         * If the new item is the first for its page, stash a copy for later. Note
         * this will only happen for the first item on a level; on later pages,
         * the first item for a page is copied from the prior page in the code
-        * above.  Since the minimum key for an entire level is only used as a
-        * minus infinity downlink, and never as a high key, there is no need to
-        * truncate away suffix attributes at this point.
+        * above.  The minimum key for an entire level is nothing more than a
+        * minus infinity (downlink only) pivot tuple placeholder.
         */
        if (last_off == P_HIKEY)
        {