Re: pgsql: Make cancel request keys longer - Mailing list pgsql-committers

From Peter Eisentraut
Subject Re: pgsql: Make cancel request keys longer
Date
Msg-id 2afbd9c6-51b7-450f-9ae1-61e552368963@eisentraut.org
Whole thread Raw
In response to Re: pgsql: Make cancel request keys longer  (Heikki Linnakangas <hlinnaka@iki.fi>)
List pgsql-committers
On 09.04.25 10:53, Heikki Linnakangas wrote:
> 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.

I was having the same second thoughts overnight.  I agree with your 
conclusion.




pgsql-committers by date:

Previous
From: Heikki Linnakangas
Date:
Subject: Re: pgsql: Make cancel request keys longer
Next
From: Heikki Linnakangas
Date:
Subject: pgsql: Fix a few oversights in the longer cancel keys patch