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