Re: BackendKeyData is mandatory?

Tatsuo Ishii <ishii@postgresql.org>

From: Tatsuo Ishii <ishii@postgresql.org>
To: peter@eisentraut.org
Cc: pgsql-hackers@postgresql.org
Date: 2025-06-19T10:03:01Z
Lists: pgsql-hackers
> I think that's fine, if the server does not want to support query
> cancellation.  The current protocol description certainly does not
> support the idea that it is a hard error *not* to send BackendKeyData.

Isn't it scary if the server does not allow a query cancel?  For
example, if the server charge you per query duration and if you
accidentally send a long running query, the only escape exit is the
query cancellation.

> It's also worth thinking about the new protocol 3.2 longer key data.
> A paranoid server might choose to send key data only if protocol >=3.2
> is chosen and not if a lower, notionally less secure version is
> chosen.

I would say the server does wrong a decision. I think even if the key
is not long, it's still useful than nothing.

Best regards,
--
Tatsuo Ishii
SRA OSS K.K.
English: http://www.sraoss.co.jp/index_en/
Japanese:http://www.sraoss.co.jp




Commits

  1. Revert unnecessary check for NULL

  2. libpq: Be strict about cancel key lengths

  3. libpq: Handle OOM by disconnecting instead of hanging or skipping msgs

  4. libpq: Complain about missing BackendKeyData later with PGgetCancel()