Re: Emit namespace in post-copy output - Mailing list pgsql-hackers

From Corey Huinker
Subject Re: Emit namespace in post-copy output
Date
Msg-id CADkLM=c0HO=om=+3R1JKj9rtjp9k5C7TOYC8s66d5BBzSu928Q@mail.gmail.com
Whole thread Raw
In response to Fwd: Emit namespace in post-copy output  (Mike <miketheman@gmail.com>)
Responses Re: Emit namespace in post-copy output
List pgsql-hackers
On Tue, Jun 22, 2021 at 6:08 PM Mike <miketheman@gmail.com> wrote:
When running a VACUUM or CLUSTER command, the namespace name is not part of the emitted message.

Using `vacuumdb` CLI tool recently with multiple jobs, I found that reading the output messages harder to match the relations with their namespaces.

Example:

INFO:  vacuuming "sendgrid.open"
INFO:  vacuuming "mailgun.open"
...
INFO:  "open": found 0 removable, 31460776 nonremovable row versions in 1358656 pages
DETAIL:  0 dead row versions cannot be removed yet.
CPU 31.35s/261.26u sec elapsed 1620.68 sec.
...

In this example. the user can't readily tell which `open` relation was completed.

Attached is a patch using existing functions to include the namespace in the output string.

Looking forward to feedback!
-Mike Fiedler

I've added this to the open commitfest: https://commitfest.postgresql.org/33/3200/

The change is quite simple, just 3 lines, adding the schema name to two different lines of output.

As such, there is no obvious documentation to change, though I can imagine that we have sample output from vacuum, vacuumdb or cluster somewhere that would need to be updated.

I cobbled together a very simple test:

~/pgdata$ /usr/local/pgsql/bin/psql postgres
psql (14beta2)
Type "help" for help.
postgres=# create database mike_test;
CREATE DATABASE
postgres=# \c mike_test
You are now connected to database "mike_test" as user "corey".
mike_test=# create schema foo;
CREATE SCHEMA
mike_test=# create table foo.bar(x integer);
CREATE TABLE
mike_test=# \q
mike_test=# VACUUM FULL VERBOSE foo.bar;
INFO:  vacuuming "foo.bar"
INFO:  "foo.bar": found 0 removable, 0 nonremovable row versions in 0 pages
DETAIL:  0 dead row versions cannot be removed yet.
CPU: user: 0.00 s, system: 0.00 s, elapsed: 0.00 s.
VACUUM

And of course vacuumdb

~/pgdata$ /usr/local/pgsql/bin/vacuumdb --full --verbose mike_test --table=foo.bar
vacuumdb: vacuuming database "mike_test"
INFO:  vacuuming "foo.bar"
INFO:  "foo.bar": found 0 removable, 0 nonremovable row versions in 0 pages
DETAIL:  0 dead row versions cannot be removed yet.
CPU: user: 0.00 s, system: 0.00 s, elapsed: 0.00 s.

 So far, so good.

pgsql-hackers by date:

Previous
From: Fabien COELHO
Date:
Subject: Re: pgbench logging broken by time logic changes
Next
From: David Rowley
Date:
Subject: Re: Deadlock risk while inserting directly into partition?