Subject: Re: lwlocknames.h beautification attempt

From: Álvaro Herrera <[email-masked]>
Date: Mon, 3 Mar 2025 18:14:45 +0100

On 2025-Mar-01, Gurjeet Singh wrote:

> I propose the following change to the generation script,
> generate-lwlocknames.pl
> 
> -    print $h "#define ${lockname}Lock (&MainLWLockArray[$lockidx].lock)\n";
> +    printf $h "#define %-30s %s\n", "${lockname}Lock", "(&MainLWLockArray[$lockidx].lock)";
> 
> which produces the lock names in this format
> 
> #define ShmemIndexLock                 (&MainLWLockArray[1].lock)
> #define OidGenLock                     (&MainLWLockArray[2].lock)

This format seems more than acceptable.  It'd be nice to avoid printf
for such a small thing; but at least we can use the %-specifiers only
where necessary, so I'd do this instead:

diff --git a/src/backend/storage/lmgr/generate-lwlocknames.pl b/src/backend/storage/lmgr/generate-lwlocknames.pl
index 084da2ea6e0..2927f144905 100644
--- a/src/backend/storage/lmgr/generate-lwlocknames.pl
+++ b/src/backend/storage/lmgr/generate-lwlocknames.pl
@@ -108,7 +108,8 @@ while (<$lwlocklist>)
 	$continue = ",\n";
 
 	# Add a "Lock" suffix to each lock name, as the C code depends on that
-	print $h "#define ${lockname}Lock (&MainLWLockArray[$lockidx].lock)\n";
+	printf $h "#define %-32s (&MainLWLockArray[$lockidx].lock)\n",
+	  "${lockname}Lock";
 }
 
 die

-- 
Álvaro Herrera         PostgreSQL Developer  —  https://www.EnterpriseDB.com/