summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
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];