Add log_statement_max_length GUC to limit logged statement text Very large statements can make server logs grow unexpectedly. This is particularly painful when applications accidentally or intentionally send huge literal values and statement logging is enabled: the full statement text may be written to the log even when DBA sees only its leading part is useful for normal operations.
This commit adds log_statement_max_length GUC that limits the number of bytes of statement text emitted by statement logging. The setting applies to statements logged by log_statement, log_min_duration_statement, log_min_duration_sample, and log_transaction_sample_rate. A positive value truncates the logged statement body to at most that many bytes, zero logs an empty statement body, and the default value -1 preserves the existing behavior of logging statements in full. Truncation is byte-based, matching the GUC unit, but it clips only at multibyte character boundaries so that the log output remains valid. This setting does not affect statements logged because of log_min_error_statement; handling error-statement logging can be considered separately. Author: Jim Jones <[email protected]> Author: Kirill Gavrilov <[email protected]> Reviewed-by: Kirill Reshke <[email protected]> Reviewed-by: Álvaro Herrera <[email protected]> Reviewed-by: Maxym Kharchenko <[email protected]> Reviewed-by: Fujii Masao <[email protected]> Discussion: https://postgr.es/m/CA+E0NR4S+NC6+QHyY_vUuQZMzLhKqczMx-jJVqtjAxF6+=j...@mail.gmail.com Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/c8bd8387c27ab0e60a7864d231f06e8c3fdbfa8d Modified Files -------------- doc/src/sgml/config.sgml | 25 +++ src/backend/tcop/postgres.c | 171 ++++++++++++++++----- src/backend/utils/misc/guc_parameters.dat | 10 ++ src/backend/utils/misc/guc_tables.c | 1 + src/backend/utils/misc/postgresql.conf.sample | 3 + src/include/utils/guc.h | 1 + src/test/modules/test_misc/meson.build | 1 + .../test_misc/t/014_log_statement_max_length.pl | 115 ++++++++++++++ 8 files changed, 289 insertions(+), 38 deletions(-)
