mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +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;
 | 
					 | 
				
			||||||
				if (strat != BTEqualStrategyNumber)
 | 
					 | 
				
			||||||
				{
 | 
					 | 
				
			||||||
					strat_total = strat;
 | 
					 | 
				
			||||||
					if (strat == BTGreaterStrategyNumber ||
 | 
					 | 
				
			||||||
						strat == BTLessStrategyNumber)
 | 
					 | 
				
			||||||
					break;
 | 
										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