| From: | Sergei Kornilov <sk(at)zsrv(dot)org> |
|---|---|
| To: | PostgreSQL mailing lists <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Log query parameters for terminated execute |
| Date: | 2018-06-23 19:54:19 |
| Message-ID: | 4686111529783659@web43o.yandex.ru |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hello all
We already have feature to logging query parameters. If we use log_statement = 'all' we write parameters before execution and all is fine here. If we use log_min_duration_statement statement is logged obviously after execution, but currently we have no parameters if query was terminated by statement_timeout, lock_timeout or by pg_terminate_backend.
I would like have parameters in logs at least for such three cases.
Simple way achieve this is just add errdetail_params to such ereport as in attached patch.
Another way is add something like printing global variable debug_query_string in send_message_to_server_log (src/backend/utils/error/elog.c). But i have no good idea how print ParamListInfo correctly. We can not use OidOutputFunctionCall in all cases, right?
Another small question is why errdetail_params uses errdetail instead errdetail_log? We assume that the user wants to get their own parameters back (if he set client_min_messages to LOG)?
Any feedback is strongly appreciated. Thank you!
regards, Sergei
| Attachment | Content-Type | Size |
|---|---|---|
| naive_log_execute_parameters.patch | text/x-diff | 4.1 KB |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Lars Kanis | 2018-06-23 19:58:43 | Retrieve memory size allocated by libpq |
| Previous Message | Chris Howard | 2018-06-23 18:13:21 | comma to delimit fractional seconds |