Commit 4342e6ea authored by Tom Lane's avatar Tom Lane

Fix for extended-query protocol: in event of error, backend was issuing

a ReadyForQuery (Z message) immediately and then another one after the
Sync message arrives.  Suppress the first one to make it work per spec.
parent 94b59fae
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.347 2003/06/11 18:01:14 momjian Exp $ * $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.348 2003/06/20 21:58:02 tgl Exp $
* *
* NOTES * NOTES
* this is the "main" module of the postgres backend and * this is the "main" module of the postgres backend and
...@@ -1947,7 +1947,7 @@ PostgresMain(int argc, char *argv[], const char *username) ...@@ -1947,7 +1947,7 @@ PostgresMain(int argc, char *argv[], const char *username)
char *tmp; char *tmp;
int firstchar; int firstchar;
StringInfo input_message; StringInfo input_message;
bool send_rfq; volatile bool send_rfq = true;
/* /*
* Catch standard options before doing much else. This even works on * Catch standard options before doing much else. This even works on
...@@ -2547,7 +2547,7 @@ PostgresMain(int argc, char *argv[], const char *username) ...@@ -2547,7 +2547,7 @@ PostgresMain(int argc, char *argv[], const char *username)
if (!IsUnderPostmaster) if (!IsUnderPostmaster)
{ {
puts("\nPOSTGRES backend interactive interface "); puts("\nPOSTGRES backend interactive interface ");
puts("$Revision: 1.347 $ $Date: 2003/06/11 18:01:14 $\n"); puts("$Revision: 1.348 $ $Date: 2003/06/20 21:58:02 $\n");
} }
/* /*
...@@ -2627,7 +2627,8 @@ PostgresMain(int argc, char *argv[], const char *username) ...@@ -2627,7 +2627,8 @@ PostgresMain(int argc, char *argv[], const char *username)
/* /*
* If we were handling an extended-query-protocol message, * If we were handling an extended-query-protocol message,
* initiate skip till next Sync. * initiate skip till next Sync. This also causes us not
* to issue ReadyForQuery (until we get Sync).
*/ */
if (doing_extended_query_message) if (doing_extended_query_message)
ignore_till_sync = true; ignore_till_sync = true;
...@@ -2642,7 +2643,8 @@ PostgresMain(int argc, char *argv[], const char *username) ...@@ -2642,7 +2643,8 @@ PostgresMain(int argc, char *argv[], const char *username)
PG_SETMASK(&UnBlockSig); PG_SETMASK(&UnBlockSig);
send_rfq = true; /* initially, or after error */ if (!ignore_till_sync)
send_rfq = true; /* initially, or after error */
/* /*
* Non-error queries loop here. * Non-error queries loop here.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment