From: Magnus Hagander <magnus@hagander.net>
Date: Wed, 17 Aug 2016 08:39:22 +0000 (+0200)
Subject: Disable update_process_title by default on Windows
X-Git-Tag: REL9_6_RC1~34
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9b33c7e80d5ac9d85cbb9330f172a5e606876b1c;p=postgresql

Disable update_process_title by default on Windows

The performance overhead of this can be significant on Windows, and most
people don't have the tools to view it anyway as Windows does not have
native support for process titles.

Discussion: <0A3221C70F24FB45833433255569204D1F5BE3E8@G01JPEXMBYT05>

Takayuki Tsunakawa
---

diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
index 27176aa07c..0b14e60156 100644
--- a/doc/src/sgml/config.sgml
+++ b/doc/src/sgml/config.sgml
@@ -5430,6 +5430,8 @@ COPY postgres_log FROM '/full/path/to/logfile.csv' WITH csv;
         is received by the server.  The process title is typically viewed
         by the <command>ps</> command,
         or in Windows by using the <application>Process Explorer</>.
+        This value defaults to off on Windows platforms due to the
+        platform's significant overhead for updating the process title.
         Only superusers can change this setting.
        </para>
       </listitem>
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 0a58ba1fae..31172ef300 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -1210,7 +1210,11 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("Enables updating of the process title every time a new SQL command is received by the server.")
 		},
 		&update_process_title,
+#ifdef WIN32
+		false,
+#else
 		true,
+#endif
 		NULL, NULL, NULL
 	},
 
diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c
index 73cb7ee683..a978bbc328 100644
--- a/src/bin/initdb/initdb.c
+++ b/src/bin/initdb/initdb.c
@@ -1292,6 +1292,12 @@ setup_config(void)
 							  "#effective_io_concurrency = 0");
 #endif
 
+#ifdef WIN32
+	conflines = replace_token(conflines,
+							  "#update_process_title = on",
+							  "#update_process_title = off");
+#endif
+
 	snprintf(path, sizeof(path), "%s/postgresql.conf", pg_data);
 
 	writefile(path, conflines);