From fba4e65b95564454824d43a851bf1c7578320570 Mon Sep 17 00:00:00 2001 From: gurkanindibay Date: Tue, 26 Dec 2023 23:57:16 +0300 Subject: [PATCH] Adds dist_database to metadata cache --- .../distributed/commands/citus_database_size.c | 2 +- src/backend/distributed/metadata/metadata_cache.c | 12 ++++++++++++ src/include/distributed/metadata_cache.h | 1 + src/include/distributed/pg_dist_database.h | 2 -- 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/backend/distributed/commands/citus_database_size.c b/src/backend/distributed/commands/citus_database_size.c index 35a1e46fe3f..10fe813760a 100644 --- a/src/backend/distributed/commands/citus_database_size.c +++ b/src/backend/distributed/commands/citus_database_size.c @@ -188,7 +188,7 @@ GroupLookupFromDatabase(int64 databaseOid, bool missingOk) ScanKeyData scanKey[1]; int scanKeyCount = 1; Form_pg_dist_database databaseForm = NULL; - Relation pgDistDatabase = table_open(PgDistDatabaseRelationId(), AccessShareLock); + Relation pgDistDatabase = table_open(DistDatabaseRelationId(), AccessShareLock); int groupId = -1; ScanKeyInit(&scanKey[0], Anum_pg_dist_database_databaseid, diff --git a/src/backend/distributed/metadata/metadata_cache.c b/src/backend/distributed/metadata/metadata_cache.c index 1b2fa229f42..05a63c7084c 100644 --- a/src/backend/distributed/metadata/metadata_cache.c +++ b/src/backend/distributed/metadata/metadata_cache.c @@ -192,6 +192,7 @@ typedef struct MetadataCacheData Oid distCleanupPrimaryKeyIndexId; Oid distColocationRelationId; Oid distColocationConfigurationIndexId; + Oid distDatabaseRelationId; Oid distPartitionRelationId; Oid distTenantSchemaRelationId; Oid distPartitionLogicalRelidIndexId; @@ -2903,6 +2904,17 @@ DistColocationConfigurationIndexId(void) } +/* return oid of pg_dist_database relation */ +Oid +DistDatabaseRelationId(void) +{ + CachedRelationLookup("pg_dist_database", + &MetadataCache.distDatabaseRelationId); + + return MetadataCache.distDatabaseRelationId; +} + + /* return oid of pg_dist_schema relation */ Oid DistTenantSchemaRelationId(void) diff --git a/src/include/distributed/metadata_cache.h b/src/include/distributed/metadata_cache.h index f1120497b72..a8a70592d77 100644 --- a/src/include/distributed/metadata_cache.h +++ b/src/include/distributed/metadata_cache.h @@ -238,6 +238,7 @@ extern Oid CitusCatalogNamespaceId(void); extern Oid DistCleanupRelationId(void); extern Oid DistColocationRelationId(void); extern Oid DistColocationConfigurationIndexId(void); +extern Oid DistDatabaseRelationId(void); extern Oid DistPartitionRelationId(void); extern Oid DistShardRelationId(void); extern Oid DistPlacementRelationId(void); diff --git a/src/include/distributed/pg_dist_database.h b/src/include/distributed/pg_dist_database.h index 12983b94eab..5555965b754 100644 --- a/src/include/distributed/pg_dist_database.h +++ b/src/include/distributed/pg_dist_database.h @@ -31,6 +31,4 @@ typedef struct FormData_pg_dist_database typedef FormData_pg_dist_database *Form_pg_dist_database; -#define PgDistDatabaseRelationId() (get_relname_relid("pg_dist_database", \ - PG_CATALOG_NAMESPACE)) #endif /* CITUS_PG_DIST_DATABASE_H */