On 25 June 2014 08:13, Fujii Masao <masao.fu...@gmail.com> wrote: > On Wed, Jun 25, 2014 at 1:29 PM, Abhijit Menon-Sen <a...@2ndquadrant.com> > wrote: >> The patch looks OK, and works as advertised (I tested on Linux). If we >> want the feature (I like it), this patch is a good enough way to get it. > > I got the following compiler warning. > > guc.c:3099: warning: initialization from incompatible pointer type
Thank you both for your reviews. Please find attached an updated v5 patch (based on Abhijit's rebased and improved version) which fixes the compiler warning. (The previous unusual and possibly incorrect static initialization with a string literal was intended to make sure logging would work before the GUC machinery has finished setting up default values, but that no longer applies.) Regards, Thomas Munro
diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml index e3d1c62..e9a0e10 100644 --- a/doc/src/sgml/config.sgml +++ b/doc/src/sgml/config.sgml @@ -695,6 +695,23 @@ include 'filename' </listitem> </varlistentry> + <varlistentry id="guc-cluster-name" xreflabel="cluster_name"> + <term><varname>cluster_name</varname> (<type>string</type>)</term> + <indexterm> + <primary><varname>cluster_name</> configuration parameter</primary> + </indexterm> + <listitem> + <para> + Sets the cluster name that appears in the process title for all + processes in this cluster. No name is shown if this parameter is set + to the empty string <literal>''</> (which is the default). The + process title is typically viewed by the <command>ps</> command, or in + Windows by using the <application>Process Explorer</>. + This parameter can only be set at server start. + </para> + </listitem> + </varlistentry> + <varlistentry id="guc-tcp-keepalives-idle" xreflabel="tcp_keepalives_idle"> <term><varname>tcp_keepalives_idle</varname> (<type>integer</type>) <indexterm> diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index 6902c23..5578d44 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -443,6 +443,7 @@ int temp_file_limit = -1; int num_temp_buffers = 1024; +char *cluster_name; char *data_directory; char *ConfigFileName; char *HbaFileName; @@ -3090,6 +3091,17 @@ static struct config_string ConfigureNamesString[] = }, { + {"cluster_name", PGC_POSTMASTER, CONN_AUTH_SETTINGS, + gettext_noop("Sets the name of the cluster that appears in 'ps' output."), + NULL, + GUC_IS_NAME + }, + &cluster_name, + "", + NULL, NULL, NULL + }, + + { /* * Can't be set by ALTER SYSTEM as it can lead to recursive definition * of data_directory. diff --git a/src/backend/utils/misc/postgresql.conf.sample b/src/backend/utils/misc/postgresql.conf.sample index d109394..e4e0411 100644 --- a/src/backend/utils/misc/postgresql.conf.sample +++ b/src/backend/utils/misc/postgresql.conf.sample @@ -74,6 +74,8 @@ # (change requires restart) #bonjour_name = '' # defaults to the computer name # (change requires restart) +#cluster_name = '' # visible in ps output if set + # (change requires restart) # - Security and Authentication - diff --git a/src/backend/utils/misc/ps_status.c b/src/backend/utils/misc/ps_status.c index 3aeceae..471d890 100644 --- a/src/backend/utils/misc/ps_status.c +++ b/src/backend/utils/misc/ps_status.c @@ -29,6 +29,7 @@ #include "libpq/libpq.h" #include "miscadmin.h" #include "utils/ps_status.h" +#include "utils/guc.h" extern char **environ; bool update_process_title = true; @@ -264,15 +265,24 @@ init_ps_display(const char *username, const char *dbname, * apparently setproctitle() already adds a `progname:' prefix to the ps * line */ - snprintf(ps_buffer, ps_buffer_size, - "%s %s %s ", - username, dbname, host_info); +#define PROGRAM_NAME_PREFIX "" #else - snprintf(ps_buffer, ps_buffer_size, - "postgres: %s %s %s ", - username, dbname, host_info); +#define PROGRAM_NAME_PREFIX "postgres: " #endif + if (*cluster_name == '\0') + { + snprintf(ps_buffer, ps_buffer_size, + PROGRAM_NAME_PREFIX "%s %s %s ", + username, dbname, host_info); + } + else + { + snprintf(ps_buffer, ps_buffer_size, + PROGRAM_NAME_PREFIX "%s %s %s %s ", + cluster_name, username, dbname, host_info); + } + ps_buffer_cur_len = ps_buffer_fixed_size = strlen(ps_buffer); set_ps_display(initial_str, true); diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h index 1493d2c..0a729c1 100644 --- a/src/include/utils/guc.h +++ b/src/include/utils/guc.h @@ -224,6 +224,7 @@ extern int temp_file_limit; extern int num_temp_buffers; +extern char *cluster_name; extern char *data_directory; extern char *ConfigFileName; extern char *HbaFileName;
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers