pgstat: replace double lookup with IsSharedRelation()
authorAndres Freund <andres@anarazel.de>
Sun, 20 Nov 2022 18:53:31 +0000 (10:53 -0800)
committerAndres Freund <andres@anarazel.de>
Sun, 20 Nov 2022 18:56:32 +0000 (10:56 -0800)
As the list of shared relations is fixed, we can just dispatch based
IsSharedRelation(), instead of first trying to look up stats for a non-shared
rel and falling back to shared stats.

Author: "Drouvot, Bertrand" <bertranddrouvot.pg@gmail.com>
Reviewed-by: Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>
Reviewed-by: Andres Freund <andres@anarazel.de
Discussion: https://postgr.es/m/8c1851a2-a98e-e1bc-7729-37b0b95f66ec@gmail.com

src/backend/utils/activity/pgstat_relation.c

index 55a355f583b63f6b5e0c2b965e503ef4859a6e3a..f92e16e7af8bfdf7fc008ec74782a0fb7bc82701 100644 (file)
@@ -25,6 +25,7 @@
 #include "utils/pgstat_internal.h"
 #include "utils/rel.h"
 #include "utils/timestamp.h"
+#include "catalog/catalog.h"
 
 
 /* Record that's written to 2PC state file when pgstat state is persisted */
@@ -437,17 +438,7 @@ pgstat_update_heap_dead_tuples(Relation rel, int delta)
 PgStat_StatTabEntry *
 pgstat_fetch_stat_tabentry(Oid relid)
 {
-   PgStat_StatTabEntry *tabentry;
-
-   tabentry = pgstat_fetch_stat_tabentry_ext(false, relid);
-   if (tabentry != NULL)
-       return tabentry;
-
-   /*
-    * If we didn't find it, maybe it's a shared table.
-    */
-   tabentry = pgstat_fetch_stat_tabentry_ext(true, relid);
-   return tabentry;
+   return pgstat_fetch_stat_tabentry_ext(IsSharedRelation(relid), relid);
 }
 
 /*