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