aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/access/hash/hashovfl.c4
-rw-r--r--src/backend/access/hash/hashpage.c4
2 files changed, 8 insertions, 0 deletions
diff --git a/src/backend/access/hash/hashovfl.c b/src/backend/access/hash/hashovfl.c
index db3e268a761..df7af3ec842 100644
--- a/src/backend/access/hash/hashovfl.c
+++ b/src/backend/access/hash/hashovfl.c
@@ -656,6 +656,10 @@ _hash_squeezebucket(Relation rel,
IndexTuple itup;
Size itemsz;
+ /* skip dead tuples */
+ if (ItemIdIsDead(PageGetItemId(rpage, roffnum)))
+ continue;
+
itup = (IndexTuple) PageGetItem(rpage,
PageGetItemId(rpage, roffnum));
itemsz = IndexTupleDSize(*itup);
diff --git a/src/backend/access/hash/hashpage.c b/src/backend/access/hash/hashpage.c
index 178463fcb65..a5e9d176a7c 100644
--- a/src/backend/access/hash/hashpage.c
+++ b/src/backend/access/hash/hashpage.c
@@ -811,6 +811,10 @@ _hash_splitbucket(Relation rel,
Size itemsz;
Bucket bucket;
+ /* skip dead tuples */
+ if (ItemIdIsDead(PageGetItemId(opage, ooffnum)))
+ continue;
+
/*
* Fetch the item's hash key (conveniently stored in the item) and
* determine which bucket it now belongs in.