summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMason Sharp2014-12-29 16:12:36 +0000
committerPavan Deolasee2015-04-15 05:46:44 +0000
commiteb726bef9c6bd69fbc93111ff706ea47dbbf04bb (patch)
tree4d683f7bf92a29120fd89c3f7ec4aa4989a2af95 /src
parent9ef33b52031fdd771b5b4da522a52d229f99be19 (diff)
Address an issue with set global_session, make sure to catch
errors instead of ignoring. Patch submitted by Jov
Diffstat (limited to 'src')
-rw-r--r--src/backend/pgxc/pool/pgxcnode.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/backend/pgxc/pool/pgxcnode.c b/src/backend/pgxc/pool/pgxcnode.c
index bef6c95b4c..d9c6a56742 100644
--- a/src/backend/pgxc/pool/pgxcnode.c
+++ b/src/backend/pgxc/pool/pgxcnode.c
@@ -2885,9 +2885,18 @@ pgxc_node_set_query(PGXCNodeHandle *handle, const char *set_query)
continue;
}
msgtype = get_message(handle, &msglen, &msg);
+
/*
- * Ignore any response except ReadyForQuery, it allows to go on.
+ * Ignore any response except ErrorResponse and ReadyForQuery
*/
+
+ if (msgtype == 'E') /* ErrorResponse */
+ {
+ handle->error = pstrdup(msg);
+ handle->state = DN_CONNECTION_STATE_ERROR_FATAL;
+ break;
+ }
+
if (msgtype == 'Z') /* ReadyForQuery */
{
handle->transaction_status = msg[0];