diff --git a/src/backend/utils/activity/pgstat.c b/src/backend/utils/activity/pgstat.c index 0d9d09c492..bf53eba660 100644 --- a/src/backend/utils/activity/pgstat.c +++ b/src/backend/utils/activity/pgstat.c @@ -102,6 +102,7 @@ #include "storage/lwlock.h" #include "storage/pg_shmem.h" #include "storage/shmem.h" +#include "utils/catcache.h" #include "utils/guc.h" #include "utils/memutils.h" #include "utils/pgstat_internal.h" @@ -1059,6 +1060,9 @@ pgstat_prep_pending_entry(PgStat_Kind kind, Oid dboid, Oid objoid, bool *created if (unlikely(!pgStatPendingContext)) { + if (unlikely(!CacheMemoryContext)) + CreateCacheMemoryContext(); + pgStatPendingContext = AllocSetContextCreate(CacheMemoryContext, "PgStat Pending", diff --git a/src/backend/utils/activity/pgstat_shmem.c b/src/backend/utils/activity/pgstat_shmem.c index 89060ef29a..6462510f11 100644 --- a/src/backend/utils/activity/pgstat_shmem.c +++ b/src/backend/utils/activity/pgstat_shmem.c @@ -14,6 +14,7 @@ #include "pgstat.h" #include "storage/shmem.h" +#include "utils/catcache.h" #include "utils/memutils.h" #include "utils/pgstat_internal.h" @@ -974,6 +975,9 @@ pgstat_reset_entries_of_kind(PgStat_Kind kind, TimestampTz ts) static void pgstat_setup_memcxt(void) { + if (unlikely(!CacheMemoryContext)) + CreateCacheMemoryContext(); + if (unlikely(!pgStatSharedRefContext)) pgStatSharedRefContext = AllocSetContextCreate(CacheMemoryContext,