From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | pgsql-hackers(at)lists(dot)postgresql(dot)org |
Cc: | Robert Haas <robertmhaas(at)gmail(dot)com> |
Subject: | force_parallel_mode = regress has a blind spot |
Date: | 2019-12-12 19:01:49 |
Message-ID: | 18445.1576177309@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
I have just found out the hard way (cf commits 22864f6e0, 776a2c887)
that if one uses EXPLAIN with both ANALYZE and VERBOSE selected,
the output is not the same between force_parallel_mode = off and
force_parallel_mode = regress. This seems to me to be quite broken;
what's the point of force_parallel_mode = regress if it doesn't
produce the same output?
The reason there's a problem is that ExplainNode() will show
per-worker detail if both es->analyze and es->verbose are set,
even when the only reason there's a worker process is that
force_parallel_mode injected a supposedly-invisible Gather.
I don't see any way to fix this that doesn't involve some sort
of "action at a distance". One could imagine hiding the per-worker
detail if we're underneath a Gather that has invisible set to
true, but it's not really clear to me that that would do the
right things in a plan with multiple Gather nodes. Any thoughts
about that?
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Ibrar Ahmed | 2019-12-12 19:13:27 | Re: VACUUM memory management |
Previous Message | Арсен Арутюнян | 2019-12-12 18:30:48 | Async_Notify |