From 252b707bc41cc9bf6c55c18d8cb302a6176b7e48 Mon Sep 17 00:00:00 2001 From: Magnus Hagander Date: Wed, 17 Apr 2019 13:51:48 +0200 Subject: Return NULL for checksum failures if checksums are not enabled Returning 0 could falsely indicate that there is no problem. NULL correctly indicates that there is no information about potential problems. Also return 0 as numbackends instead of NULL for shared objects (as no connection can be made to a shared object only). Author: Julien Rouhaud Reviewed-by: Robert Treat --- src/backend/utils/adt/pgstatfuncs.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/backend/utils/adt/pgstatfuncs.c') diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c index 97f41fb46c1..05240bfd142 100644 --- a/src/backend/utils/adt/pgstatfuncs.c +++ b/src/backend/utils/adt/pgstatfuncs.c @@ -15,6 +15,7 @@ #include "postgres.h" #include "access/htup_details.h" +#include "access/xlog.h" #include "catalog/pg_authid.h" #include "catalog/pg_type.h" #include "common/ip.h" @@ -1526,6 +1527,9 @@ pg_stat_get_db_checksum_failures(PG_FUNCTION_ARGS) int64 result; PgStat_StatDBEntry *dbentry; + if (!DataChecksumsEnabled()) + PG_RETURN_NULL(); + if ((dbentry = pgstat_fetch_stat_dbentry(dbid)) == NULL) result = 0; else @@ -1541,6 +1545,9 @@ pg_stat_get_db_checksum_last_failure(PG_FUNCTION_ARGS) TimestampTz result; PgStat_StatDBEntry *dbentry; + if (!DataChecksumsEnabled()) + PG_RETURN_NULL(); + if ((dbentry = pgstat_fetch_stat_dbentry(dbid)) == NULL) result = 0; else -- cgit v1.2.3