From 590f466e2a20125c98c243eb5597bfe7d65174a8 Mon Sep 17 00:00:00 2001 From: Hiroshi Inoue Date: Thu, 27 Oct 2016 12:44:41 +0900 Subject: [PATCH] Commit 3b6f3d changed the results of regression tests. Put back to set error messages only when error messages are not set. --- statement.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/statement.c b/statement.c index 6df9c17..a8b17b1 100644 --- a/statement.c +++ b/statement.c @@ -2935,6 +2935,18 @@ BOOL SC_AcceptedCancelRequest(const StatementClass *self) return shouldCancel; } +static void +SC_set_error_if_not_set(StatementClass *self, int errornumber, const char *errmsg, const char *func) +{ + if (SC_get_errormsg(self) <= 0) + { + if (!SC_get_errormsg(self)) + SC_set_errornumber(self, errornumber); + else + SC_set_error(self, errornumber, errmsg, func); + } +} + static void SC_set_errorinfo(StatementClass *self, QResultClass *res) { @@ -2942,23 +2954,23 @@ SC_set_errorinfo(StatementClass *self, QResultClass *res) if (conn->status == CONN_NOT_CONNECTED || conn->status == CONN_DOWN) { - SC_set_error(self, STMT_COMMUNICATION_ERROR, "The connection has been lost", __FUNCTION__); + SC_set_error_if_not_set(self, STMT_COMMUNICATION_ERROR, "The connection has been lost", __FUNCTION__); return; } switch (QR_get_rstatus(res)) { case PORES_NO_MEMORY_ERROR: - SC_set_error(self, STMT_NO_MEMORY_ERROR, "memory allocation error???", __FUNCTION__); + SC_set_error_if_not_set(self, STMT_NO_MEMORY_ERROR, "memory allocation error???", __FUNCTION__); break; case PORES_BAD_RESPONSE: - SC_set_error(self, STMT_COMMUNICATION_ERROR, "communication error occured", __FUNCTION__); + SC_set_error_if_not_set(self, STMT_COMMUNICATION_ERROR, "communication error occured", __FUNCTION__); break; case PORES_INTERNAL_ERROR: - SC_set_error(self, STMT_INTERNAL_ERROR, "Internal error fetching next row", __FUNCTION__); + SC_set_error_if_not_set(self, STMT_INTERNAL_ERROR, "Internal error fetching next row", __FUNCTION__); break; default: - SC_set_error(self, STMT_EXEC_ERROR, "Error fetching next row", __FUNCTION__); + SC_set_error_if_not_set(self, STMT_EXEC_ERROR, "Error fetching next row", __FUNCTION__); break; } } -- 2.39.5