diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml index f4a0191c55b..aa1c30f76af 100644 --- a/doc/src/sgml/config.sgml +++ b/doc/src/sgml/config.sgml @@ -23,7 +23,7 @@ All parameter names are case-insensitive. Every parameter takes a - value of one of five types: boolean, string, integer, floating point, + non-null value of one of five types: boolean, string, integer, floating point, or enumerated (enum). The type determines the syntax for setting the parameter: @@ -12018,14 +12018,20 @@ dynamic_library_path = '/usr/local/lib/postgresql:$libdir' Because custom options may need to be set in processes that have not loaded the relevant extension module, PostgreSQL - will accept a setting for any two-part parameter name. Such variables - are treated as placeholders and have no function until the module that - defines them is loaded. When an extension module is loaded, it will add + will accept a setting for any two-part parameter name. + When an extension module is loaded, it will add its variable definitions and convert any placeholder values according to those definitions. If there are any unrecognized placeholders that begin with its extension name, warnings are issued and those placeholders are removed. + + + If a placeholder is created in a session it will exist for the + lifetime of the session unless removed by an extension. + Placeholders have a string data type with a reset value of the empty string. + + diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml index c67688cbf5f..3637edaa225 100644 --- a/doc/src/sgml/func.sgml +++ b/doc/src/sgml/func.sgml @@ -28555,7 +28555,7 @@ acl | {postgres=arwdDxtm/postgres,foo=r/postgres} text - Returns the current value of the + Returns the current non-null value of the setting setting_name. If there is no such setting, current_setting throws an error unless missing_ok is supplied and @@ -28589,6 +28589,17 @@ acl | {postgres=arwdDxtm/postgres,foo=r/postgres} use false instead. This function corresponds to the SQL command . + + set_config accepts the NULL value for + new_value, but as settings cannot be null this input + is interpreted as a request to set the setting to its default value. + + + If setting_name does not already exist + set_config throws an error unless the identifier is a valid + custom option name, in which it + creates a placeholder with the empty string as its old value. + set_config accepts the NULL value for new_value, but as settings cannot be null, it