On 2018-03-12 11:21:36 -0400, Peter Eisentraut wrote:
> On 3/11/18 14:25, Andres Freund wrote:
> >> It's perhaps a bit confusing that some of the jit_* settings take effect
> >> at plan time and some at execution time. At the moment, this mainly
> >> affects me reading the code ;-), but it would also have some effect on
> >> prepared statements and such.
> > Not quite sure what you mean?
>
> I haven't tested this, but what appears to be the case is that
>
> SET jit_above_cost = 0;
> PREPARE foo AS SELECT ....;
> SET jit_above_cost = infinity;
> EXECUTE foo;
>
> will use JIT, because jit_above_cost applies at plan time, whereas
>
> SET jit_expressions = on;
> PREPARE foo AS SELECT ....;
> SET jit_expressions = off;
> EXECUTE foo;
>
> will *not* use JIT, becaue jit_expressions applies at execution time.
Right. It'd be easy to change that so jit_expressions=off wouldn't have
an effect there anymore. But I'm not sure we want that? I don't have a
strong feeling about this, except that I think jit_above_cost etc should
apply at plan, not execution time.
Greetings,
Andres Freund