{"Entry":{"collection":"guc","key":"custom_variable_classes","name":"custom_variable_classes","aliases":[],"metadata":{"baseline":false,"boot_human":"Not specified","boot_val":null,"category":"Customized Options","category_zh":"","changed_in":[],"changes":[{"documentation_changed":false,"fields":{},"from":"7.4","status":"added","to":"8.0"},{"documentation_changed":true,"fields":{},"from":"8.0","status":"changed","to":"8.1"},{"documentation_changed":true,"fields":{},"from":"8.1","status":"changed","to":"8.2"},{"documentation_changed":false,"fields":{},"from":"9.1","status":"removed","to":"9.2"}],"content_hash":"af8e11aea16d58540491c7ee8a0aa1e7cc85911e0adfee57a203538cbdf8a5fc","context":"sighup","default_changed_in":[],"default_history":[{"from":"9.0","to":"9.1","value":"Not specified"}],"editorial":{"advice":{"olap":"For an upgrade or analytical estate, inventory every generated configuration before cutover. Map the old control to its successor and compare plans, throughput, WAL, or logging behavior rather than assuming the old numeric value is portable.","oltp":"Do not add this retired name to a current OLTP configuration. Translate its intent to the documented successor, test the migration under connection and write concurrency, and remove stale automation that still emits it.","small":"Delete the obsolete override after recording why it existed. On a small node, prefer the successor's default until measurements justify a new value; an unknown startup parameter can otherwise stop the server."},"mechanism":["PostgreSQL describes custom_variable_classes as follows: “Sets the list of known custom variable classes.” A configuration reload applies the value to the server without a full restart. The atlas measures it in PG9.0–9.1; boot_val is the compiled or initialized baseline, not proof of a running cluster's effective setting.","Old releases required extensions and applications to predeclare accepted custom GUC prefixes. PostgreSQL 9.2 removed that registration mechanism; modern servers accept any two-part custom name and preserve an unrecognized placeholder until the defining extension is loaded.","Read it together with shared_preload_libraries, session_preload_libraries, config_file, allow_alter_system. 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 custom_variable_classes as proof of the effective value on an initialized or managed cluster.","Applying a change as though it were immediate while pg_settings reports sighup context.","Changing this setting in isolation without checking the linked limits, observability, and rollback path.","Copying the removed name into a modern postgresql.conf instead of migrating to its documented successor."],"references":[{"title":"PostgreSQL 9.1: custom_variable_classes","url":"https://www.postgresql.org/docs/9.1/runtime-config-custom.html#GUC-CUSTOM-VARIABLE-CLASSES"}],"related":["shared_preload_libraries","session_preload_libraries","config_file","allow_alter_system"],"summary":"custom_variable_classes — Sets the list of known custom variable classes. Observed in PG9.0–9.1; its last measured boot default is not set in PG9.1, with sighup context. It was removed in PG9.2."},"enumvals":[],"first_version":"8.0","group":"Customized Options","group_slug":"custom","imported_at":"2026-09-27T17:57:31.005037+08:00","intro_commit":{},"key":"custom_variable_classes","last_version":"9.1","max_val":"","min_val":"","name":"custom_variable_classes","position":75,"present_in":["8.0","8.1","8.2","8.3","8.4","9.0","9.1"],"short_desc":"This variable specifies one or several class names to be used for custom variables, in the form of a comma-separated list.","short_desc_zh":"","source_rev":"english-manuals:61ee4dbcdc63ca3eb40f7751c837044ef35c9600dd25e580044ceb4db734eb15","unit":"","vartype":"string"}},"Definition":{"Collection":"guc","Key":"custom_variable_classes","SourceDatabase":"center","Version":"9.1","SourceTable":"guc","SourceKey":"custom_variable_classes","SourceRevision":"english-manuals:61ee4dbcdc63ca3eb40f7751c837044ef35c9600dd25e580044ceb4db734eb15","Facts":{"boot_val":null,"category":"Customized Options","context":"sighup","description":"This variable specifies one or several class names to be used for custom variables, in the form of a comma-separated list. A custom variable is a variable not normally known to PostgreSQL proper but used by some add-on module. Such variables must have names consisting of a class name, a dot, and a variable name. custom_variable_classes specifies all the class names in use in a particular installation. This parameter can only be set in the postgresql.conf file or on the server command line.","doc":{"anchor":"GUC-CUSTOM-VARIABLE-CLASSES","file":"runtime-config-custom.html","lang":"en","sha256":"ba36b5c91bf53ee0e5a7a46c13875e17cdee961fbff1d2232a916be763dafbf0","slug":"9.1"},"documented":true,"enumvals":null,"extra_desc":null,"lang":"en","max_val":null,"metadata_version":"9.1","min_val":null,"name":"custom_variable_classes","short_desc":"Sets the list of known custom variable classes.","source":"pg-settings-source-snapshot","unit":null,"vartype":"string"},"ManualEvidence":{"doc":{"anchor":"GUC-CUSTOM-VARIABLE-CLASSES","file":"runtime-config-custom.html","lang":"en","sha256":"ba36b5c91bf53ee0e5a7a46c13875e17cdee961fbff1d2232a916be763dafbf0","slug":"9.1"}},"MeasuredEvidence":{"metadata_version":"9.1"}},"Text":{"Collection":"guc","Key":"custom_variable_classes","SourceDatabase":"pgweb","Version":"9.1","Locale":"zh-Hans","Title":"custom_variable_classes","Summary":"","BodyHTML":"\u003cp\u003e这个变量指定一个或多个用于自定义变量的类名，形式为逗号分隔的列表。自定义变量是\u003cspan\u003ePostgreSQL\u003c/span\u003e本身通常不知道、但被某些附加模块使用的变量。这种变量的名字必须由类名、点和变量名组成。\u003ccode\u003ecustom_variable_classes\u003c/code\u003e指定一个特定安装中使用的所有类名。这个参数只能在\u003ccode\u003epostgresql.conf\u003c/code\u003e文件中或在服务器命令行上设置。\u003c/p\u003e","SourceRevision":"2026-09-11@29c86d9","ContentHash":"e0f784a58113ba63d96c1cc6b4c81997d5f14530afd57517a03029fa962598dd","Payload":{"carried_from":"","carry_reason":"","doc_html":"\u003cp\u003e这个变量指定一个或多个用于自定义变量的类名，形式为逗号分隔的列表。自定义变量是\u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e本身通常不知道、但被某些附加模块使用的变量。这种变量的名字必须由类名、点和变量名组成。\u003ccode class=\"varname\"\u003ecustom_variable_classes\u003c/code\u003e指定一个特定安装中使用的所有类名。这个参数只能在\u003ccode class=\"filename\"\u003epostgresql.conf\u003c/code\u003e文件中或在服务器命令行上设置。\u003c/p\u003e","doc_same_as":""}},"RequestedLocale":"zh-Hans","Fallback":false,"Versions":["8.0","8.1","8.2","8.3","8.4","9.0","9.1"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
