Tom Lane wrote:
> Alvaro Herrera <alvherre@commandprompt.com> writes:
> > + /* last_anl_tuples must never exceed n_live_tuples */
>
> If we actually believe the above statement, it seems like your patch
> to pgstat_recv_tabstat() opens a new issue: with that patch, it is
> possible for pgstat_recv_tabstat() to decrease n_live_tuples, and
> therefore a clamp needs to be applied in pgstat_recv_tabstat() too.
> No?
Hmm, yeah.
> The reason I didn't patch it myself is that I'm not quite clear on what
> *should* be happening here. What effect should a large delete have on
> the ANALYZE threshold, exactly? You could argue that a deletion
> potentially changes the statistics (by omission), and therefore inserts,
> updates, and deletes should equally count +1 towards the analyze
> threshold. I don't think we are implementing that though. If we want
> to do it that way, I suspect last_anl_tuples as currently defined is not
> the right comparison point.
Maybe what we should do is revert the pgstat_recv_tabstat() part of the
patch in 8.1, and consider redefining last_anl_tuples in HEAD. Caffeine
is not high enough yet to propose anything sensible, but I'll think
about it a bit later.
--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support