Skip to content

Commit a52aa6c

Browse files
committed
Clean up pg_upgrade cache lookup code; remove useless NULL pointer tests.
1 parent 18e752f commit a52aa6c

File tree

2 files changed

+12
-20
lines changed

2 files changed

+12
-20
lines changed

contrib/pg_upgrade/info.c

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,8 @@ gen_db_file_maps(DbInfo *old_db, DbInfo *new_db,
7474
num_maps++;
7575

7676
/*
77-
* so much for the mapping of this relation. Now we need a mapping for
78-
* its corresponding toast relation if any.
77+
* So much for mapping this relation; now we need a mapping
78+
* for its corresponding toast relation, if any.
7979
*/
8080
if (oldrel->toastrelid > 0)
8181
{
@@ -117,6 +117,7 @@ gen_db_file_maps(DbInfo *old_db, DbInfo *new_db,
117117
newrel->reloid);
118118

119119
/* look them up in their respective arrays */
120+
/* we lose our cache location here */
120121
old_toast = relarr_lookup_rel(&old_db->rel_arr,
121122
"pg_toast", old_name, CLUSTER_OLD);
122123
new_toast = relarr_lookup_rel(&new_db->rel_arr,
@@ -385,7 +386,7 @@ get_rel_infos(const DbInfo *dbinfo, RelInfoArr *relarr, Cluster whichCluster)
385386

386387
relarr->rels = relinfos;
387388
relarr->nrels = num_rels;
388-
relarr->cache_name_rel = 0;
389+
relarr->last_relname_lookup = 0;
389390
}
390391

391392

@@ -399,9 +400,6 @@ dbarr_lookup_db(DbInfoArr *db_arr, const char *db_name)
399400
{
400401
int dbnum;
401402

402-
if (!db_arr || !db_name)
403-
return NULL;
404-
405403
for (dbnum = 0; dbnum < db_arr->ndbs; dbnum++)
406404
{
407405
if (strcmp(db_arr->dbs[dbnum].db_name, db_name) == 0)
@@ -424,24 +422,21 @@ relarr_lookup_rel(RelInfoArr *rel_arr, const char *nspname,
424422
{
425423
int relnum;
426424

427-
if (!rel_arr || !relname)
428-
return NULL;
429-
430425
/* Test next lookup first, for speed */
431-
if (rel_arr->cache_name_rel + 1 < rel_arr->nrels &&
432-
strcmp(rel_arr->rels[rel_arr->cache_name_rel + 1].nspname, nspname) == 0 &&
433-
strcmp(rel_arr->rels[rel_arr->cache_name_rel + 1].relname, relname) == 0)
426+
if (rel_arr->last_relname_lookup + 1 < rel_arr->nrels &&
427+
strcmp(rel_arr->rels[rel_arr->last_relname_lookup + 1].nspname, nspname) == 0 &&
428+
strcmp(rel_arr->rels[rel_arr->last_relname_lookup + 1].relname, relname) == 0)
434429
{
435-
rel_arr->cache_name_rel++;
436-
return &rel_arr->rels[rel_arr->cache_name_rel];
430+
rel_arr->last_relname_lookup++;
431+
return &rel_arr->rels[rel_arr->last_relname_lookup];
437432
}
438433

439434
for (relnum = 0; relnum < rel_arr->nrels; relnum++)
440435
{
441436
if (strcmp(rel_arr->rels[relnum].nspname, nspname) == 0 &&
442437
strcmp(rel_arr->rels[relnum].relname, relname) == 0)
443438
{
444-
rel_arr->cache_name_rel = relnum;
439+
rel_arr->last_relname_lookup = relnum;
445440
return &rel_arr->rels[relnum];
446441
}
447442
}
@@ -464,9 +459,6 @@ relarr_lookup_reloid(RelInfoArr *rel_arr, Oid oid,
464459
{
465460
int relnum;
466461

467-
if (!rel_arr || !oid)
468-
return NULL;
469-
470462
for (relnum = 0; relnum < rel_arr->nrels; relnum++)
471463
{
472464
if (rel_arr->rels[relnum].reloid == oid)
@@ -483,7 +475,7 @@ relarr_free(RelInfoArr *rel_arr)
483475
{
484476
pg_free(rel_arr->rels);
485477
rel_arr->nrels = 0;
486-
rel_arr->cache_name_rel = 0;
478+
rel_arr->last_relname_lookup = 0;
487479
}
488480

489481

contrib/pg_upgrade/pg_upgrade.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ typedef struct
7878
{
7979
RelInfo *rels;
8080
int nrels;
81-
int cache_name_rel; /* cache of last lookup location */
81+
int last_relname_lookup; /* cache of last lookup location */
8282
} RelInfoArr;
8383

8484
/*

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