diff --git a/src/backend/tcop/pquery.c b/src/backend/tcop/pquery.c index 0cb7865a9f66b8276cf660ae037bc5d69fc5ed4c..e3a37b7310e2f532f088f48929a309ad46052924 100644 --- a/src/backend/tcop/pquery.c +++ b/src/backend/tcop/pquery.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/tcop/pquery.c,v 1.62 2003/05/06 20:26:27 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/tcop/pquery.c,v 1.63 2003/05/06 21:01:04 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -727,6 +727,23 @@ PortalRunMulti(Portal portal, List *plantree_list = portal->planTrees; List *querylist_item; + /* + * If the destination is RemoteExecute, change to None. The reason + * is that the client won't be expecting any tuples, and indeed has no + * way to know what they are, since there is no provision for Describe + * to send a RowDescription message when this portal execution strategy + * is in effect. This presently will only affect SELECT commands added + * to non-SELECT queries by rewrite rules: such commands will be executed, + * but the results will be discarded unless you use "simple Query" + * protocol. + */ + if (dest->mydest == RemoteExecute || + dest->mydest == RemoteExecuteInternal) + dest = None_Receiver; + if (altdest->mydest == RemoteExecute || + altdest->mydest == RemoteExecuteInternal) + altdest = None_Receiver; + /* * Loop to handle the individual queries generated from a * single parsetree by analysis and rewrite.