Improve user control over truncation of logged bind-parameter values.
Tom Lane <tgl@sss.pgh.pa.us>
Improve user control over truncation of logged bind-parameter values. This patch replaces the boolean GUC log_parameters_on_error introduced by commit ba79cb5dc with an integer log_parameter_max_length_on_error, adding the ability to specify how many bytes to trim each logged parameter value to. (The previous coding hard-wired that choice at 64 bytes.) In addition, add a new parameter log_parameter_max_length that provides similar control over truncation of query parameters that are logged in response to statement-logging options, as opposed to errors. Previous releases always logged such parameters in full, possibly causing log bloat. For backwards compatibility with prior releases, log_parameter_max_length defaults to -1 (log in full), while log_parameter_max_length_on_error defaults to 0 (no logging). Per discussion, log_parameter_max_length is SUSET since the DBA should control routine logging behavior, but log_parameter_max_length_on_error is USERSET because it also affects errcontext data sent back to the client. Alexey Bashtanov, editorialized a little by me Discussion: https://postgr.es/m/b10493cc-a399-a03a-67c7-068f2791ee50@imap.cc
Files
| Path | Change | +/− |
|---|---|---|
| doc/src/sgml/config.sgml | modified | +47 −15 |
| src/backend/nodes/params.c | modified | +1 −1 |
| src/backend/tcop/postgres.c | modified | +37 −20 |
| src/backend/utils/mb/stringinfo_mb.c | modified | +3 −3 |
| src/backend/utils/misc/guc.c | modified | +24 −10 |
| src/backend/utils/misc/postgresql.conf.sample | modified | +6 −1 |
| src/bin/pgbench/t/001_pgbench_with_server.pl | modified | +84 −9 |
| src/include/utils/guc.h | modified | +3 −2 |
| src/pl/plpgsql/src/pl_exec.c | modified | +2 −2 |
Documentation touched
Discussion
- control max length of parameter values logged 24 messages · 2020-02-07 → 2020-04-02