log bind parameter values on error
Alexey Bashtanov <bashtanov@imap.cc>
From: Alexey Bashtanov <bashtanov@imap.cc>
To: PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2018-12-14T23:04:26Z
Lists: pgsql-hackers
Attachments
- log_parameters_v001.patch (text/x-patch) patch v1
Hello, I'd like to propose a patch to log bind parameter values not only when logging duration, but also on error (timeout in particular) or in whatever situation the statement normally gets logged. This mostly could be useful when the request originator doesn't log them either, so it's hard to reproduce the problem. Unfortunately, when enabled, the feature comes with some memory and CPU overhead, as we cannot convert certain values to text when in aborted transaction. We potentially could do the trick with built-in types, but it would need cautious work with composite types, and also require more computation on the logging stage, which is a risk of cascading errors. Custom types still wouldn't be loggable, even as passed by client, which would be not great. So I decided to cache textual representations on bind stage, which is especially easy if the client uses text protocol. Best, Alexey
Commits
-
Emit parameter values during query bind/execute errors
- ba79cb5dc841 13.0 landed
-
Add backend-only appendStringInfoStringQuoted
- 6cafde1bd43f 13.0 landed