[PATCH] notice handler

From: "Scot Loach" <sloach(at)sandvine(dot)com>
To: <pgsql-odbc(at)postgresql(dot)org>
Subject: [PATCH] notice handler
Date: 2005-09-17 17:51:45
Message-ID: 71837C040963F748B9B94E123A289678664FB0@mailserver.sandvine.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-odbc

This patch fill fix the notice handler so that the odbc driver doesn't output notices from the backend to stderr.

--- connection.c.old 2005-09-17 13:50:26.000000000 -0400
+++ connection.c 2005-09-17 13:40:11.000000000 -0400
@@ -2349,6 +2349,29 @@
}

#else
+
+static void
+CC_handle_notice(void *arg, const char *msg)
+{
+ QResultClass *qres;
+
+ qres = (QResultClass*)(arg);
+
+ if (qres == NULL)
+ {
+ // No query in progress, so just drop the notice
+ return;
+ }
+
+ if (QR_command_successful(qres))
+ {
+ QR_set_status(qres, PGRES_NONFATAL_ERROR);
+ QR_set_notice(qres, msg); /* will dup this string */
+ mylog("~~~ NOTICE: '%s'\n", msg);
+ qlog("NOTICE from backend during send_query: '%s'\n", msg);
+ }
+}
+
/*
* Connection class implementation using libpq.
* Memory Allocation for PGconn is handled by libpq.
@@ -3161,6 +3184,9 @@
}
/* free the conninfo structure */
free(conninfo);
+
+ /* setup the notice handler */
+ PQsetNoticeProcessor(self->pgconn, CC_handle_notice, NULL);
mylog("connection to the database succeeded.\n");
return 1;
}
@@ -3173,8 +3199,6 @@
PGresult *pgres;
char errbuffer[ERROR_MSG_LENGTH + 1];
int pos=0;
-
- pgres = PQexec(self->pgconn,query);

qres=QR_Constructor();
if(!qres)
@@ -3183,6 +3207,11 @@
QR_Destructor(qres);
return NULL;
}
+
+ PQsetNoticeProcessor(self->pgconn, CC_handle_notice, qres);
+ pgres = PQexec(self->pgconn,query);
+ PQsetNoticeProcessor(self->pgconn, CC_handle_notice, NULL);
+
qres->status = PQresultStatus(pgres);

/* Check the connection status */
@@ -3388,7 +3417,6 @@

}

-
#endif /* USE_LIBPQ */

Responses

Browse pgsql-odbc by date

  From Date Subject
Next Message Dave Page 2005-09-17 22:16:28 Re: [PATCH] fix for wrong error code returned
Previous Message Scot Loach 2005-09-17 17:05:03 [PATCH] fix for wrong error code returned