>> 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.
That's my understanding too.
>> 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.)
Agreed.
--
Tatsuo Ishii
SRA OSS K.K.
English: http://www.sraoss.co.jp/index_en/
Japanese:http://www.sraoss.co.jp