• Andres Freund's avatar
    Basic planner and executor integration for JIT. · cc415a56
    Andres Freund authored
    This adds simple cost based plan time decision about whether JIT
    should be performed. jit_above_cost, jit_optimize_above_cost are
    compared with the total cost of a plan, and if the cost is above them
    JIT is performed / optimization is performed respectively.
    
    For that PlannedStmt and EState have a jitFlags (es_jit_flags) field
    that stores information about what JIT operations should be performed.
    
    EState now also has a new es_jit field, which can store a
    JitContext. When there are no errors the context is released in
    standard_ExecutorEnd().
    
    It is likely that the default values for jit_[optimize_]above_cost
    will need to be adapted further, but in my test these values seem to
    work reasonably.
    
    Author: Andres Freund, with feedback by Peter Eisentraut
    Discussion: https://postgr.es/m/20170901064131.tazjxwus3k2w3ybh@alap3.anarazel.de
    cc415a56
execUtils.c 28.6 KB