Rename ShmemVariableCache and initialize it in more standard way

Heikki Linnakangas <hlinnaka@iki.fi>

From: Heikki Linnakangas <hlinnaka@iki.fi>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Cc: Andres Freund <andres@anarazel.de>, Tristan Partin <tristan@neon.tech>
Date: 2023-12-04T12:49:57Z
Lists: pgsql-hackers

Attachments

This came up in the "Refactoring backend fork+exec code" thread recently 
[0], but is independent of that work:

On 11/07/2023 01:50, Andres Freund wrote:
>> --- a/src/backend/storage/ipc/shmem.c
>> +++ b/src/backend/storage/ipc/shmem.c
>> @@ -144,6 +144,8 @@ InitShmemAllocation(void)
>>  	/*
>>  	 * Initialize ShmemVariableCache for transaction manager. (This doesn't
>>  	 * really belong here, but not worth moving.)
>> +	 *
>> +	 * XXX: we really should move this
>>  	 */
>>  	ShmemVariableCache = (VariableCache)
>>  		ShmemAlloc(sizeof(*ShmemVariableCache));
> 
> Heh. Indeed. And probably just rename it to something less insane.

Here's a patch to allocate and initialize it with a pair of ShmemSize 
and ShmemInit functions, like all other shared memory structs.

+1 on renaming it too. It's not a cache, the values tracked in 
ShmemVariableCache are the authoritative source. Attached patch renames 
it to "TransamVariables", but I'm all ears for other suggestions.

[0] 
https://www.postgresql.org/message-id/20230710225043.svl7fqxecwshwc7a@awork3.anarazel.de

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

Commits

  1. Rename ShmemVariableCache to TransamVariables

  2. Initialize ShmemVariableCache like other shmem areas