Re: [PATCH] Tracking statements entry timestamp in pg_stat_statements

Andres Freund <andres@anarazel.de>

From: Andres Freund <andres@anarazel.de>
To: Andrei Zubkov <zubkov@moonset.ru>
Cc: Julien Rouhaud <rjuju123@gmail.com>, Greg Stark <stark@mit.edu>, "Anton A. Melnikov" <aamelnikov@inbox.ru>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2022-04-01T20:01:53Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Improve quoting in some error messages

Hi,

On 2022-04-01 22:47:02 +0300, Andrei Zubkov wrote:
> +		entry = (pgssEntry *) hash_search(pgss_hash, &key, HASH_FIND, NULL);
> +
> +		if (entry) {
> +			/* Found */
> +			if (minmax_only) {
> +				/* When requested reset only min/max statistics of an entry */
> +				entry_counters = &entry->counters;
> +				for (int kind = 0; kind < PGSS_NUMKIND; kind++)
> +				{
> +					entry_counters->max_time[kind] = 0;
> +					entry_counters->min_time[kind] = 0;
> +				}
> +				entry->minmax_stats_since = stats_reset;
> +			}
> +			else
> +			{
> +				/* Remove the key otherwise  */
> +				hash_search(pgss_hash, &entry->key, HASH_REMOVE, NULL);
> +				num_remove++;
> +			}
> +		}

It seems decidedly not great to have four copies of this code. It was already
not great before, but this patch makes the duplicated section go from four
lines to 20 or so.

Greetings,

Andres Freund