{"Entry":{"collection":"guc","key":"debug_exec_backend","name":"debug_exec_backend","aliases":[],"metadata":{"baseline":false,"boot_human":"Not specified","boot_val":null,"category":"Preset Options","category_zh":"","changed_in":[],"changes":[{"documentation_changed":false,"fields":{},"from":"18","status":"added","to":"19"}],"content_hash":"75fe94f1b7f687e75f4f60ea2b67f5020de3c4dce627d2ee3ffa5b986c8067d5","context":"","default_changed_in":[],"default_history":[{"from":"19","to":"19","value":"off"}],"editorial":{"advice":{"olap":"Evaluate the setting with representative long-running and batch work. Measure total runtime, resource use, log volume, and failure behavior across the whole job rather than one isolated operation.","oltp":"Keep the upstream default until a reproducible operational need is demonstrated. Test under representative concurrency and inspect logs, latency, and the related settings before changing cluster-wide policy.","small":"Minimize overrides and document rollback. A small system has less room for extra logging, workers, memory, or retained WAL, so validate the change with explicit resource limits."},"mechanism":["PostgreSQL describes debug_exec_backend as follows: “Shows whether the running server is built with EXEC_BACKEND enabled.” It is read-only state reported by PostgreSQL, not an operator-controlled tuning knob. The atlas measures it in PG19 Beta 3; boot_val is the compiled or initialized baseline, not proof of a running cluster's effective setting.","EXEC_BACKEND creates new backends by executing a fresh server process instead of relying only on forked address-space inheritance. The reported value is determined by platform or build flags—normally true on Windows—and is useful to explain parameter propagation and platform-specific startup behavior.","Read it together with debug_assertions, server_version, server_version_num, dynamic_shared_memory_type. Check SHOW and pg_settings on the target server, verify the source and pending_restart fields, and compare workload, logs, and resource metrics before and after any change."],"pitfalls":["Treating the measured boot_val for debug_exec_backend as proof of the effective value on an initialized or managed cluster.","Applying a change as though it were immediate while pg_settings reports internal context.","Changing this setting in isolation without checking the linked limits, observability, and rollback path.","Depending on beta behavior in production without retesting the PostgreSQL 19 final release."],"references":[{"title":"PostgreSQL 19 Beta 4: debug_exec_backend","url":"https://www.postgresql.org/docs/19/runtime-config-preset.html#GUC-DEBUG-EXEC-BACKEND"},{"title":"PostgreSQL 19 release notes","url":"https://www.postgresql.org/docs/19/release-19.html"}],"related":["debug_assertions","server_version","server_version_num","dynamic_shared_memory_type"],"summary":"debug_exec_backend — Shows whether the running server is built with EXEC_BACKEND enabled. Observed in PG19 Beta 4; its last measured boot default is off in PG19 Beta 4, with internal context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA."},"enumvals":[],"first_version":"19","group":"Preset Options","group_slug":"preset","imported_at":"2026-09-27T17:57:31.044397+08:00","intro_commit":{"authored_at":"2025-11-26T14:24:27+01:00","discussion":["https://postgr.es/m/5F301096-921A-427D-8EC1-EBAEC2A35082@yesql.se"],"hash":"b3fe098d330ff6a7c23019d66a600072b1d4664d","subject":"Add GUC to show EXEC_BACKEND state","url":"https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=b3fe098d330ff6a7c23019d66a600072b1d4664d"},"key":"debug_exec_backend","last_version":"20","max_val":"","min_val":"","name":"debug_exec_backend","position":86,"present_in":["19","20"],"short_desc":"Reports whether PostgreSQL has been built with EXEC_BACKEND enabled.","short_desc_zh":"","source_rev":"english-manuals:b4dc26cbb2af99718f13a3865fd5cb36bc5ffa81ff127c1d8215d74f127cd514","unit":"","vartype":"bool"}},"Definition":{"Collection":"guc","Key":"debug_exec_backend","SourceDatabase":"center","Version":"20","SourceTable":"guc","SourceKey":"debug_exec_backend","SourceRevision":"english-manuals:b4dc26cbb2af99718f13a3865fd5cb36bc5ffa81ff127c1d8215d74f127cd514","Facts":{"boot_val":null,"category":"Preset Options","context":"","description":"Reports whether PostgreSQL has been built with EXEC_BACKEND enabled. That is the case on Windows or if the macro EXEC_BACKEND is defined when PostgreSQL is built.","doc":{"anchor":"GUC-DEBUG-EXEC-BACKEND","file":"runtime-config-preset.html","lang":"en","sha256":"3eafee05354cf7bfc4550aac26646e5608d9ef531a3f66e3d0db4076a99d5b81","slug":"devel"},"documented":true,"enumvals":[],"extra_desc":"","lang":"en","max_val":null,"metadata_version":"","min_val":null,"name":"debug_exec_backend","short_desc":"","source":"english-manual","unit":"","vartype":"bool"},"ManualEvidence":{"doc":{"anchor":"GUC-DEBUG-EXEC-BACKEND","file":"runtime-config-preset.html","lang":"en","sha256":"3eafee05354cf7bfc4550aac26646e5608d9ef531a3f66e3d0db4076a99d5b81","slug":"devel"}},"MeasuredEvidence":{"metadata_version":""}},"Text":{"Collection":"guc","Key":"debug_exec_backend","SourceDatabase":"center","Version":"20","Locale":"en","Title":"debug_exec_backend","Summary":"Reports whether PostgreSQL has been built with EXEC_BACKEND enabled. That is the case on Windows or if the macro EXEC_BACKEND is defined when PostgreSQL is built.","BodyHTML":"\u003cp\u003eReports whether PostgreSQL has been built with EXEC_BACKEND enabled. That is the case on Windows or if the macro EXEC_BACKEND is defined when PostgreSQL is built.\u003c/p\u003e","SourceRevision":"english-manuals:b4dc26cbb2af99718f13a3865fd5cb36bc5ffa81ff127c1d8215d74f127cd514","ContentHash":"721d1668126b7c774ac9ae36a84290a80558ea55b5f753620b7f10af86aae830","Payload":{"description":"Reports whether PostgreSQL has been built with EXEC_BACKEND enabled. That is the case on Windows or if the macro EXEC_BACKEND is defined when PostgreSQL is built."}},"RequestedLocale":"zh-Hans","Fallback":true,"Versions":["19","20"],"Locales":["en"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
