public inbox for [email protected]  
help / color / mirror / Atom feed
From: Heikki Linnakangas <[email protected]>
To: Peter Eisentraut <[email protected]>
To: [email protected]
Subject: Re: pgsql: Make cancel request keys longer
Date: Wed, 9 Apr 2025 11:53:20 +0300
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
References: <[email protected]>
	<[email protected]>
	<[email protected]>

On 08/04/2025 22:41, Heikki Linnakangas wrote:
> On 08/04/2025 20:06, Peter Eisentraut wrote:
>> While I was looking at this, I suggest to make the first argument void 
>> *.  This is consistent for passing binary data.
> 
> Ok, sure.

On second thoughts, -1 on that. 'void *' is appropriate for functions 
like libc's read() or pq_sendbytes(), where the buffer can point to 
anything. In other words, the caller is expected to have a pointer like 
'foobar *', and it gets cast to 'void *' when you call the function. 
That's not the case with the cancellation key. The cancellation key is 
just an array of bytes, the caller is expected to pass an array of 
bytes, not a struct.

The right precedent for that are e.g. SCRAM functions in scram-common.h, 
for example. They use "const uint8 *" for the hashes.

I'll switch to "const uint *" everywhere that deals with cancel keys. 
There are a few more variables elsewhere in the backend and in libpq.

> Looks good to me. I can commit these tomorrow, or feel free to do it 
> yourself too.

I'm on this now.

-- 
Heikki Linnakangas
Neon (https://neon.tech)






view thread (11+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected], [email protected]
  Subject: Re: pgsql: Make cancel request keys longer
  In-Reply-To: <[email protected]>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox