aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/interfaces/libpq/fe-protocol3.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/interfaces/libpq/fe-protocol3.c b/src/interfaces/libpq/fe-protocol3.c
index 15de69007d1..cc2546128c5 100644
--- a/src/interfaces/libpq/fe-protocol3.c
+++ b/src/interfaces/libpq/fe-protocol3.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-protocol3.c,v 1.6 2003/08/04 02:40:20 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-protocol3.c,v 1.7 2003/08/12 21:34:44 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -232,8 +232,7 @@ pqParseInput3(PGconn *conn)
if (pqGetInt(&(conn->be_key), 4, conn))
return;
break;
- case 'T': /* row descriptions (start of query
- * results) */
+ case 'T': /* Row Description */
if (conn->result == NULL)
{
/* First 'T' in a query sequence */
@@ -253,6 +252,17 @@ pqParseInput3(PGconn *conn)
return;
}
break;
+ case 'n': /* No Data */
+ /*
+ * NoData indicates that we will not be seeing a
+ * RowDescription message because the statement or
+ * portal inquired about doesn't return rows.
+ * Set up a COMMAND_OK result, instead of TUPLES_OK.
+ */
+ if (conn->result == NULL)
+ conn->result = PQmakeEmptyPGresult(conn,
+ PGRES_COMMAND_OK);
+ break;
case 'D': /* Data Row */
if (conn->result != NULL &&
conn->result->resultStatus == PGRES_TUPLES_OK)