Re: Generate pg_stat_get_* functions with Macros

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>, "Drouvot, Bertrand" <bertranddrouvot.pg@gmail.com>, Nathan Bossart <nathandbossart@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2022-12-10T03:52:16Z
Lists: pgsql-hackers
On Fri, Dec 09, 2022 at 09:43:56PM -0500, Tom Lane wrote:
> 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.)

Indeed.  Will fix.

> 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.

Will address this one as well for all the macro definitions.  Thanks!
--
Michael

Commits

  1. Fix macro definitions in pgstatfuncs.c

  2. Generate pg_stat_get*() functions for databases using macros