From aa41bc794c51a4d5c364cca014c199b1a00d26aa Mon Sep 17 00:00:00 2001
From: Robert Haas <rhaas@postgresql.org>
Date: Fri, 19 May 2017 15:48:10 -0400
Subject: [PATCH] Capitalize SHOW when testing whether
 target_session_attrs=read-write.

This makes it also work for replication connections.

Report and patch by Daisuke Higuchi.

Discussion: http://postgr.es/m/1803D792815FC24D871C00D17AE95905B1A34A@g01jpexmbkw24
---
 doc/src/sgml/libpq.sgml           | 2 +-
 src/interfaces/libpq/fe-connect.c | 8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/doc/src/sgml/libpq.sgml b/doc/src/sgml/libpq.sgml
index bf95b0badac..d20d3140821 100644
--- a/doc/src/sgml/libpq.sgml
+++ b/doc/src/sgml/libpq.sgml
@@ -1425,7 +1425,7 @@ postgresql://%2Fvar%2Flib%2Fpostgresql/dbname
         If this parameter is set to <literal>read-write</literal>, only a
         connection in which read-write transactions are accepted by default
         is considered acceptable.  The query
-        <literal>show transaction_read_only</literal> will be sent upon any
+        <literal>SHOW transaction_read_only</literal> will be sent upon any
         successful connection; if it returns <literal>on</>, the connection
         will be closed.  If multiple hosts were specified in the connection
         string, any remaining servers will be tried just as if the connection
diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c
index 02b7358acab..8e3ef4b9f75 100644
--- a/src/interfaces/libpq/fe-connect.c
+++ b/src/interfaces/libpq/fe-connect.c
@@ -2845,7 +2845,7 @@ keep_going:						/* We will come back to here until there is
 
 					conn->status = CONNECTION_OK;
 					if (!PQsendQuery(conn,
-									 "show transaction_read_only"))
+									 "SHOW transaction_read_only"))
 					{
 						restoreErrorMessage(conn, &savedMessage);
 						goto error_return;
@@ -2901,7 +2901,7 @@ keep_going:						/* We will come back to here until there is
 
 				conn->status = CONNECTION_OK;
 				if (!PQsendQuery(conn,
-								 "show transaction_read_only"))
+								 "SHOW transaction_read_only"))
 				{
 					restoreErrorMessage(conn, &savedMessage);
 					goto error_return;
@@ -3014,14 +3014,14 @@ keep_going:						/* We will come back to here until there is
 				}
 
 				/*
-				 * Something went wrong with "show transaction_read_only". We
+				 * Something went wrong with "SHOW transaction_read_only". We
 				 * should try next addresses.
 				 */
 				if (res)
 					PQclear(res);
 				restoreErrorMessage(conn, &savedMessage);
 				appendPQExpBuffer(&conn->errorMessage,
-				  libpq_gettext("test \"show transaction_read_only\" failed "
+				  libpq_gettext("test \"SHOW transaction_read_only\" failed "
 								" on \"%s:%s\"\n"),
 								  conn->connhost[conn->whichhost].host,
 								  conn->connhost[conn->whichhost].port);
-- 
GitLab