| From: | Melanie Plageman <melanieplageman(at)gmail(dot)com> |
|---|---|
| To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
| Subject: | pgsql: Preserve n_live_tup when VACUUM cannot estimate it |
| Date: | 2026-11-12 20:55:35 |
| Message-ID: | E1xRbpX-00000000TiX-2oas@gemulon.postgresql.org |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-committers |
Preserve n_live_tup when VACUUM cannot estimate it
VACUUM clamped an unknown live-tuple estimate (-1) to zero before
reporting it to pgstat, overwriting any existing n_live_tup estimate
with zero. It did so because some users required non-negative values and
the situation was seen as rare.
Commit b46e1e54d made the sitaution more likely by allowing on-access
pruning to mark pages all-visible before VACUUM or ANALYZE establishes
tuple density.
Pass -1 through to pgstat_report_vacuum(), which will preserve the
existing n_live_tup when the estimate is unknown.
Reported-by: Vaibhav Jain <jainva(at)google(dot)com>
Author: Vaibhav Jain <jainva(at)google(dot)com>
Reviewed-by: Melanie Plageman <melanieplageman(at)gmail(dot)com>
Discussion: https://postgr.es/m/flat/CABa-Az2YXuX%2B_JH8VL89i7oA%2BDC74GvfkSsM9%2B92fGCeWYVCqg%40mail.gmail.com
Backpatch-through: 19
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/49931d8fdc5c88b9bb72b23e95cc976071b6fa14
Modified Files
--------------
src/backend/access/heap/vacuumlazy.c | 2 +-
src/backend/utils/activity/pgstat_relation.c | 6 +++++-
2 files changed, 6 insertions(+), 2 deletions(-)
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Melanie Plageman | 2026-11-12 20:58:41 | pgsql: Preserve n_live_tup when VACUUM cannot estimate it |
| Previous Message | Tomas Vondra | 2026-11-12 20:23:47 | pgsql: Update .abi-compliance-history for a new field in JoinPathExtraD |