Re: pgstat_report_activity() and parallel CREATE INDEX (was: Parallelindex creation & pg_stat_activity) - Mailing list pgsql-hackers

From Peter Geoghegan
Subject Re: pgstat_report_activity() and parallel CREATE INDEX (was: Parallelindex creation & pg_stat_activity)
Date
Msg-id CAH2-Wzmf-34hD4n40uTuE-ZY9P5c+mvhFbCdQfN=KrKiVm3j3A@mail.gmail.com
Whole thread Raw
In response to pgstat_report_activity() and parallel CREATE INDEX (was: Parallelindex creation & pg_stat_activity)  (Peter Geoghegan <pg@bowt.ie>)
Responses Re: pgstat_report_activity() and parallel CREATE INDEX (was: Parallelindex creation & pg_stat_activity)  (Robert Haas <robertmhaas@gmail.com>)
Re: pgstat_report_activity() and parallel CREATE INDEX (was: Parallel index creation & pg_stat_activity)  (Noah Misch <noah@leadboat.com>)
List pgsql-hackers
On Thu, Mar 1, 2018 at 2:47 PM, Peter Geoghegan <pg@bowt.ie> wrote:
> No. Just an oversight. Looks like _bt_parallel_build_main() should
> call pgstat_report_activity(), just like ParallelQueryMain().
>
> I'll come up with a patch soon.

Attached patch has parallel CREATE INDEX propagate debug_query_string
to workers. Workers go on to use this string as their own
debug_query_string, as well as registering it using
pgstat_report_activity(). Parallel CREATE INDEX pg_stat_activity
entries will have a query text, too, which addresses Phil's complaint.

I wasn't 100% sure if I should actually show the leader's
debug_query_string within worker pg_stat_activity entries, since that
isn't what parallel query uses (the QueryDesc/Estate query string in
shared memory is *restored* as the debug_query_string for a parallel
query worker, though). I eventually decided that this
debug_query_string approach was okay. There is nothing remotely like a
QueryDesc or EState passed to btbuild(). I can imagine specific issues
with what I've done, such as a CREATE EXTENSION command that contains
a CREATE INDEX, and yet shows a CREATE EXTENSION in pg_stat_activity
for parallel workers. However, that's no different to what you'd see
with a serial index build. Existing tcop/postgres.c
pgstat_report_activity() calls are aligned with setting
debug_query_string.

-- 
Peter Geoghegan

Attachment

pgsql-hackers by date:

Previous
From: Craig Ringer
Date:
Subject: Re: RFC: Add 'taint' field to pg_control.
Next
From: Alvaro Herrera
Date:
Subject: Re: FOR EACH ROW triggers on partitioned tables