mirror of
https://github.com/postgres/postgres.git
synced 2025-07-21 16:02:15 +03:00
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
This commit is contained in:
@ -883,7 +883,6 @@ _bt_first(IndexScanDesc scan, ScanDirection dir)
|
|||||||
BTScanOpaque so = (BTScanOpaque) scan->opaque;
|
BTScanOpaque so = (BTScanOpaque) scan->opaque;
|
||||||
BTStack stack;
|
BTStack stack;
|
||||||
OffsetNumber offnum;
|
OffsetNumber offnum;
|
||||||
StrategyNumber strat;
|
|
||||||
BTScanInsertData inskey;
|
BTScanInsertData inskey;
|
||||||
ScanKey startKeys[INDEX_MAX_KEYS];
|
ScanKey startKeys[INDEX_MAX_KEYS];
|
||||||
ScanKeyData notnullkeys[INDEX_MAX_KEYS];
|
ScanKeyData notnullkeys[INDEX_MAX_KEYS];
|
||||||
@ -1090,18 +1089,11 @@ _bt_first(IndexScanDesc scan, ScanDirection dir)
|
|||||||
break;
|
break;
|
||||||
startKeys[keysz++] = chosen;
|
startKeys[keysz++] = chosen;
|
||||||
|
|
||||||
/*
|
/* Quit if we have stored a > or < key */
|
||||||
* Adjust strat_total, and quit if we have stored a > or <
|
strat_total = chosen->sk_strategy;
|
||||||
* key.
|
if (strat_total == BTGreaterStrategyNumber ||
|
||||||
*/
|
strat_total == BTLessStrategyNumber)
|
||||||
strat = chosen->sk_strategy;
|
break;
|
||||||
if (strat != BTEqualStrategyNumber)
|
|
||||||
{
|
|
||||||
strat_total = strat;
|
|
||||||
if (strat == BTGreaterStrategyNumber ||
|
|
||||||
strat == BTLessStrategyNumber)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Done if that was the last attribute, or if next key is not
|
* Done if that was the last attribute, or if next key is not
|
||||||
|
Reference in New Issue
Block a user