[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 по дате отправления:

Предыдущее
От: Andrey Repko
Дата:
Сообщение: client encoding mismatch
Следующее
От: "Scot Loach"
Дата:
Сообщение: [PATCH] notice handler