Re: remove some STATUS_* symbols

Peter Eisentraut <peter.eisentraut@2ndquadrant.com>

From: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
To: Michael Paquier <michael@paquier.xyz>
Cc: Robert Haas <robertmhaas@gmail.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2020-06-17T08:18:19Z
Lists: pgsql-hackers
On 2020-06-12 09:30, Michael Paquier wrote:
> On Thu, Jun 11, 2020 at 03:55:59PM +0200, Peter Eisentraut wrote:
>> On 2020-01-16 13:56, Robert Haas wrote:
>>> IMHO, custom enums for each particular case would be a big improvement
>>> over supposedly-generic STATUS codes. It makes it clearer which values
>>> are possible in each code path, and it comes out nicer in the
>>> debugger, too.
>>
>> Given this feedback, I would like to re-propose the original patch, attached
>> again here.
>>
>> After this, the use of the remaining STATUS_* symbols will be contained to
>> the frontend and backend libpq code, so it'll be more coherent.
> 
> I am still in a so-so state regarding this patch, but I find the
> debugger argument a good one.  And please don't consider me as a
> blocker.

Okay, I have committed it.

>> Add a separate enum for use in the locking APIs, which were the only
>> user.
> 
>> +typedef enum
>> +{
>> +	PROC_WAIT_STATUS_OK,
>> +	PROC_WAIT_STATUS_WAITING,
>> +	PROC_WAIT_STATUS_ERROR,
>> +} ProcWaitStatus;
> 
> ProcWaitStatus, and more particularly PROC_WAIT_STATUS_WAITING are
> strange names (the latter refers to "wait" twice).  What do you think
> about renaming the enum to ProcStatus and the flags to PROC_STATUS_*?

I see your point, but I don't think that's better.  That would just 
invite someone else to use it for other process-related status things. 
We typically name enum constants like the type followed by a suffix. 
The fact that the suffix is similar to the prefix here is more of a 
coincidence.

-- 
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



Commits

  1. Remove STATUS_WAITING

  2. Remove STATUS_FOUND