Tom Lane wrote:
+ /* 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.
--
PostgreSQL Replication, Consulting, Custom Development, 24x7 support