Reversed out libpq protocol patch for Tom Lane.

This commit is contained in:
Bruce Momjian 1999-03-14 18:12:21 +00:00
parent 8930699cd6
commit d66a44a58c
2 changed files with 5 additions and 26 deletions

View File

@ -11220,7 +11220,7 @@ case 468:
case 469:
#line 2621 "preproc.y"
{
yyval.str = yyvsp[0].str
yyval.str = yyvsp[0].str;
;
break;}
case 470:

View File

@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-exec.c,v 1.76 1999/03/14 16:46:21 momjian Exp $
* $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-exec.c,v 1.77 1999/03/14 18:12:21 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@ -467,7 +467,6 @@ static void
parseInput(PGconn *conn)
{
char id;
static int pendingT = 0;
/*
* Loop to parse successive complete messages available in the buffer.
@ -536,16 +535,7 @@ parseInput(PGconn *conn)
PGRES_COMMAND_OK);
if (pqGets(conn->result->cmdStatus, CMDSTATUS_LEN, conn))
return;
if (pendingT) {
/* Check the returned message */
/* if it's a SELECT or FETCH in a pendingT case, */
/* then it probably means no rows returned. */
/* We clear pendingT in that case. */
if ((strncmp(conn->result->cmdStatus, "SELECT", 6) == 0) ||
(strncmp(conn->result->cmdStatus, "FETCH", 5) == 0))
pendingT = 0;
}
if (!pendingT) conn->asyncStatus = PGASYNC_READY;
conn->asyncStatus = PGASYNC_READY;
break;
case 'E': /* error return */
if (pqGets(conn->errorMessage, ERROR_MSG_LENGTH, conn))
@ -555,11 +545,10 @@ parseInput(PGconn *conn)
/* and build an error result holding the error message */
conn->result = PQmakeEmptyPGresult(conn,
PGRES_FATAL_ERROR);
if (!pendingT) conn->asyncStatus = PGASYNC_READY;
conn->asyncStatus = PGASYNC_READY;
break;
case 'Z': /* backend is ready for new query */
conn->asyncStatus = PGASYNC_IDLE;
pendingT = 0;
break;
case 'I': /* empty query */
/* read and throw away the closing '\0' */
@ -574,7 +563,7 @@ parseInput(PGconn *conn)
if (conn->result == NULL)
conn->result = PQmakeEmptyPGresult(conn,
PGRES_EMPTY_QUERY);
if (!pendingT) conn->asyncStatus = PGASYNC_READY;
conn->asyncStatus = PGASYNC_READY;
break;
case 'K': /* secret key data from the backend */
@ -595,15 +584,11 @@ parseInput(PGconn *conn)
break;
case 'T': /* row descriptions (start of query
* results) */
if (pendingT) {
DONOTICE(conn, "Got second 'T' message!\n");
}
if (conn->result == NULL)
{
/* First 'T' in a query sequence */
if (getRowDescriptions(conn))
return;
pendingT = 1;
}
else
{
@ -615,13 +600,11 @@ parseInput(PGconn *conn)
* We stop parsing until the application accepts
* the current result.
*/
pendingT = 0;
conn->asyncStatus = PGASYNC_READY;
return;
}
break;
case 'D': /* ASCII data tuple */
pendingT = 0;
if (conn->result != NULL)
{
/* Read another tuple of a normal query response */
@ -639,7 +622,6 @@ parseInput(PGconn *conn)
}
break;
case 'B': /* Binary data tuple */
pendingT = 0;
if (conn->result != NULL)
{
/* Read another tuple of a normal query response */
@ -657,15 +639,12 @@ parseInput(PGconn *conn)
}
break;
case 'G': /* Start Copy In */
pendingT = 0;
conn->asyncStatus = PGASYNC_COPY_IN;
break;
case 'H': /* Start Copy Out */
pendingT = 0;
conn->asyncStatus = PGASYNC_COPY_OUT;
break;
default:
pendingT = 0;
sprintf(conn->errorMessage,
"unknown protocol character '%c' read from backend. "
"(The protocol character is the first character the "