From 775b2d34f0a2e95643b7c109074c807004b3d915 Mon Sep 17 00:00:00 2001 From: bovenshi Date: Tue, 10 Oct 2023 17:53:05 +0800 Subject: [PATCH] Fix double value compare problem. Comparing the value of two double types cannot be done directly using the '==' or '!=' operators. --- src/backend/utils/misc/guc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index 5308896..5fa17e9 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -1433,7 +1433,8 @@ check_GUC_init(struct config_generic *gconf) { struct config_real *conf = (struct config_real *) gconf; - if (*conf->variable != 0.0 && *conf->variable != conf->boot_val) + if (fabs(*conf->variable - 0.0) > 1e-6 && + fabs(*conf->variable - conf->boot_val) > 1e-6) { elog(LOG, "GUC (PGC_REAL) %s, boot_val=%g, C-var=%g", conf->gen.name, conf->boot_val, *conf->variable); -- 2.9.3