diff --git a/src/backend/access/nbtree/nbtsearch.c b/src/backend/access/nbtree/nbtsearch.c index d69a0577a8..101a7d80a9 100644 --- a/src/backend/access/nbtree/nbtsearch.c +++ b/src/backend/access/nbtree/nbtsearch.c @@ -1026,33 +1026,6 @@ _bt_first(IndexScanDesc scan, ScanDirection dir) if (goback) offnum = OffsetNumberPrev(offnum); - /* - * By here the scan position is now set for the first key. If all further - * tuples are expected to match we set the SK_BT_MATCHED flag to avoid - * re-checking the scan key later. This is a big win for slow key matches - * though is still significant even for fast datatypes. - */ - switch (startKeys[0]->sk_strategy) - { - case BTEqualStrategyNumber: - break; - - case BTGreaterEqualStrategyNumber: - case BTGreaterStrategyNumber: - if (ScanDirectionIsForward(dir)) - startKeys[0]->sk_flags |= SK_BT_MATCHED; - break; - - case BTLessEqualStrategyNumber: - case BTLessStrategyNumber: - if (ScanDirectionIsBackward(dir)) - startKeys[0]->sk_flags |= SK_BT_MATCHED; - break; - - default: - break; - } - /* remember which buffer we have pinned, if any */ Assert(!BTScanPosIsValid(so->currPos)); so->currPos.buf = buf; diff --git a/src/backend/access/nbtree/nbtutils.c b/src/backend/access/nbtree/nbtutils.c index 91331bad65..7857c77b22 100644 --- a/src/backend/access/nbtree/nbtutils.c +++ b/src/backend/access/nbtree/nbtutils.c @@ -1429,13 +1429,6 @@ _bt_checkkeys(IndexScanDesc scan, bool isNull; Datum test; - /* - * If the scan key has already matched we can skip this key, as long - * as the index tuple does not contain NULL values. - */ - if (key->sk_flags & SK_BT_MATCHED && !IndexTupleHasNulls(tuple)) - continue; - /* row-comparison keys need special processing */ if (key->sk_flags & SK_ROW_HEADER) { diff --git a/src/include/access/nbtree.h b/src/include/access/nbtree.h index 9e48efd829..1b0c649c91 100644 --- a/src/include/access/nbtree.h +++ b/src/include/access/nbtree.h @@ -644,7 +644,6 @@ typedef BTScanOpaqueData *BTScanOpaque; */ #define SK_BT_REQFWD 0x00010000 /* required to continue forward scan */ #define SK_BT_REQBKWD 0x00020000 /* required to continue backward scan */ -#define SK_BT_MATCHED 0x00040000 /* required to skip further key match */ #define SK_BT_INDOPTION_SHIFT 24 /* must clear the above bits */ #define SK_BT_DESC (INDOPTION_DESC << SK_BT_INDOPTION_SHIFT) #define SK_BT_NULLS_FIRST (INDOPTION_NULLS_FIRST << SK_BT_INDOPTION_SHIFT)