On Fri, Aug 27, 2021 at 11:35 AM Stephen Frost <sfrost@snowman.net> wrote:
> > BTW, I noticed one thing about the track_io_time stuff. Sometimes it
> > looks like this:
> >
> > I/O timings:
> >
> > i.e., it doesn't show anything at all after the colon.
> Reporting zeros seems
> valuable to me in that it shows that we did actually track the io timing
> and there simply wasn't any time spent doing that- if we didn't include
> the line at all then it wouldn't be clear if there wasn't any time spent
> in i/o or if track io timing wasn't enabled.
The principle that we don't show things that are all-zeroes is unique
to text-format EXPLAIN output -- any other EXPLAIN format doesn't
treat all-zeroes as a special case. And so the most consistent and
correct thing seems to be this: show both all-zero "read:" and
"write:" (both in vacuumlazy.c and in analyze.c), without making any
other changes (i.e., no changes to EXPLAIN output are needed).
You seem to be almost sold on that plan anyway. But this text format
EXPLAIN rule seems like it decides the question for us.
--
Peter Geoghegan