diff options
Diffstat (limited to 'src/backend/tcop/postgres.c')
-rw-r--r-- | src/backend/tcop/postgres.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c index 0775abe35de..82de01cdc67 100644 --- a/src/backend/tcop/postgres.c +++ b/src/backend/tcop/postgres.c @@ -42,6 +42,7 @@ #include "catalog/pg_type.h" #include "commands/async.h" #include "commands/prepare.h" +#include "common/pg_prng.h" #include "executor/spi.h" #include "jit/jit.h" #include "libpq/libpq.h" @@ -2355,13 +2356,13 @@ check_log_duration(char *msec_str, bool was_logged) /* * Do not log if log_statement_sample_rate = 0. Log a sample if - * log_statement_sample_rate <= 1 and avoid unnecessary random() call - * if log_statement_sample_rate = 1. + * log_statement_sample_rate <= 1 and avoid unnecessary PRNG call if + * log_statement_sample_rate = 1. */ if (exceeded_sample_duration) in_sample = log_statement_sample_rate != 0 && (log_statement_sample_rate == 1 || - random() <= log_statement_sample_rate * MAX_RANDOM_VALUE); + pg_prng_double(&pg_global_prng_state) <= log_statement_sample_rate); if (exceeded_duration || in_sample || log_duration || xact_is_sampled) { |