*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-exec.c,v 1.18 1996/09/16 05:50:46 scrappy Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-exec.c,v 1.19 1996/11/20 22:35:19 momjian Exp $
*
*-------------------------------------------------------------------------
*/
PQexec(PGconn* conn, const char* query)
{
PGresult *result;
- int id, clear;
+ int id, clear, error;
char buffer[MAX_MESSAGE_LEN];
char cmdStatus[MAX_MESSAGE_LEN];
char pname[MAX_MESSAGE_LEN]; /* portal name */
// until an 'I' is received.
*/
clear = 0;
+ error = 0;
pqPuts("Q ",pfout,pfdebug); /* send an empty query */
#ifdef PQ_NOTIFY_PATCH
{
if (pqGets(buffer,ERROR_MSG_LENGTH,pfin,pfdebug) == 1)
clear = 1;
+ /*
+ // Rules can create error messages while we are waiting
+ // for the 'I'.
+ */
+ if (buffer[0] == 'E') {
+ strcpy(conn->errorMessage, &buffer[1]);
+ error++;
+ }
clear = (buffer[0] == 'I');
}
+ if (error) {
+ return (PGresult*)NULL;
+ }
result = makeEmptyPGresult(conn,PGRES_COMMAND_OK);
strncpy(result->cmdStatus,cmdStatus, CMDSTATUS_LEN-1);
return result;