Re: error context for vacuum to include block number - Mailing list pgsql-hackers

From Justin Pryzby
Subject Re: error context for vacuum to include block number
Date
Msg-id 20200127053813.GS13621@telsasoft.com
Whole thread Raw
In response to Re: error context for vacuum to include block number  (Andres Freund <andres@anarazel.de>)
Responses Re: error context for vacuum to include block number  (Justin Pryzby <pryzby@telsasoft.com>)
Re: error context for vacuum to include block number  (Masahiko Sawada <masahiko.sawada@2ndquadrant.com>)
List pgsql-hackers
On Sun, Jan 26, 2020 at 12:29:38PM -0800, Andres Freund wrote:
> > postgres=# SET client_min_messages=debug;SET statement_timeout=99; VACUUM (VERBOSE, PARALLEL 0) t;
> > INFO:  vacuuming "public.t"
> > DEBUG:  "t_a_idx": vacuuming index
> > 2020-01-20 15:47:36.338 CST [20139] ERROR:  canceling statement due to statement timeout
> > 2020-01-20 15:47:36.338 CST [20139] CONTEXT:  while vacuuming relation "public.t_a_idx"
> > 2020-01-20 15:47:36.338 CST [20139] STATEMENT:  VACUUM (VERBOSE, PARALLEL 0) t;
> > ERROR:  canceling statement due to statement timeout
> > CONTEXT:  while vacuuming relation "public.t_a_idx"
> 
> It'd be a bit nicer if it said index "public.t_a_idx" for relation "public.t".

I think that tips the scale in favour of making vacrelstats a global.
I added that as a 1st patch, and squished the callback patches into one.

Also, it seems to me we shouldn't repeat the namespace of the index *and* its
table.  I tried looking for consistency here:

grep -r '\\"%s.%s\\"' --incl='*.c' |grep '\\"%s\\"'
src/backend/commands/cluster.c:                         (errmsg("clustering \"%s.%s\" using index scan on \"%s\"",
src/backend/access/heap/vacuumlazy.c:           errcontext(_("while vacuuming index \"%s\" on table \"%s.%s\""),

grep -r 'index \\".* table \\"' --incl='*.c'
src/backend/catalog/index.c:                            (errmsg("building index \"%s\" on table \"%s\" serially",
src/backend/catalog/index.c:                            (errmsg_plural("building index \"%s\" on table \"%s\" with
requestfor %d parallel worker",
 
src/backend/catalog/index.c:                                                       "building index \"%s\" on table
\"%s\"with request for %d parallel workers",
 
src/backend/catalog/catalog.c:                           errmsg("index \"%s\" does not belong to table \"%s\"",
src/backend/commands/indexcmds.c:                               (errmsg("%s %s will create implicit index \"%s\" for
table\"%s\"",
 
src/backend/commands/tablecmds.c:                                errmsg("index \"%s\" for table \"%s\" does not
exist",
src/backend/commands/tablecmds.c:                                errmsg("index \"%s\" for table \"%s\" does not
exist",
src/backend/commands/tablecmds.c:                                                errdetail("The index \"%s\" belongs to
aconstraint in table \"%s\" but no constraint exists for index \"%s\".",
 
src/backend/commands/cluster.c:                                          errmsg("index \"%s\" for table \"%s\" does not
exist",
src/backend/parser/parse_utilcmd.c:                                      errmsg("index \"%s\" does not belong to table
\"%s\"",

Attachment

pgsql-hackers by date:

Previous
From: Kasahara Tatsuhito
Date:
Subject: Tid scan increments value of pg_stat_all_tables.seq_scan. (but not seq_tup_read)
Next
From: Michael Paquier
Date:
Subject: Re: Setting min/max TLS protocol in clientside libpq