Hi,
While learning how PostgreSQL implements streaming replication, I
noticed that WalRcvShmemSize() calculating the shared
memory sizes that use a multi-step add_size pattern for single,
fixed-size structures.
...
Size
WalRcvShmemSize(void)
{
Size size = 0;
size = add_size(size, sizeof(WalRcvData));
return size;
}
...
"return sizeof(WalRcvData);" is equal to the above code.
I searched the other modules to see how they perform the calculations.
For example,
...
Size
VarsupShmemSize(void)
{
return sizeof(TransamVariablesData);
}
...
And I also found another case:
Size
XLogRecoveryShmemSize(void)
{
Size size;
/* XLogRecoveryCtl */
size = sizeof(XLogRecoveryCtlData);
return size;
}
The above code does not need to define the local variable size;
directly returning sizeof(XLogRecoveryCtlData) seems simpler.
I searched for other XXXShmemSize() calls in CalculateShmemSize() and
simplified them where possible.
Please see the attached patch.
I realize this might be a matter of coding style preference rather
than a functional necessity.
Is it worth standardizing these cases, or should we stick with the
current boilerplate for consistency?
Any thoughts?
--
Thanks,
Tender Wang
0001-Simplify-shmem-size-calulations.patch
Description: Binary data
