diff options
Diffstat (limited to 'src/backend/access/nbtree/nbtutils.c')
-rw-r--r-- | src/backend/access/nbtree/nbtutils.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/backend/access/nbtree/nbtutils.c b/src/backend/access/nbtree/nbtutils.c index f8f8e69be7..a5604679b4 100644 --- a/src/backend/access/nbtree/nbtutils.c +++ b/src/backend/access/nbtree/nbtutils.c @@ -1429,6 +1429,13 @@ _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) { |