Ensure that an Execute operation can't send tuples in cases where
Describe would claim that no tuples will be returned. Only affects SELECTs added to non-SELECT base queries by rewrite rules. If you want to see the output of such a select, you gotta use 'simple Query' protocol.
This commit is contained in:
parent
79913910d4
commit
8f6a6b7e9a
@ -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.
|
||||
|
Loading…
x
Reference in New Issue
Block a user