This series of patches has caused buildfarm member wrasse to
start complaining about "empty declarations":
wrasse | 2022-12-09 21:08:33 |
"/export/home/nm/farm/studio64v12_6/HEAD/pgsql.build/../pgsql/src/backend/utils/adt/pgstatfuncs.c",line 56: warning:
syntaxerror: empty declaration
wrasse | 2022-12-09 21:08:33 |
"/export/home/nm/farm/studio64v12_6/HEAD/pgsql.build/../pgsql/src/backend/utils/adt/pgstatfuncs.c",line 59: warning:
syntaxerror: empty declaration
wrasse | 2022-12-09 21:08:33 |
"/export/home/nm/farm/studio64v12_6/HEAD/pgsql.build/../pgsql/src/backend/utils/adt/pgstatfuncs.c",line 62: warning:
syntaxerror: empty declaration
[ etc etc ]
Presumably it could be silenced by removing the semicolons after
the new macro calls:
/* pg_stat_get_analyze_count */
PG_STAT_GET_RELENTRY_INT64(analyze_count);
/* pg_stat_get_autoanalyze_count */
PG_STAT_GET_RELENTRY_INT64(autoanalyze_count);
/* pg_stat_get_autovacuum_count */
PG_STAT_GET_RELENTRY_INT64(autovacuum_count);
I wondered if that would confuse pgindent, but a quick check
says no. (The blank lines in between may be helping.)
While I'm nitpicking, I think that the way you've set up the
macro definitions is a bit dangerous:
#define PG_STAT_GET_RELENTRY_INT64(stat) \
Datum \
CppConcat(pg_stat_get_,stat)(PG_FUNCTION_ARGS) \
{ \
... \
PG_RETURN_INT64(result); \
} \
The backslash after the last right brace means that the line
following that is part of the macro body. This does no harm as
long as said line is blank ... but I think it's a foot-gun
waiting to bite somebody, because visually you'd think the macro
ends with the brace. So I'd leave off that last backslash.
regards, tom lane