Re: Making C function declaration parameter names consistent with corresponding definition names
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Peter Geoghegan <pg@bowt.ie>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2022-09-17T01:20:56Z
Lists: pgsql-hackers
Peter Geoghegan <pg@bowt.ie> writes:
> The check that I used to write the patches doesn't treat unnamed
> parameters in a function declaration as an inconsistency, even when
> "strict" is used. Another nearby check *could* be used to catch
> unnamed parameters [1] if that was deemed useful, though. How do you
> feel about unnamed parameters?
I think they're easily Stroustrup's worst idea ever. You're basically
throwing away an opportunity for documentation, and that documentation
is often sorely needed. Handy example:
extern void ReorderBufferCommitChild(ReorderBuffer *, TransactionId, TransactionId,
XLogRecPtr commit_lsn, XLogRecPtr end_lsn);
Which TransactionId parameter is which? You might be tempted to guess,
if you think you remember how the function works, and that is a recipe
for bugs.
I'd view the current state of reorderbuffer.h as pretty unacceptable on
stylistic grounds no matter which position you take. Having successive
declarations randomly using named or unnamed parameters is seriously
ugly and distracting, at least to my eye. We don't need such blatant
reminders of how many cooks have stirred this broth.
regards, tom lane
Commits
-
Harmonize parameter names in pg_dump/pg_dumpall.
- 20e69daa1348 16.0 landed
-
Harmonize parameter names in contrib code.
- 0faf7d933f62 16.0 landed
-
Harmonize more lexer function parameter names.
- 8fb4e001e9c1 16.0 landed
-
Harmonize parameter names in ecpg code.
- 3535ebce5dc5 16.0 landed
-
Harmonize lexer adjacent function parameter names.
- aab06442d488 16.0 landed
-
Harmonize more parameter names in bulk.
- a601366a460f 16.0 landed
-
Harmonize parameter names in storage and AM code.
- bfcf1b34805f 16.0 landed
-
Harmonize heapam and tableam parameter names.
- 4bac9600f09a 16.0 landed
-
Consistently use named parameters in timezone code.
- c4f8e89fef3d 16.0 landed
-
Consistently use named parameters in regex code.
- bc2187ed63c5 16.0 landed
-
Harmonize reorderbuffer parameter names.
- 035ce1feb2ed 16.0 landed
-
Make check_usermap() parameter names consistent.
- 4274dc223ce7 16.0 landed
- 1ef00afe2e45 15.0 landed
- 44933010ceb3 14.6 landed
- b7558111aba2 13.9 landed
- c1dd5a8aedc7 12.13 landed
- f01fd89b1537 11.18 landed
- 109836a14fe9 10.23 landed