Skip to content

jit_provider

jit_provider is the PostgreSQL setting that selects the JIT provider.
Note

Fact — official short description: “JIT provider to use.”

Identity

Type , Valuestring
Upstream pg_settings type
Context , Valuepostmaster
Requires a server restart
Unit , Value
Raw unit
Range , Value
Raw limits in the last observed version
Enum values , Value
— for non-enum types
Category , ValueClient Connection Defaults / Shared Library Preloading
Upstream classification
Latest boot value , Valuellvmjit
llvmjit

Lifecycle

Fact Value
First observed PG11
Present in PG11–19 Beta 3
Removed in No
Introduction commit 432bb9e04da4 — Basic JIT provider and error handling infrastructure.
Commit date 2018-03-21
Discussion thread 1

Default history

Measured PG9.0–19 Beta 3 boot defaults
Versions Raw boot_val Unit Human value
PG11–19 Beta 3 llvmjit llvmjit

How it works

jit_provider selects the JIT provider. The named provider supplies PostgreSQL’s JIT implementation and must be binary-compatible; changing the provider requires a server restart.

jit_provider is a POSTMASTER-context setting: PostgreSQL reads it during server startup, and a configuration reload or session SET cannot activate a new value.

Library discovery and preloading interact with installed binary versions, extension control files, server or backend startup, and the module’s own GUCs.

Tuning advice

Tip

Advice. These are workload-specific starting points and must be validated with measurements.

Workload Guidance
OLTP Do not switch jit_provider as routine tuning. Keep llvmjit when packaged and supported, and control whether JIT runs with jit and its cost thresholds.
OLAP Evaluate a provider only with representative compilation time, execution speed, memory, package compatibility, and restart testing; provider choice is secondary to JIT thresholds.
Small nodes Keep the packaged provider and usually control JIT use rather than replace its implementation; a missing provider can break startup or JIT execution.

Pigsty

Values use the fixed 8-vCPU, 32-GiB, 100-GiB SSD fixture and render the current Pigsty templates for PG19 Beta 3; this does not assert current Pigsty support for that historical or beta release.

Template Effective value Versus upstream boot Source expression
OLTP Unmodified
OLAP Unmodified
CRIT Unmodified
TINY Unmodified
Caution

Advice — pending human review. Fact from the current Pigsty template projection: OLTP: PG11–19 Beta 3 unmodified; OLAP: PG11–19 Beta 3 unmodified; CRIT: PG11–19 Beta 3 unmodified; TINY: PG11–19 Beta 3 unmodified. No Pigsty-specific rationale is inferred from an absent override.

Common pitfalls

  • Expecting a reload or SET to activate jit_provider, although it requires a controlled server restart.
  • Naming a missing or ABI-incompatible module and causing connection failure or a server that cannot start.
  • Treating a search or preload path as harmless even though it defines which native code the server trusts.
  • Changing jit_provider globally without a rollback plan and a client or operational compatibility test.

shared_preload_libraries · session_preload_libraries · local_preload_libraries · dynamic_library_path · extension_control_path

References