Hi, On 2020-07-25 10:54:18 -0400, Tom Lane wrote: > David Rowley <dgrowleyml@xxxxxxxxx> writes: > > ... nested at the bottom level join, about 6 joins deep. The lack of > > any row being found results in upper level joins not having to do > > anything, and the majority of the plan is (never executed). > > On re-reading this, that last point struck me forcibly. If most of > the plan never gets executed, could we avoid compiling it? That is, > maybe JIT isn't JIT enough, and we should make compilation happen > at first use of an expression not during executor startup. That unfortunately has its own downsides, in that there's significant overhead of emitting code multiple times. I suspect that taking the cost of all the JIT emissions together into account is the more promising approach. Greetings, Andres Freund