mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 00:08:23 -05:00 
			
		
		
		
	Cache most recent relfilenode lookups, for speed, after report of
pg_upgrade slowness for 150k tables.
This commit is contained in:
		
							parent
							
								
									ad06db2610
								
							
						
					
					
						commit
						333b4a45f1
					
				@ -423,11 +423,21 @@ relarr_lookup_rel(RelInfoArr *rel_arr,
 | 
			
		||||
				  const char *nspname, const char *relname,
 | 
			
		||||
				  Cluster whichCluster)
 | 
			
		||||
{
 | 
			
		||||
	int			relnum;
 | 
			
		||||
	static int			relnum = 0;
 | 
			
		||||
 | 
			
		||||
	if (!rel_arr || !relname)
 | 
			
		||||
		return NULL;
 | 
			
		||||
 | 
			
		||||
	/* Test most recent lookup first, for speed */
 | 
			
		||||
	if (strcmp(rel_arr->rels[relnum].nspname, nspname) == 0 &&
 | 
			
		||||
		strcmp(rel_arr->rels[relnum].relname, relname) == 0)
 | 
			
		||||
		return &rel_arr->rels[relnum];
 | 
			
		||||
 | 
			
		||||
	if (relnum + 1 < rel_arr->nrels &&
 | 
			
		||||
		strcmp(rel_arr->rels[relnum + 1].nspname, nspname) == 0 &&
 | 
			
		||||
		strcmp(rel_arr->rels[relnum + 1].relname, relname) == 0)
 | 
			
		||||
		return &rel_arr->rels[relnum + 1];
 | 
			
		||||
	
 | 
			
		||||
	for (relnum = 0; relnum < rel_arr->nrels; relnum++)
 | 
			
		||||
	{
 | 
			
		||||
		if (strcmp(rel_arr->rels[relnum].nspname, nspname) == 0 &&
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user