[PATCH] fix for wrong error code returned
От | Scot Loach |
---|---|
Тема | [PATCH] fix for wrong error code returned |
Дата | |
Msg-id | 71837C040963F748B9B94E123A2896785A1094@mailserver.sandvine.com обсуждение исходный текст |
Список | pgsql-odbc |
This patch corrects the previous fix for returning 08S01 error code for the server disconnecting. The previous patch sent this error code for any error on the statement (such as a primary key collision). --- statement.c.old 2005-09-17 13:03:28.000000000 -0400 +++ statement.c 2005-09-17 12:54:31.000000000 -0400 @@ -1093,7 +1093,7 @@ CSTR func = "SC_execute"; ConnectionClass *conn; IPDFields *ipdopts; - char was_ok, was_nonfatal,was_fatal; + char was_ok, was_nonfatal; QResultClass *res = NULL; Int2 oldstatus, numcols; @@ -1221,15 +1221,19 @@ { was_ok = QR_command_successful(res); was_nonfatal = QR_command_nonfatal(res); - was_fatal = QR_command_fatal(res); if (was_ok) SC_set_errornumber(self, STMT_OK); - else if (was_fatal) - SC_set_errornumber(self,STMT_BAD_ERROR); else SC_set_errornumber(self, was_nonfatal ? STMT_INFO_ONLY : STMT_ERROR_TAKEN_FROM_BACKEND); +#ifdef USE_LIBPQ + if (QR_command_fatal(res) && PQstatus(conn->pgconn) == CONNECTION_BAD) + { + SC_set_errornumber(self, STMT_BAD_ERROR); + } +#endif /* USE_LIBPQ */ + /* set cursor before the first tuple in the list */ self->currTuple = -1; SC_set_current_col(self, -1);
В списке pgsql-odbc по дате отправления: