Tatsuo Ishii <is...@postgresql.org> writes: > In the Frontend/Backend protocol, it is explained that after > successful authentication following messages can be sent from backend > to frontend[1]:
> BackendKeyData > ParameterStatus > ReadyForQuery > ErrorResponse > NoticeResponse > My question is, BackendKeyData is mandatory or not. Currently > Pgpool-II raises a fatal error if BackendKeyData is not sent before > ReadyForQuery arrives. This is because without the message, frontend > cannot send a CancelRequest message later on, as there's no secret > key. As you say, without BackendKeyData it's impossible to send a query cancel, so we expect the server will always send that. > I heard that some "PostgreSQL compatible" servers do not send > BackendKeyData message to frontend. I wonder if this is a protocol > violation. I'd say so. Maybe whoever that is doesn't care to support query cancel. They're within their rights to do that I guess, but Pgpool-II does not have to support the case. (A less incompatible way of not supporting query cancel is to send dummy BackendKeyData values and then just ignore cancel requests. So I don't see that you need to do anything towards this goal, if it is a goal and not merely a broken implementation.) regards, tom lane