Skip to content

Commit b6558e4

Browse files
nbtree: Remove useless 'strat' local variable.
Remove a local variable that was used to avoid overwriting strat_total with the = operator strategy when a >= operator strategy key was already included in the initial positioning/insertion scan keys by _bt_first (for backwards scans it would have to be a <= key that was included). _bt_first's strat_total local variable now simply tracks the operator strategy of the final scan key that was included in the scan's insertion scan key (barring the case where the !used_all_subkeys row compare path adjusts strat_total in its own way). _bt_first already treated >= keys (or <= keys) as = keys for initial positioning purposes. There is no good reason to remember that that was what happened; no later _bt_first step cares about the distinction. Note, in particular, that the insertion scan key's 'nextkey' and 'backward' fields will be initialized the same way regardless. Author: Peter Geoghegan <pg@bowt.ie> Reviewed-By: Tomas Vondra <tomas@vondra.me> Discussion: https://postgr.es/m/CAH2-Wz=PKR6rB7qbx+Vnd7eqeB5VTcrW=iJvAsTsKbdG+kW_UA@mail.gmail.com
1 parent 3c0fd64 commit b6558e4

File tree

1 file changed

+5
-13
lines changed

1 file changed

+5
-13
lines changed

src/backend/access/nbtree/nbtsearch.c

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -883,7 +883,6 @@ _bt_first(IndexScanDesc scan, ScanDirection dir)
883883
BTScanOpaque so = (BTScanOpaque) scan->opaque;
884884
BTStack stack;
885885
OffsetNumber offnum;
886-
StrategyNumber strat;
887886
BTScanInsertData inskey;
888887
ScanKey startKeys[INDEX_MAX_KEYS];
889888
ScanKeyData notnullkeys[INDEX_MAX_KEYS];
@@ -1090,18 +1089,11 @@ _bt_first(IndexScanDesc scan, ScanDirection dir)
10901089
break;
10911090
startKeys[keysz++] = chosen;
10921091

1093-
/*
1094-
* Adjust strat_total, and quit if we have stored a > or <
1095-
* key.
1096-
*/
1097-
strat = chosen->sk_strategy;
1098-
if (strat != BTEqualStrategyNumber)
1099-
{
1100-
strat_total = strat;
1101-
if (strat == BTGreaterStrategyNumber ||
1102-
strat == BTLessStrategyNumber)
1103-
break;
1104-
}
1092+
/* Quit if we have stored a > or < key */
1093+
strat_total = chosen->sk_strategy;
1094+
if (strat_total == BTGreaterStrategyNumber ||
1095+
strat_total == BTLessStrategyNumber)
1096+
break;
11051097

11061098
/*
11071099
* Done if that was the last attribute, or if next key is not

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy