On Fri, Apr 01, 2022 at 01:01:53PM -0700, Andres Freund wrote:
> 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.
+1