Skip to content

Commit e54a080

Browse files
committed
Merge commit '5da261a611e1c23a076700490db88a4372b6286a' into PGPROEE9_6
2 parents a99b0ec + 5da261a commit e54a080

File tree

2 files changed

+11
-10
lines changed

2 files changed

+11
-10
lines changed

contrib/rum/src/rum.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -495,7 +495,7 @@ extern void rumPrepareEntryScan(RumBtree btree, OffsetNumber attnum,
495495
RumState * rumstate);
496496
extern void rumEntryFillRoot(RumBtree btree, Buffer root, Buffer lbuf, Buffer rbuf,
497497
Page page, Page lpage, Page rpage);
498-
extern IndexTuple rumPageGetLinkItup(Buffer buf, Page page);
498+
extern IndexTuple rumPageGetLinkItup(RumBtree btree, Buffer buf, Page page);
499499
extern void rumReadTuple(RumState * rumstate, OffsetNumber attnum,
500500
IndexTuple itup, RumKey * items);
501501
extern void rumReadTuplePointers(RumState * rumstate, OffsetNumber attnum,

contrib/rum/src/rumentrypage.c

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,8 @@ rumReadTuplePointers(RumState * rumstate, OffsetNumber attnum,
6565
* block number is inserted into t_tid.
6666
*/
6767
static IndexTuple
68-
RumFormInteriorTuple(IndexTuple itup, Page page, BlockNumber childblk)
68+
RumFormInteriorTuple(RumBtree btree, IndexTuple itup, Page page,
69+
BlockNumber childblk)
6970
{
7071
IndexTuple nitup;
7172
RumNullCategory category;
@@ -92,10 +93,10 @@ RumFormInteriorTuple(IndexTuple itup, Page page, BlockNumber childblk)
9293
/* Now insert the correct downlink */
9394
RumSetDownlink(nitup, childblk);
9495

95-
category = RumGetNullCategory(itup);
96-
if (category == RUM_CAT_NULL_KEY || category == RUM_CAT_EMPTY_ITEM ||
97-
category == RUM_CAT_NULL_ITEM)
96+
rumtuple_get_key(btree->rumstate, itup, &category);
97+
if (category != RUM_CAT_NORM_KEY)
9898
{
99+
Assert(IndexTupleHasNulls(itup));
99100
nitup->t_info |= INDEX_NULL_MASK;
100101
RumSetNullCategory(nitup, category);
101102
}
@@ -487,7 +488,7 @@ entrySplitPage(RumBtree btree, Buffer lbuf, Buffer rbuf,
487488
ptr += MAXALIGN(IndexTupleSize(itup));
488489
}
489490

490-
btree->entry = RumFormInteriorTuple(leftrightmost, newlPage,
491+
btree->entry = RumFormInteriorTuple(btree, leftrightmost, newlPage,
491492
BufferGetBlockNumber(lbuf));
492493

493494
btree->rightblkno = BufferGetBlockNumber(rbuf);
@@ -499,13 +500,13 @@ entrySplitPage(RumBtree btree, Buffer lbuf, Buffer rbuf,
499500
* return newly allocated rightmost tuple
500501
*/
501502
IndexTuple
502-
rumPageGetLinkItup(Buffer buf, Page page)
503+
rumPageGetLinkItup(RumBtree btree, Buffer buf, Page page)
503504
{
504505
IndexTuple itup,
505506
nitup;
506507

507508
itup = getRightMostTuple(page);
508-
nitup = RumFormInteriorTuple(itup, page, BufferGetBlockNumber(buf));
509+
nitup = RumFormInteriorTuple(btree, itup, page, BufferGetBlockNumber(buf));
509510

510511
return nitup;
511512
}
@@ -520,12 +521,12 @@ rumEntryFillRoot(RumBtree btree, Buffer root, Buffer lbuf, Buffer rbuf,
520521
{
521522
IndexTuple itup;
522523

523-
itup = rumPageGetLinkItup(lbuf, lpage);
524+
itup = rumPageGetLinkItup(btree, lbuf, lpage);
524525
if (PageAddItem(page, (Item) itup, IndexTupleSize(itup), InvalidOffsetNumber, false, false) == InvalidOffsetNumber)
525526
elog(ERROR, "failed to add item to index root page");
526527
pfree(itup);
527528

528-
itup = rumPageGetLinkItup(rbuf, rpage);
529+
itup = rumPageGetLinkItup(btree, rbuf, rpage);
529530
if (PageAddItem(page, (Item) itup, IndexTupleSize(itup), InvalidOffsetNumber, false, false) == InvalidOffsetNumber)
530531
elog(ERROR, "failed to add item to index root page");
531532
pfree(itup);

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy