2017-06-19 20:24 GMT+02:00 Daniel Gustafsson <dan...@yesql.se>: > When terminating, or cancelling, a backend it’s currently not possible to > let > the signalled session know *why* it was dropped. This has nagged me in the > past and now it happened to come up again, so I took a stab at this. The > attached patch implements the ability to pass an optional text message to > the > signalled session which is included in the error message: > > SELECT pg_terminate_backend(<pid> [, message]); > SELECT pg_cancel_backend(<pid> [, message]); > > Right now the message is simply appended on the error message, not sure if > errdetail or errhint would be better? Calling: > > select pg_terminate_backend(<pid>, 'server rebooting'); > > ..leads to: > > FATAL: terminating connection due to administrator command: "server > rebooting" > > Omitting the message invokes the command just like today. > > The message is stored in a new shmem area which is checked when the > session is > aborted. To keep things simple a small buffer is kept per backend for the > message. If deemed too costly, keeping a central buffer from which slabs > are > allocated can be done (but seemed rather complicated for little gain > compared > to the quite moderate memory spend.) > > cheers ./daniel >
+1 very good idea Pavel > > > > -- > Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-hackers > >