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.