[PATCH] fix for wrong error code returned

From: "Scot Loach" <sloach(at)sandvine(dot)com>
To: <pgsql-odbc(at)postgresql(dot)org>, <dpage(at)vale-housing(dot)co(dot)uk>
Subject: [PATCH] fix for wrong error code returned
Date: 2005-09-17 17:05:03
Message-ID: 71837C040963F748B9B94E123A2896785A1094@mailserver.sandvine.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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);

Browse pgsql-odbc by date

  From Date Subject
Next Message Scot Loach 2005-09-17 17:51:45 [PATCH] notice handler
Previous Message Andrey Repko 2005-09-17 11:09:48 client encoding mismatch