Re: EXPLAIN's handling of output-a-field-or-not decisions
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-hackers@lists.postgresql.org
Date: 2020-01-26T22:42:54Z
Lists: pgsql-hackers
Hi, On 2020-01-26 16:54:58 -0500, Tom Lane wrote: > Andres Freund <andres@anarazel.de> writes: > > On 2020-01-26 15:13:49 -0500, Tom Lane wrote: > >> The other offender is the JIT stuff: it prints if COSTS is on and > >> there's some JIT activity to report, and otherwise you get nothing. > >> This is OK for text mode but it's bogus for the other formats. > >> Since we just rearranged EXPLAIN's JIT output anyway, now seems like > >> a good time to fix it. > > > No objection. I think the current choice really is just about hiding JIT > > information in the cases where we display explain output in the > > tests. That output can't change depending on the build environment and > > settings (it's e.g. hugely useful to force all queries to be JITed for > > coverage). > > Right, but then ... > > > One concern I do have is that I think we need the overall time for JIT > > to be displayed regardless of the JIT option. > > ... how are you going to square that desire with not breaking the > regression tests? Well, that's how we arrived at turning off JIT information when COSTS OFF, because that's already something all the EXPLAINs in the regression tests have to do. I do not want to regress from the current state, with regard to both regression tests, and seeing at least a top-line time in the normal EXPLAIN ANALYZE cases. I've previously wondered about adding a REGRESS option to EXPLAIN would not actually be a good one, so we can move the magic into that, rather than options that are also otherwise relevant. Greetings, Andres Freund
Commits
-
Fix EXPLAIN (SETTINGS) to follow policy about when to print empty fields.
- 3ec20c7091e9 13.0 landed
- bad494380210 12.2 landed
-
Fix some infelicities in EXPLAIN output for parallel query plans.
- 8ebb69f85445 9.6.0 cited