doc: Clarify ANALYZE VERBOSE output

Started by Shinya Kato7 months ago13 messagesdocs
Jump to latest
#1Shinya Kato
shinya11.kato@gmail.com

Hi,

ANALYZE VERBOSE emits a detailed per-table INFO level report, like
VACUUM VERBOSE. Update the parameter description to use the same
wording.

--
Best regards,
Shinya Kato
NTT OSS Center

Attachments:

v1-0001-doc-Clarify-ANALYZE-VERBOSE-output.patchapplication/octet-stream; name=v1-0001-doc-Clarify-ANALYZE-VERBOSE-output.patchDownload+2-2
#2Maciek Sakrejda
m.sakrejda@gmail.com
In reply to: Shinya Kato (#1)
Re: doc: Clarify ANALYZE VERBOSE output

It makes sense to align these, but I think the existing VACUUM wording
is not great. What do you think about something like the attached?
Basically, I changed both option descriptions to just be

Prints detailed progress for each table at <literal>INFO</literal> level.

I think the idea of _progress_ is important to communicate here. The
word "report" suggests more detailed information, that comes in a
batch after the action is completed.
Thanks,
Maciek

PS: I changed the patch name because I felt the original name is
misleading with my proposed change, and I left it at v1 because
starting a different name with v2 didn't make sense, but I'm not
trying to take authorship credit: most of the work here was finding
the discrepancy.

Attachments:

v1-0001-doc-Clarify-VACUUM-VERBOSE-and-ANALYZE-VERBOSE-outpu.patchtext/x-patch; charset=US-ASCII; name=v1-0001-doc-Clarify-VACUUM-VERBOSE-and-ANALYZE-VERBOSE-outpu.patchDownload+2-4
#3Fujii Masao
masao.fujii@gmail.com
In reply to: Maciek Sakrejda (#2)
Re: doc: Clarify ANALYZE VERBOSE output

On Mon, Apr 6, 2026 at 3:10 AM Maciek Sakrejda <m.sakrejda@gmail.com> wrote:

It makes sense to align these, but I think the existing VACUUM wording
is not great. What do you think about something like the attached?
Basically, I changed both option descriptions to just be

Prints detailed progress for each table at <literal>INFO</literal> level.

I think the idea of _progress_ is important to communicate here. The
word "report" suggests more detailed information, that comes in a
batch after the action is completed.

Referring to it only as "progress" seems like a step backward, doesn't it?
The VERBOSE option reports per-table activity details (e.g., pages to scan,
buffer usage), not just progress.

Since these details are shown for each table, they can also serve as progress
indicators, but they're more than that.

If that understanding is correct, the existing term "vacuum activity report"
seems more appropriate to me. Thought?

Regards,

--
Fujii Masao

#4David G. Johnston
david.g.johnston@gmail.com
In reply to: Fujii Masao (#3)
Re: doc: Clarify ANALYZE VERBOSE output

On Sunday, April 5, 2026, Fujii Masao <masao.fujii@gmail.com> wrote:

On Mon, Apr 6, 2026 at 3:10 AM Maciek Sakrejda <m.sakrejda@gmail.com>
wrote:

It makes sense to align these, but I think the existing VACUUM wording
is not great. What do you think about something like the attached?
Basically, I changed both option descriptions to just be

Prints detailed progress for each table at <literal>INFO</literal>

level.

I think the idea of _progress_ is important to communicate here. The
word "report" suggests more detailed information, that comes in a
batch after the action is completed.

Referring to it only as "progress" seems like a step backward, doesn't it?
The VERBOSE option reports per-table activity details (e.g., pages to scan,
buffer usage), not just progress.

Since these details are shown for each table, they can also serve as
progress
indicators, but they're more than that.

If that understanding is correct, the existing term "vacuum activity
report"
seems more appropriate to me. Thought?

How about something like:
“Enables sending an INFO message to the client (and server log) as each
table is processed. This message contains: etc…”

And then let’s tell the user what info they are getting and what it means
(where necessary).

I concur being specific about when these messages arrive, and IMO where,
should be specified. But losing the detail of “report” is not good; but
not sure why we are being vague so suggest we just go all-in on specificity.

David J.

#5Shinya Kato
shinya11.kato@gmail.com
In reply to: David G. Johnston (#4)
Re: doc: Clarify ANALYZE VERBOSE output

On Mon, Apr 6, 2026, 14:17 David G. Johnston <david.g.johnston@gmail.com>
wrote:

How about something like:
“Enables sending an INFO message to the client (and server log) as each
table is processed. This message contains: etc…”

And then let’s tell the user what info they are getting and what it means
(where necessary).

I concur being specific about when these messages arrive, and IMO where,
should be specified. But losing the detail of “report” is not good; but
not sure why we are being vague so suggest we just go all-in on specificity.

Thank you for the suggestion. I'd prefer to keep this patch focused; since
the verbose output of both commands is subject to change, listing every
individual field in the documentation would require frequent updates.

​I believe the current "Outputs" section is intentionally kept simple to
minimize maintenance overhead. While expanding it might be a worthwhile
follow-up, it probably deserves its own dedicated discussion.

--
Shinya Kato

Show quoted text
#6Maciek Sakrejda
m.sakrejda@gmail.com
In reply to: Shinya Kato (#5)
Re: doc: Clarify ANALYZE VERBOSE output

On Tue, Apr 7, 2026 at 6:57 PM Shinya Kato <shinya11.kato@gmail.com> wrote:

On Mon, Apr 6, 2026, 14:17 David G. Johnston <david.g.johnston@gmail.com> wrote:

How about something like:
“Enables sending an INFO message to the client (and server log) as each table is processed. This message contains: etc…”

And then let’s tell the user what info they are getting and what it means (where necessary).

I concur being specific about when these messages arrive, and IMO where, should be specified. But losing the detail of “report” is not good; but not sure why we are being vague so suggest we just go all-in on specificity.

Thank you for the suggestion. I'd prefer to keep this patch focused; since the verbose output of both commands is subject to change, listing every individual field in the documentation would require frequent updates.

I believe the current "Outputs" section is intentionally kept simple to minimize maintenance overhead. While expanding it might be a worthwhile follow-up, it probably deserves its own dedicated discussion.

+1, listing output details is signing up for busywork. But I do like
the “as each table is processed" wording: it's clear on when you'll
see output. Given the feedback above (that just using the word
"progress" obscures that you'll see actual stats), maybe something
along these lines:

"Prints detailed stats at <literal>INFO</literal> level for each table
as it is processed."

? I still think "report" is the wrong term for something that happens
incrementally.

I don't feel strongly about this, though: if everyone is okay with
consolidating on the existing VACUUM wording, that's still better than
inconsistency.

Thanks,
Maciek

#7David G. Johnston
david.g.johnston@gmail.com
In reply to: Maciek Sakrejda (#6)
Re: doc: Clarify ANALYZE VERBOSE output

On Mon, Apr 13, 2026 at 2:28 PM Maciek Sakrejda <m.sakrejda@gmail.com>
wrote:

On Tue, Apr 7, 2026 at 6:57 PM Shinya Kato <shinya11.kato@gmail.com>
wrote:

On Mon, Apr 6, 2026, 14:17 David G. Johnston <david.g.johnston@gmail.com>

wrote:

How about something like:
“Enables sending an INFO message to the client (and server log) as each

table is processed. This message contains: etc…”

And then let’s tell the user what info they are getting and what it

means (where necessary).

I concur being specific about when these messages arrive, and IMO

where, should be specified. But losing the detail of “report” is not good;
but not sure why we are being vague so suggest we just go all-in on
specificity.

Thank you for the suggestion. I'd prefer to keep this patch focused;

since the verbose output of both commands is subject to change, listing
every individual field in the documentation would require frequent updates.

I believe the current "Outputs" section is intentionally kept simple to

minimize maintenance overhead. While expanding it might be a worthwhile
follow-up, it probably deserves its own dedicated discussion.

+1, listing output details is signing up for busywork.

Given how expansive and thorough our documentation is, and the fact this is
user-facing output, I'm not seeing why this gets a pass on the
documentation requirement. That said, I concur this patch needn't be
responsible for dealing with that - I'm not even sure whether trying to do
that on the vacuum/analyze pages is even the correct choice since at least
some of what is output is object-specific and not generic to vacuum
itself. Though stuff like timings are. Even if we want to leave ourselves
the "it's undocumented so it can be changed at will" clause we can simply
write that in.

maybe something

along these lines:

"Prints detailed stats at <literal>INFO</literal> level for each table
as it is processed."

I really don't like the word "Print" here. What the client decides to do
with the INFO message is up to them - the interface to document for the
server is simply sending the message and its details.

I was apparently mistaken about this info showing in the server log file
though.

So that leaves me with suggesting:

"Enables the sending of a detailed INFO message to the client after each
table is processed."

David J.

#8Yushu Chen
gentcys@gmail.com
In reply to: David G. Johnston (#7)
Re: doc: Clarify ANALYZE VERBOSE output

Hi,

The discussion makes sense to me.

Just to add one variant for consideration:

"Emits detailed information about vacuum activity for each table in the
form of INFO and DETAIL messages."

Thanks.

On Tue, Apr 14, 2026 at 6:29 AM David G. Johnston <
david.g.johnston@gmail.com> wrote:

Show quoted text

On Mon, Apr 13, 2026 at 2:28 PM Maciek Sakrejda <m.sakrejda@gmail.com>
wrote:

On Tue, Apr 7, 2026 at 6:57 PM Shinya Kato <shinya11.kato@gmail.com>
wrote:

On Mon, Apr 6, 2026, 14:17 David G. Johnston <

david.g.johnston@gmail.com> wrote:

How about something like:
“Enables sending an INFO message to the client (and server log) as

each table is processed. This message contains: etc…”

And then let’s tell the user what info they are getting and what it

means (where necessary).

I concur being specific about when these messages arrive, and IMO

where, should be specified. But losing the detail of “report” is not good;
but not sure why we are being vague so suggest we just go all-in on
specificity.

Thank you for the suggestion. I'd prefer to keep this patch focused;

since the verbose output of both commands is subject to change, listing
every individual field in the documentation would require frequent updates.

I believe the current "Outputs" section is intentionally kept simple to

minimize maintenance overhead. While expanding it might be a worthwhile
follow-up, it probably deserves its own dedicated discussion.

+1, listing output details is signing up for busywork.

Given how expansive and thorough our documentation is, and the fact this
is user-facing output, I'm not seeing why this gets a pass on the
documentation requirement. That said, I concur this patch needn't be
responsible for dealing with that - I'm not even sure whether trying to do
that on the vacuum/analyze pages is even the correct choice since at least
some of what is output is object-specific and not generic to vacuum
itself. Though stuff like timings are. Even if we want to leave ourselves
the "it's undocumented so it can be changed at will" clause we can simply
write that in.

maybe something

along these lines:

"Prints detailed stats at <literal>INFO</literal> level for each table
as it is processed."

I really don't like the word "Print" here. What the client decides to do
with the INFO message is up to them - the interface to document for the
server is simply sending the message and its details.

I was apparently mistaken about this info showing in the server log file
though.

So that leaves me with suggesting:

"Enables the sending of a detailed INFO message to the client after each
table is processed."

David J.

#9Maciek Sakrejda
maciek@pganalyze.com
In reply to: David G. Johnston (#7)
Re: doc: Clarify ANALYZE VERBOSE output

On Mon, Apr 13, 2026 at 3:29 PM David G. Johnston
<david.g.johnston@gmail.com> wrote:

On Tue, Apr 7, 2026 at 6:57 PM Shinya Kato <shinya11.kato@gmail.com> wrote:

I believe the current "Outputs" section is intentionally kept simple to minimize maintenance overhead. While expanding it might be a worthwhile follow-up, it probably deserves its own dedicated discussion.

+1, listing output details is signing up for busywork.

Given how expansive and thorough our documentation is, and the fact this is user-facing output, I'm not seeing why this gets a pass on the documentation requirement. That said, I concur this patch needn't be responsible for dealing with that - I'm not even sure whether trying to do that on the vacuum/analyze pages is even the correct choice since at least some of what is output is object-specific and not generic to vacuum itself. Though stuff like timings are. Even if we want to leave ourselves the "it's undocumented so it can be changed at will" clause we can simply write that in.

It's not getting "a pass". Ultimately it's a judgment call:
maintenance cost versus existing conventions (how we document command
output in other places), utility to the user of having detailed docs
on this, and how easy it is to check the actual output by just running
the command. I think on balance it's not worth doing here, and "it's
undocumented so it can be changed at will" is equivalent to saying
nothing (so we might as well say nothing).

maybe something
along these lines:

"Prints detailed stats at <literal>INFO</literal> level for each table
as it is processed."

I really don't like the word "Print" here. What the client decides to do with the INFO message is up to them - the interface to document for the server is simply sending the message and its details.

Fair enough, though we do use "print" as a synonym for "log" all over
the place. "Emit" was suggested down-thread; I think that's also a
good choice. Your "Sends" below also works.

I was apparently mistaken about this info showing in the server log file though.

So that leaves me with suggesting:

"Enables the sending of a detailed INFO message to the client after each table is processed."

I'd simplify it to just

"Sends a detailed INFO message to the client after each table is processed."

Technically the option itself is not doing the sending, but the
relationship of the option to the behavior is obvious, and I don't
think complicating the language to reflect the actual mechanism adds
anything.

Thanks,
Maciek

#10surya poondla
suryapoondla4@gmail.com
In reply to: Shinya Kato (#1)
Re: doc: Clarify ANALYZE VERBOSE output

Hi All,

Thanks everyone this is a very interesting discussion.

I agree with Shinya that keeping this patch focused is the right call,
documenting every verbose output field is a separate project.

On the wording debate: I think David and Maciek are both pointing at
the same real issue, the description should convey (a) "what kind of
information" users will see, and (b) "when" they'll see it.

Given that, I'd suggest leaning toward something like:
"Sends a detailed INFO message to the client for each table as it is
processed."

I feel with the above message we balance, the server's perspective ("sends"
rather than "prints"), and conveys timing ("after each table is
processed").

This same phrasing could work for both VACUUM and ANALYZE VERBOSE, keeping
them consistent.

Regards,
Surya Poondla

#11Maciek Sakrejda
m.sakrejda@gmail.com
In reply to: surya poondla (#10)
Re: doc: Clarify ANALYZE VERBOSE output

On Tue, May 5, 2026 at 4:26 PM surya poondla <suryapoondla4@gmail.com> wrote:

On the wording debate: I think David and Maciek are both pointing at
the same real issue, the description should convey (a) "what kind of
information" users will see, and (b) "when" they'll see it.

Given that, I'd suggest leaning toward something like:
"Sends a detailed INFO message to the client for each table as it is processed."

I feel with the above message we balance, the server's perspective ("sends" rather than "prints"), and conveys timing ("after each table is processed").

I agree with the analysis, and I think the proposed wording works well.

This same phrasing could work for both VACUUM and ANALYZE VERBOSE, keeping them consistent.

+1 for consistency.

#12Shinya Kato
shinya11.kato@gmail.com
In reply to: Maciek Sakrejda (#11)
Re: doc: Clarify ANALYZE VERBOSE output

On Tue, May 12, 2026 at 5:15 AM Maciek Sakrejda <m.sakrejda@gmail.com> wrote:

On Tue, May 5, 2026 at 4:26 PM surya poondla <suryapoondla4@gmail.com> wrote:

On the wording debate: I think David and Maciek are both pointing at
the same real issue, the description should convey (a) "what kind of
information" users will see, and (b) "when" they'll see it.

Given that, I'd suggest leaning toward something like:
"Sends a detailed INFO message to the client for each table as it is processed."

I feel with the above message we balance, the server's perspective ("sends" rather than "prints"), and conveys timing ("after each table is processed").

I agree with the analysis, and I think the proposed wording works well.

This same phrasing could work for both VACUUM and ANALYZE VERBOSE, keeping them consistent.

+1 for consistency.

Sorry for the delayed response, and thank you for the feedback. I
agree with the points raised, so I have updated the patch accordingly.

--
Best regards,
Shinya Kato
NTT OSS Center

Attachments:

v2-0001-doc-Clarify-VERBOSE-output-for-ANALYZE-and-VACUUM.patchapplication/octet-stream; name=v2-0001-doc-Clarify-VERBOSE-output-for-ANALYZE-and-VACUUM.patchDownload+4-4
#13surya poondla
suryapoondla4@gmail.com
In reply to: Shinya Kato (#12)
Re: doc: Clarify ANALYZE VERBOSE output

Hi Shinya,

The updated patch looks good to me.

Regards,
Surya Poondla