Subject: doc: Clarify ANALYZE VERBOSE output

From: Shinya Kato <[email-masked]>
Date: Fri, 31 Oct 2025 16:13:51 +0900

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

---

From: Maciek Sakrejda <[email-masked]>
Date: Sun, 5 Apr 2026 11:08:01 -0700

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.
From 7753fb86bba9baee8e599b4e4a6b2e728ebd5279 Mon Sep 17 00:00:00 2001
From: Shinya Kato <[email-masked]>
Date: Fri, 31 Oct 2025 16:06:42 +0900
Subject: [PATCH] doc: Clarify VACUUM VERBOSE and ANALYZE VERBOSE output

VACUUM VERBOSE and ANALYZE VERBOSE both emit detailed per-table INFO
level progress. The documentation currently calls these "reports", but
communicating progress is an important function of this feature and
the documentation should reflect that.
---
 doc/src/sgml/ref/analyze.sgml | 2 +-
 doc/src/sgml/ref/vacuum.sgml  | 3 +--
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/doc/src/sgml/ref/analyze.sgml b/doc/src/sgml/ref/analyze.sgml
index ec81f00fecf..d99b4f2eb6d 100644
--- a/doc/src/sgml/ref/analyze.sgml
+++ b/doc/src/sgml/ref/analyze.sgml
@@ -65,7 +65,7 @@ ANALYZE [ ( <replaceable class="parameter">option</replaceable> [, ...] ) ] [ <r
     <term><literal>VERBOSE</literal></term>
     <listitem>
      <para>
-      Enables display of progress messages at <literal>INFO</literal> level.
+      Prints detailed progress for each table at <literal>INFO</literal> level.
      </para>
     </listitem>
    </varlistentry>
diff --git a/doc/src/sgml/ref/vacuum.sgml b/doc/src/sgml/ref/vacuum.sgml
index ac5d083d468..994da777d9a 100644
--- a/doc/src/sgml/ref/vacuum.sgml
+++ b/doc/src/sgml/ref/vacuum.sgml
@@ -115,8 +115,7 @@ VACUUM [ ( <replaceable class="parameter">option</replaceable> [, ...] ) ] [ <re
     <term><literal>VERBOSE</literal></term>
     <listitem>
      <para>
-      Prints a detailed vacuum activity report for each table
-      at <literal>INFO</literal> level.
+      Prints detailed progress for each table at <literal>INFO</literal> level.
      </para>
     </listitem>
    </varlistentry>
-- 
2.43.0

---

From: Fujii Masao <[email-masked]>
Date: Mon, 6 Apr 2026 13:51:29 +0900

> 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

---

From: "David G. Johnston" <[email-masked]>
Date: Sun, 5 Apr 2026 22:17:14 -0700

> 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.

---

From: Shinya Kato <[email-masked]>
Date: Wed, 8 Apr 2026 10:49:24 +0900

> 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

---

From: Maciek Sakrejda <[email-masked]>
Date: Mon, 13 Apr 2026 14:26:23 -0700

On Tue, Apr 7, 2026 at 6:57 PM Shinya Kato <[email-masked]> wrote:
> On Mon, Apr 6, 2026, 14:17 David G. Johnston <[email-masked]> wrote:
>>
>> “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

---

From: "David G. Johnston" <[email-masked]>
Date: Mon, 13 Apr 2026 15:28:28 -0700

On Mon, Apr 13, 2026 at 2:28 PM Maciek Sakrejda <[email-masked]>
wrote:

> >> 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
> +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
> "Prints detailed stats at <literal>INFO</literal> level for each table
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.

---

From: Yushu Chen <[email-masked]>
Date: Wed, 15 Apr 2026 17:45:41 +0800

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 <
[email-masked]> wrote:

>> >> “Enables sending an INFO message to the client (and server log) as
>> each table is processed.  This message contains: etc…”
>> >>
> 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

---

From: Maciek Sakrejda <[email-masked]>
Date: Wed, 15 Apr 2026 09:38:26 -0700

On Mon, Apr 13, 2026 at 3:29 PM David G. Johnston
<[email-masked]> wrote:
> 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).

> 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.
>
> "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

---

From: surya poondla <[email-masked]>
Date: Tue, 5 May 2026 16:26:32 -0700

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

---

From: Maciek Sakrejda <[email-masked]>
Date: Mon, 11 May 2026 13:12:55 -0700

On Tue, May 5, 2026 at 4:26 PM surya poondla <[email-masked]> wrote:
> "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.

---

From: Shinya Kato <[email-masked]>
Date: Thu, 14 May 2026 21:14:27 +0900

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

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

---

From: surya poondla <[email-masked]>
Date: Mon, 18 May 2026 09:35:08 -0700

Hi Shinya,

The updated patch looks good to me.

Regards,
Surya Poondla

---

From: solai v <[email-masked]>
Date: Wed, 3 Jun 2026 10:09:28 +0530

Hi Shinya,

I applied the v2 patch and reviewed the changes.
The patch applies cleanly, and the updated wording looks clear and
improves consistency between VACUUM VERBOSE and ANALYZE VERBOSE.
Looks good to me.

Regards,
Solai