diff options
| author | Mason Sharp | 2014-12-29 16:12:36 +0000 |
|---|---|---|
| committer | Pavan Deolasee | 2015-04-15 05:46:44 +0000 |
| commit | eb726bef9c6bd69fbc93111ff706ea47dbbf04bb (patch) | |
| tree | 4d683f7bf92a29120fd89c3f7ec4aa4989a2af95 /src | |
| parent | 9ef33b52031fdd771b5b4da522a52d229f99be19 (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.c | 11 |
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]; |
