{"Entry":{"collection":"guc","key":"jit_expressions","name":"jit_expressions","aliases":[],"metadata":{"baseline":false,"boot_human":"Not specified","boot_val":null,"category":"Developer Options","category_zh":"","changed_in":[],"changes":[{"documentation_changed":false,"fields":{},"from":"10","status":"added","to":"11"},{"documentation_changed":true,"fields":{},"from":"11","status":"changed","to":"12"},{"documentation_changed":true,"fields":{},"from":"13","status":"changed","to":"14"},{"documentation_changed":true,"fields":{},"from":"16","status":"changed","to":"17"}],"content_hash":"c53dc8aa3181c3800a0b24478e5771f82b0ca0d9bdb4c771b3e0e06ee9d291ba","context":"","default_changed_in":[],"default_history":[{"from":"11","to":"19","value":"on"}],"derived_content_hash":"a211269845beee69722e8d9481344bf79a010477bb13ce24a5a8489516d475bb","documentation_refresh":{"batch":"20261113","original_source_rev":"wiki-repair-20261023:0add4cbb72c9179b790c1e4dd0ed01465c3bddee2b28afdf4bcd98b75d897049","versions":{"14":"14.25","15":"15.20","16":"16.16","17":"17.12","18":"18.7","19":"19rc2"}},"editorial":{"advice":{"olap":"Long analytical runs can amplify jit_expressions's debug overhead and artifacts. Prefer standard EXPLAIN and statistics first, and isolate any developer experiment from normal users.","oltp":"Do not tune production OLTP with jit_expressions. Enable it only for a bounded reproduction with an owner, log/disk budget, rollback condition, and evidence-capture plan; restore the default immediately afterward.","small":"Keep jit_expressions at its upstream default. A small host has less spare CPU, disk, connection, and log capacity for developer instrumentation."},"mechanism":["jit_expressions controls whether expression evaluation is JIT compiled after the query has already crossed the top-level JIT cost gate. It does not activate JIT by itself.","Disabling it leaves expressions interpreted while other eligible JIT work can still occur. This isolates expression-code generation for testing correctness or compilation overhead.","The setting is a developer diagnostic rather than the normal way to tune JIT; jit_above_cost and the top-level jit switch govern production selection. Its user context permits session- or transaction-local changes; newly performed or newly planned work sees the value."],"pitfalls":["Leaving jit_expressions enabled after the bounded diagnostic or recovery task.","Running the experiment on the only copy of production data.","Underestimating log, core-file, temporary-file, WAL, CPU, or connection-slot amplification.","Treating a server that merely starts or completes a query as proof that data and behavior are correct."],"references":[{"title":"PostgreSQL 19 Beta 4: jit_expressions","url":"https://www.postgresql.org/docs/19/runtime-config-developer.html#GUC-JIT-EXPRESSIONS"},{"title":"PostgreSQL 19 release notes","url":"https://www.postgresql.org/docs/19/release-19.html"}],"related":["jit","jit_above_cost","jit_tuple_deforming","jit_inline_above_cost","jit_optimize_above_cost"],"summary":"jit_expressions — Allow JIT compilation of expressions. Observed in PG11–19 Beta 4; its last measured boot default is on in PG19 Beta 4, with user context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA."},"enumvals":[],"first_version":"11","group":"Developer Options","group_slug":"developer","imported_at":"2026-09-27T17:57:31.4318+08:00","intro_commit":{"authored_at":"2018-03-20T02:20:46-07:00","discussion":["https://postgr.es/m/20170901064131.tazjxwus3k2w3ybh@alap3.anarazel.de"],"hash":"2a0faed9d7028e3830998bd6ca900be651274e27","subject":"Add expression compilation support to LLVM JIT provider.","url":"https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=2a0faed9d7028e3830998bd6ca900be651274e27"},"key":"jit_expressions","last_version":"20","max_val":"","min_val":"","name":"jit_expressions","position":194,"present_in":["11","12","13","14","15","16","17","18","19","20"],"repair_provenance":{"original_source_revision":"english-manuals:bbfaed436f0be4f6911abb25e0d8a346894bf317115d11ef4ebb424a87e71169","receipt_sha256":"bcdb43366465faa31171fa82c7681f73b5e07a605c9cc1983626b32b84547fbf","repair":"wiki-repair-20261023"},"short_desc":"Determines whether expressions are JIT compiled, when JIT compilation is activated (see Section 30.2).","short_desc_zh":"","source_rev":"wiki-repair-20261023:0add4cbb72c9179b790c1e4dd0ed01465c3bddee2b28afdf4bcd98b75d897049","unit":"","vartype":"bool"}},"Definition":{"Collection":"guc","Key":"jit_expressions","SourceDatabase":"center","Version":"18","SourceTable":"guc","SourceKey":"jit_expressions","SourceRevision":"wiki-repair-20261023:0add4cbb72c9179b790c1e4dd0ed01465c3bddee2b28afdf4bcd98b75d897049","Facts":{"boot_val":"on","category":"Developer Options","context":"user","description":"Determines whether expressions are JIT compiled, when JIT compilation is activated (see Section 30.2). The default is on.","description_zh":"当 JIT 编译被激活时（见第 30.2 节），确定表达式是否用 JIT 编译。默认值是 on。","description_zh_html":"\u003cp\u003e\n        当 JIT 编译被激活时（见\u003ca class=\"xref\" href=\"/zh/docs/18/jit-decision.html\" title=\"30.2. 何时使用JIT？\"\u003e第 30.2 节\u003c/a\u003e），确定表达式是否用 JIT 编译。默认值是 \u003ccode class=\"literal\"\u003eon\u003c/code\u003e。\n       \u003c/p\u003e","doc":{"anchor":"GUC-JIT-EXPRESSIONS","file":"runtime-config-developer.html","lang":"en","sha256":"a3f6a107ed6ba4edaf6df03e52f4a469bd09350d545e4ff419e62844025ec1cf","slug":"18"},"doc_html":"\u003cp\u003e\n        Determines whether expressions are JIT compiled, when JIT compilation\n        is activated (see \u003ca class=\"xref\" href=\"/docs/18/jit-decision.html\" title=\"30.2. When to JIT?\"\u003eSection 30.2\u003c/a\u003e).  The default is\n        \u003ccode class=\"literal\"\u003eon\u003c/code\u003e.\n       \u003c/p\u003e","doc_same_as":"","documentation_revision":{"inputs":[{"file":"runtime-config-developer.html","kind":"same-version-reviewed-manual","locale":"en","sha256":"a3f6a107ed6ba4edaf6df03e52f4a469bd09350d545e4ff419e62844025ec1cf","version":"18.7"},{"file":"runtime-config-developer.html","kind":"same-version-reviewed-manual","locale":"zh-Hans","sha256":"e7e22aa5738a1d376b84af1adca796c5e14746266733f925eb50c3ef86a50655","version":"18.7"}],"release":"18.7","runtime_remeasured":false,"source_revision":"pgdoc:b9f0e7232f60f380d642ac9b99226606c254b552"},"documented":true,"enumvals":null,"extra_desc":null,"lang":"en","max_val":null,"metadata_version":"18","min_val":null,"name":"jit_expressions","short_desc":"Allow JIT compilation of expressions.","source":"pg-settings-source-snapshot","translation_provenance":{"inputs":[{"kind":"current-pgdoc-translation","path":"/Users/vonng/pgsty/pgdoc/zh/18/html/runtime-config-developer.html","sha256":"3c08bf624188bbb0733dc7854e61c0c251c2578311ac3dc8fa626ab21b7911d1"}],"kind":"same-version-pgdoc","locale":"zh-Hans","source_revision":"b1b500221dbe5437cfca004d6b04d3f6e422765d","version":"18"},"unit":null,"vartype":"bool","zh_from":"same-version-manual"},"ManualEvidence":{"doc":{"anchor":"GUC-JIT-EXPRESSIONS","file":"runtime-config-developer.html","lang":"en","sha256":"a3f6a107ed6ba4edaf6df03e52f4a469bd09350d545e4ff419e62844025ec1cf","slug":"18"}},"MeasuredEvidence":{"metadata_version":"18"}},"Text":{"Collection":"guc","Key":"jit_expressions","SourceDatabase":"center","Version":"18","Locale":"en","Title":"jit_expressions","Summary":"Determines whether expressions are JIT compiled, when JIT compilation is activated (see Section 30.2). The default is on.","BodyHTML":"\u003cp\u003e\n        Determines whether expressions are JIT compiled, when JIT compilation\n        is activated (see \u003ca href=\"/docs/18/jit-decision.html\" rel=\"nofollow\"\u003eSection 30.2\u003c/a\u003e).  The default is\n        \u003ccode\u003eon\u003c/code\u003e.\n       \u003c/p\u003e","SourceRevision":"wiki-repair-20261023:0add4cbb72c9179b790c1e4dd0ed01465c3bddee2b28afdf4bcd98b75d897049","ContentHash":"426cd1709faa030e9ab35da767a5293bb6918b7ef14f12bed31b31c00f4a0cdb","Payload":{"description":"Determines whether expressions are JIT compiled, when JIT compilation is activated (see Section 30.2). The default is on."}},"RequestedLocale":"en","Fallback":false,"Versions":["11","12","13","14","15","16","17","18","19","20"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
