aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backend/access/hash/hashinsert.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/backend/access/hash/hashinsert.c b/src/backend/access/hash/hashinsert.c
index 9db522051ef..9a921e341e7 100644
--- a/src/backend/access/hash/hashinsert.c
+++ b/src/backend/access/hash/hashinsert.c
@@ -290,12 +290,20 @@ _hash_pgaddtup(Relation rel, Buffer buf, Size itemsize, IndexTuple itup,
{
itup_off = PageGetMaxOffsetNumber(page) + 1;
+#ifdef USE_ASSERT_CHECKING
/* ensure this tuple's hashkey is >= the final existing tuple */
- Assert(PageGetMaxOffsetNumber(page) == 0 ||
- _hash_get_indextuple_hashkey((IndexTuple)
- PageGetItem(page, PageGetItemId(page,
- PageGetMaxOffsetNumber(page)))) <=
- _hash_get_indextuple_hashkey(itup));
+ if (PageGetMaxOffsetNumber(page) > 0)
+ {
+ IndexTuple lasttup;
+ ItemId itemid;
+
+ itemid = PageGetItemId(page, PageGetMaxOffsetNumber(page));
+ lasttup = (IndexTuple) PageGetItem(page, itemid);
+
+ Assert(_hash_get_indextuple_hashkey(lasttup) <=
+ _hash_get_indextuple_hashkey(itup));
+ }
+#endif
}
else
{