DB Internals AtlasPostgreSQL 18.6 Home About

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.

See it in context

JIT compilation

Related parameters

jit_above_cost jit_optimize_above_cost jit

All Query Tuning parameters