diff options
Diffstat (limited to 'src/backend/access/index/genam.c')
-rw-r--r-- | src/backend/access/index/genam.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/backend/access/index/genam.c b/src/backend/access/index/genam.c index b93288a6fe6..64023eaea5d 100644 --- a/src/backend/access/index/genam.c +++ b/src/backend/access/index/genam.c @@ -303,6 +303,8 @@ index_compute_xid_horizon_for_tuples(Relation irel, Assert(nitems > 0); + delstate.irel = irel; + delstate.iblknum = BufferGetBlockNumber(ibuf); delstate.bottomup = false; delstate.bottomupfreespace = 0; delstate.ndeltids = 0; @@ -312,16 +314,17 @@ index_compute_xid_horizon_for_tuples(Relation irel, /* identify what the index tuples about to be deleted point to */ for (int i = 0; i < nitems; i++) { + OffsetNumber offnum = itemnos[i]; ItemId iitemid; - iitemid = PageGetItemId(ipage, itemnos[i]); + iitemid = PageGetItemId(ipage, offnum); itup = (IndexTuple) PageGetItem(ipage, iitemid); Assert(ItemIdIsDead(iitemid)); ItemPointerCopy(&itup->t_tid, &delstate.deltids[i].tid); delstate.deltids[i].id = delstate.ndeltids; - delstate.status[i].idxoffnum = InvalidOffsetNumber; /* unused */ + delstate.status[i].idxoffnum = offnum; delstate.status[i].knowndeletable = true; /* LP_DEAD-marked */ delstate.status[i].promising = false; /* unused */ delstate.status[i].freespace = 0; /* unused */ |