DB Internals AtlasPostgreSQL 18.6 Home About

Parameter · Client Connection Defaults / Shared Library Preloading

jit_provider

JIT provider to use.

  • Default: llvmjit
  • Type: string
  • Applies: Restart required

In plain words

JIT compilation turns parts of an expensive query into machine code. PostgreSQL does not do this itself; it loads a provider library, normally llvmjit (based on LLVM). This setting names that library.

For DBAs and operators

The library is loaded lazily by a backend the first time a query crosses the JIT cost thresholds (jit_above_cost), not at server start. If the named library does not exist, JIT is simply unavailable and no error is raised, which is a common reason for "JIT is on but EXPLAIN shows no JIT section". On many distributions the LLVM part is a separate package (for example postgresql18-llvmjit from the PGDG RPM repository).

Check availability with SELECT pg_jit_available();. Changing the provider requires a restart. Third-party providers are rare; the setting exists mainly so the LLVM dependency stays optional.

How to change it

Change in postgresql.conf or ALTER SYSTEM, then restart the server.

See it in context

JIT compilation

Related parameters

jit jit_above_cost dynamic_library_path

All Client Connection Defaults parameters