@@ -256,20 +256,20 @@ btree_xlog_split(bool newitemonleft, XLogReaderState *record)
256256 XLogRecPtr lsn = record -> EndRecPtr ;
257257 xl_btree_split * xlrec = (xl_btree_split * ) XLogRecGetData (record );
258258 bool isleaf = (xlrec -> level == 0 );
259- Buffer lbuf ;
259+ Buffer buf ;
260260 Buffer rbuf ;
261261 Page rpage ;
262262 BTPageOpaque ropaque ;
263263 char * datapos ;
264264 Size datalen ;
265- BlockNumber leftsib ;
266- BlockNumber rightsib ;
267- BlockNumber rnext ;
265+ BlockNumber origpagenumber ;
266+ BlockNumber rightpagenumber ;
267+ BlockNumber spagenumber ;
268268
269- XLogRecGetBlockTag (record , 0 , NULL , NULL , & leftsib );
270- XLogRecGetBlockTag (record , 1 , NULL , NULL , & rightsib );
271- if (!XLogRecGetBlockTag (record , 2 , NULL , NULL , & rnext ))
272- rnext = P_NONE ;
269+ XLogRecGetBlockTag (record , 0 , NULL , NULL , & origpagenumber );
270+ XLogRecGetBlockTag (record , 1 , NULL , NULL , & rightpagenumber );
271+ if (!XLogRecGetBlockTag (record , 2 , NULL , NULL , & spagenumber ))
272+ spagenumber = P_NONE ;
273273
274274 /*
275275 * Clear the incomplete split flag on the left sibling of the child page
@@ -287,8 +287,8 @@ btree_xlog_split(bool newitemonleft, XLogReaderState *record)
287287 _bt_pageinit (rpage , BufferGetPageSize (rbuf ));
288288 ropaque = (BTPageOpaque ) PageGetSpecialPointer (rpage );
289289
290- ropaque -> btpo_prev = leftsib ;
291- ropaque -> btpo_next = rnext ;
290+ ropaque -> btpo_prev = origpagenumber ;
291+ ropaque -> btpo_next = spagenumber ;
292292 ropaque -> btpo .level = xlrec -> level ;
293293 ropaque -> btpo_flags = isleaf ? BTP_LEAF : 0 ;
294294 ropaque -> btpo_cycleid = 0 ;
@@ -298,8 +298,8 @@ btree_xlog_split(bool newitemonleft, XLogReaderState *record)
298298 PageSetLSN (rpage , lsn );
299299 MarkBufferDirty (rbuf );
300300
301- /* Now reconstruct left (original) sibling page */
302- if (XLogReadBufferForRedo (record , 0 , & lbuf ) == BLK_NEEDS_REDO )
301+ /* Now reconstruct original page (left half of split) */
302+ if (XLogReadBufferForRedo (record , 0 , & buf ) == BLK_NEEDS_REDO )
303303 {
304304 /*
305305 * To retain the same physical order of the tuples that they had, we
@@ -309,15 +309,15 @@ btree_xlog_split(bool newitemonleft, XLogReaderState *record)
309309 * checking possible. See also _bt_restore_page(), which does the
310310 * same for the right page.
311311 */
312- Page lpage = (Page ) BufferGetPage (lbuf );
313- BTPageOpaque lopaque = (BTPageOpaque ) PageGetSpecialPointer (lpage );
312+ Page origpage = (Page ) BufferGetPage (buf );
313+ BTPageOpaque oopaque = (BTPageOpaque ) PageGetSpecialPointer (origpage );
314314 OffsetNumber off ;
315315 IndexTuple newitem = NULL ,
316316 left_hikey = NULL ,
317317 nposting = NULL ;
318318 Size newitemsz = 0 ,
319319 left_hikeysz = 0 ;
320- Page newlpage ;
320+ Page leftpage ;
321321 OffsetNumber leftoff ,
322322 replacepostingoff = InvalidOffsetNumber ;
323323
@@ -340,8 +340,8 @@ btree_xlog_split(bool newitemonleft, XLogReaderState *record)
340340
341341 /* Use mutable, aligned newitem copy in _bt_swap_posting() */
342342 newitem = CopyIndexTuple (newitem );
343- itemid = PageGetItemId (lpage , replacepostingoff );
344- oposting = (IndexTuple ) PageGetItem (lpage , itemid );
343+ itemid = PageGetItemId (origpage , replacepostingoff );
344+ oposting = (IndexTuple ) PageGetItem (origpage , itemid );
345345 nposting = _bt_swap_posting (newitem , oposting ,
346346 xlrec -> postingoff );
347347 }
@@ -359,16 +359,16 @@ btree_xlog_split(bool newitemonleft, XLogReaderState *record)
359359
360360 Assert (datalen == 0 );
361361
362- newlpage = PageGetTempPageCopySpecial (lpage );
362+ leftpage = PageGetTempPageCopySpecial (origpage );
363363
364- /* Set high key */
364+ /* Add high key tuple from WAL record to temp page */
365365 leftoff = P_HIKEY ;
366- if (PageAddItem (newlpage , (Item ) left_hikey , left_hikeysz ,
367- P_HIKEY , false, false) == InvalidOffsetNumber )
368- elog (PANIC , "failed to add high key to left page after split" );
366+ if (PageAddItem (leftpage , (Item ) left_hikey , left_hikeysz , P_HIKEY ,
367+ false, false) == InvalidOffsetNumber )
368+ elog (ERROR , "failed to add high key to left page after split" );
369369 leftoff = OffsetNumberNext (leftoff );
370370
371- for (off = P_FIRSTDATAKEY (lopaque ); off < xlrec -> firstrightoff ; off ++ )
371+ for (off = P_FIRSTDATAKEY (oopaque ); off < xlrec -> firstrightoff ; off ++ )
372372 {
373373 ItemId itemid ;
374374 Size itemsz ;
@@ -379,7 +379,7 @@ btree_xlog_split(bool newitemonleft, XLogReaderState *record)
379379 {
380380 Assert (newitemonleft ||
381381 xlrec -> firstrightoff == xlrec -> newitemoff );
382- if (PageAddItem (newlpage , (Item ) nposting ,
382+ if (PageAddItem (leftpage , (Item ) nposting ,
383383 MAXALIGN (IndexTupleSize (nposting )), leftoff ,
384384 false, false) == InvalidOffsetNumber )
385385 elog (ERROR , "failed to add new posting list item to left page after split" );
@@ -390,16 +390,16 @@ btree_xlog_split(bool newitemonleft, XLogReaderState *record)
390390 /* add the new item if it was inserted on left page */
391391 else if (newitemonleft && off == xlrec -> newitemoff )
392392 {
393- if (PageAddItem (newlpage , (Item ) newitem , newitemsz , leftoff ,
393+ if (PageAddItem (leftpage , (Item ) newitem , newitemsz , leftoff ,
394394 false, false) == InvalidOffsetNumber )
395395 elog (ERROR , "failed to add new item to left page after split" );
396396 leftoff = OffsetNumberNext (leftoff );
397397 }
398398
399- itemid = PageGetItemId (lpage , off );
399+ itemid = PageGetItemId (origpage , off );
400400 itemsz = ItemIdGetLength (itemid );
401- item = (IndexTuple ) PageGetItem (lpage , itemid );
402- if (PageAddItem (newlpage , (Item ) item , itemsz , leftoff ,
401+ item = (IndexTuple ) PageGetItem (origpage , itemid );
402+ if (PageAddItem (leftpage , (Item ) item , itemsz , leftoff ,
403403 false, false) == InvalidOffsetNumber )
404404 elog (ERROR , "failed to add old item to left page after split" );
405405 leftoff = OffsetNumberNext (leftoff );
@@ -408,31 +408,31 @@ btree_xlog_split(bool newitemonleft, XLogReaderState *record)
408408 /* cope with possibility that newitem goes at the end */
409409 if (newitemonleft && off == xlrec -> newitemoff )
410410 {
411- if (PageAddItem (newlpage , (Item ) newitem , newitemsz , leftoff ,
411+ if (PageAddItem (leftpage , (Item ) newitem , newitemsz , leftoff ,
412412 false, false) == InvalidOffsetNumber )
413413 elog (ERROR , "failed to add new item to left page after split" );
414414 leftoff = OffsetNumberNext (leftoff );
415415 }
416416
417- PageRestoreTempPage (newlpage , lpage );
417+ PageRestoreTempPage (leftpage , origpage );
418418
419419 /* Fix opaque fields */
420- lopaque -> btpo_flags = BTP_INCOMPLETE_SPLIT ;
420+ oopaque -> btpo_flags = BTP_INCOMPLETE_SPLIT ;
421421 if (isleaf )
422- lopaque -> btpo_flags |= BTP_LEAF ;
423- lopaque -> btpo_next = rightsib ;
424- lopaque -> btpo_cycleid = 0 ;
422+ oopaque -> btpo_flags |= BTP_LEAF ;
423+ oopaque -> btpo_next = rightpagenumber ;
424+ oopaque -> btpo_cycleid = 0 ;
425425
426- PageSetLSN (lpage , lsn );
427- MarkBufferDirty (lbuf );
426+ PageSetLSN (origpage , lsn );
427+ MarkBufferDirty (buf );
428428 }
429429
430430 /*
431431 * We no longer need the buffers. They must be released together, so that
432432 * readers cannot observe two inconsistent halves.
433433 */
434- if (BufferIsValid (lbuf ))
435- UnlockReleaseBuffer (lbuf );
434+ if (BufferIsValid (buf ))
435+ UnlockReleaseBuffer (buf );
436436 UnlockReleaseBuffer (rbuf );
437437
438438 /*
@@ -443,22 +443,22 @@ btree_xlog_split(bool newitemonleft, XLogReaderState *record)
443443 * replay, because no other index update can be in progress, and readers
444444 * will cope properly when following an obsolete left-link.
445445 */
446- if (rnext != P_NONE )
446+ if (spagenumber != P_NONE )
447447 {
448- Buffer buffer ;
448+ Buffer sbuf ;
449449
450- if (XLogReadBufferForRedo (record , 2 , & buffer ) == BLK_NEEDS_REDO )
450+ if (XLogReadBufferForRedo (record , 2 , & sbuf ) == BLK_NEEDS_REDO )
451451 {
452- Page page = (Page ) BufferGetPage (buffer );
453- BTPageOpaque pageop = (BTPageOpaque ) PageGetSpecialPointer (page );
452+ Page spage = (Page ) BufferGetPage (sbuf );
453+ BTPageOpaque spageop = (BTPageOpaque ) PageGetSpecialPointer (spage );
454454
455- pageop -> btpo_prev = rightsib ;
455+ spageop -> btpo_prev = rightpagenumber ;
456456
457- PageSetLSN (page , lsn );
458- MarkBufferDirty (buffer );
457+ PageSetLSN (spage , lsn );
458+ MarkBufferDirty (sbuf );
459459 }
460- if (BufferIsValid (buffer ))
461- UnlockReleaseBuffer (buffer );
460+ if (BufferIsValid (sbuf ))
461+ UnlockReleaseBuffer (sbuf );
462462 }
463463}
464464
0 commit comments