Re: jit and explain nontext
От | Justin Pryzby |
---|---|
Тема | Re: jit and explain nontext |
Дата | |
Msg-id | 20201017192134.GD9241@telsasoft.com обсуждение исходный текст |
Ответ на | Re: jit and explain nontext (David Rowley <dgrowleyml@gmail.com>) |
Ответы |
Re: jit and explain nontext
Re: jit and explain nontext |
Список | pgsql-hackers |
On Thu, Oct 15, 2020 at 02:51:38PM +1300, David Rowley wrote: > On Thu, 15 Oct 2020 at 14:43, Justin Pryzby <pryzby@telsasoft.com> wrote: > > On Thu, Oct 15, 2020 at 02:23:01PM +1300, David Rowley wrote: > > > On Thu, 15 Oct 2020 at 14:15, Tom Lane <tgl@sss.pgh.pa.us> wrote: > > > > Hmm, I dunno if my opinion counts as "wisdom", but what I was arguing for > > > > there was that we should print stuff if it's potentially invoked by a > > > > run-time decision, but not if it was excluded at plan time. I'm not > > > > totally clear on whether jitting decisions are fixed by the plan tree > > > > (including its cost values) or if the executor can make different > > > > decisions in different executions of the identical plan tree. > > > > If the latter, then I agree with Justin that this is a bug. > > > > > > As far as I know, the only exception where the executor overwrites the > > > planner's decision is in nodeValuesscan.c where it turns jit off > > > because each VALUES will get evaluated just once, which would be a > > > waste of effort to JIT. > > > > > > Apart from that the choice is baked in by the planner and set in > > > PlannedStmt.jitfFlags. > > > > What about the GUCs themselves ? > > > > They can change after planning, which means a given execution of a plan might > > or might not use jit. > > That's a pretty good point. 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 */ -- 2.17.0
Вложения
В списке pgsql-hackers по дате отправления: