On 03.09.26 13:29, Daniel Gustafsson wrote:
On 3 Sep 2026, at 12:47, Peter Eisentraut <[email protected]> wrote:
Fix lack of message pluralization
Maybe I'm daft, but why is the message below pluralized since the %d parameter
is the same?
Do you mean the parameter is constant?
This is correct, but we have some precedent to pluralize these kinds of
things anyway. Several reasons:
- Translators shouldn't have to look into the source code what the
actual value is. (Or, in this case, even beyond the actual source code.)
- Maybe tomorrow someone changes this to PG_UINT16_MAX, and then it
might have to be translated differently.
- Not in this specific case but in general: You might have the same
message in different contexts but with different numbers.
--- a/src/backend/commands/trigger.c
+++ b/src/backend/commands/trigger.c
@@ -904,8 +904,10 @@ CreateTriggerFiringOn(const CreateTrigStmt *stmt, const
char *queryString,
if (nargs > PG_INT16_MAX)
ereport(ERROR,
errcode(ERRCODE_TOO_MANY_ARGUMENTS),
- errmsg("triggers cannot have more than %d
arguments",
- PG_INT16_MAX));
+ errmsg_plural("triggers cannot have more
than %d argument",
+ "triggers cannot
have more than %d arguments",
+ PG_INT16_MAX,
+
PG_INT16_MAX));