On Fri, Nov 20, 2020 at 04:56:38PM +0100, Peter Eisentraut wrote:
> On 2020-10-17 21:21, Justin Pryzby wrote:
> > Added at:https://commitfest.postgresql.org/30/2766/
> >
> > diff --git a/src/backend/commands/explain.c b/src/backend/commands/explain.c
> > index 41317f1837..7345971507 100644
> > --- a/src/backend/commands/explain.c
> > +++ b/src/backend/commands/explain.c
> > @@ -839,7 +839,8 @@ ExplainPrintJIT(ExplainState *es, int jit_flags,
> > JitInstrumentation *ji)
> > instr_time total_time;
> > /* don't print information if no JITing happened */
> > - if (!ji || ji->created_functions == 0)
> > + if (!ji || (ji->created_functions == 0 &&
> > + es->format == EXPLAIN_FORMAT_TEXT))
> > return;
> > /* calculate total time */
>
> Can you show an output example of where this patch makes a difference? Just
> from reading the description, I would expect some kind of additional
> JIT-related output from something like
>
> EXPLAIN (FORMAT YAML) SELECT 1;
It matters if it was planned with jit but executed without jit.
postgres=# DEALLOCATE p; SET jit=on; SET jit_above_cost=0; prepare p as select
from generate_series(1,9); explain(format yaml) execute p; SET jit=off;
explain(format yaml) execute p;
Patched shows this for both explains:
JIT: +
Functions: 3 +
Unpatched shows only in the first case.
--
Justin