log bind parameter values on error

From: Alexey Bashtanov <bashtanov(at)imap(dot)cc>
To: PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: log bind parameter values on error
Date: 2018-12-14 23:04:26
Message-ID: 0146a67b-a22a-0519-9082-bc29756b93a2@imap.cc
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

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

Attachment Content-Type Size
log_parameters_v001.patch text/x-patch 23.2 KB

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message David Steele 2018-12-14 23:05:18 Re: Add timeline to partial WAL segments
Previous Message Andres Freund 2018-12-14 23:03:48 Re: Variable-length FunctionCallInfoData