select open change scope Open full search

PG.CENTER connects PostgreSQL documentation, reference, and ecosystem knowledge. Maintained by Pigsty.

CONFIGURATION / CLIENT CONNECTION DEFAULTS

This variable is the name of the JIT provider library to be used (see Section 30.4.2).

Type
string
Context
postmaster
Measured default
llvmjit
Unit
Metadata snapshot
18

Definition PG 18 manual

This variable is the name of the JIT provider library to be used (see Section 30.4.2). The default is llvmjit. This parameter can only be set at server start.

If set to a non-existent library, JIT will not be available, but no error will be raised. This allows JIT support to be installed separately from the main PostgreSQL package.

Measured default history
Version intervalDefault
11 – 19llvmjit
Analysis & operational context

Authored guidance from the GUC source snapshot; the version-specific manual above is the definition reference. View source ↗

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.

Operational considerations

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.

Workload guidance

OLAP: Evaluate a provider only with representative compilation time, execution speed, memory, package compatibility, and restart testing; provider choice is secondary to JIT thresholds.

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.

SMALL: Keep the packaged provider and usually control JIT use rather than replace its implementation; a missing provider can break startup or JIT execution.

Version history 4
  1. PG 16 → 17changed
  2. PG 13 → 14changed
  3. PG 11 → 12changed
  4. PG 10 → 11added

Related entries

Further reading

Definition snapshot: english-manuals:174d648eb273a01c27aa1ef452d… · English manual source