diff options
Diffstat (limited to 'src/backend/tcop/postgres.c')
-rw-r--r-- | src/backend/tcop/postgres.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c index 9a948f825df..5ab7d3cd8de 100644 --- a/src/backend/tcop/postgres.c +++ b/src/backend/tcop/postgres.c @@ -2244,12 +2244,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 unecessary random() call - * if log_statement_sample_rate = 1. + * if log_statement_sample_rate = 1. But don't compute any of this + * unless needed. */ - if (exceeded) - in_sample = log_statement_sample_rate != 0 && - (log_statement_sample_rate == 1 || - random() <= log_statement_sample_rate * MAX_RANDOM_VALUE); + in_sample = exceeded && + log_statement_sample_rate != 0 && + (log_statement_sample_rate == 1 || + random() <= log_statement_sample_rate * MAX_RANDOM_VALUE); if ((exceeded && in_sample) || log_duration) { |