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