On Thu, Oct 15, 2020 at 02:23:01PM +1300, David Rowley wrote: > On Thu, 15 Oct 2020 at 14:15, Tom Lane <t...@sss.pgh.pa.us> wrote: > > David Rowley <dgrowle...@gmail.com> writes: > > > Just for some reference. Some wisdom was shared in [1], which made a > > > lot of sense to me. > > > If we apply that, then we just need to decide if displaying any jit > > > related fields without any jitted expressions is relevant. > > > > 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. -- Justin