Parameter · Query Tuning / Planner Cost Constants
jit_inline_above_cost
Perform JIT inlining if query is more expensive. -1 disables inlining.
- Default:
500000 - Type: real
- Range: -1 … 1.79769e+308
- Applies: Session (any user)
In plain words
When JIT is used, it can additionally copy the code of small built-in functions (like integer comparison) right into the compiled query, avoiding function calls. That makes compilation slower, so it only happens for queries costed above this value.
For DBAs and operators
Inlining uses LLVM bitcode of PostgreSQL's own functions (installed with the server, typically in lib/bitcode/) and of extensions that ship bitcode. It only applies once JIT is already active, i.e. the cost also exceeds jit_above_cost. Setting this lower than jit_above_cost has no effect on its own.
EXPLAIN shows Options: Inlining true and an Inlining … ms timing when it happened. Inlining is most useful for queries that evaluate cheap operators on many millions of rows. Because inlining plus optimization can add hundreds of milliseconds of compile time, many installations raise this (or set -1) when they see JIT overhead in EXPLAIN ANALYZE that is larger than the execution savings.
How to change it
Any user can change it for their session with SET.