From d5f53a8e26caf7931db6ad3939cd34d36ea54d91 Mon Sep 17 00:00:00 2001 From: Tomas Vondra Date: Sun, 4 Aug 2019 20:29:00 +0200 Subject: Revert "Add log_statement_sample_rate parameter" This reverts commit 88bdbd3f746049834ae3cc972e6e650586ec3c9d. As committed, statement sampling used the existing duration threshold (log_min_duration_statement) when decide which statements to sample. The issue is that even the longest statements are subject to sampling, and so may not end up logged. An improvement was proposed, introducing a second duration threshold, but it would not be backwards compatible. So we've decided to revert this feature - the separate threshold should be part of the feature itself. Discussion: https://postgr.es/m/CAFj8pRDS8tQ3Wviw9%3DAvODyUciPSrGeMhJi_WPE%2BEB8%2B4gLL-Q%40mail.gmail.com --- src/backend/tcop/postgres.c | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) (limited to 'src/backend/tcop/postgres.c') diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c index f010aa884ce..c28cc370129 100644 --- a/src/backend/tcop/postgres.c +++ b/src/backend/tcop/postgres.c @@ -2192,8 +2192,7 @@ check_log_statement(List *stmt_list) /* * check_log_duration - * Determine whether current command's duration should be logged. - * If log_statement_sample_rate < 1.0, log only a sample. + * Determine whether current command's duration should be logged * We also check if this statement in this transaction must be logged * (regardless of its duration). * @@ -2217,7 +2216,6 @@ check_log_duration(char *msec_str, bool was_logged) int usecs; int msecs; bool exceeded; - bool in_sample; TimestampDifference(GetCurrentStatementStartTimestamp(), GetCurrentTimestamp(), @@ -2234,17 +2232,7 @@ check_log_duration(char *msec_str, bool was_logged) (secs > log_min_duration_statement / 1000 || secs * 1000 + msecs >= log_min_duration_statement))); - /* - * 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 (exceeded) - in_sample = log_statement_sample_rate != 0 && - (log_statement_sample_rate == 1 || - random() <= log_statement_sample_rate * MAX_RANDOM_VALUE); - - if ((exceeded && in_sample) || log_duration || xact_is_sampled) + if (exceeded || log_duration || xact_is_sampled) { snprintf(msec_str, 32, "%ld.%03d", secs * 1000 + msecs, usecs % 1000); -- cgit v1.2.3