mirror of
https://github.com/postgres/postgres.git
synced 2025-07-30 11:03:19 +03:00
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:
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* 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 *plantree_list = portal->planTrees;
|
||||||
List *querylist_item;
|
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
|
* Loop to handle the individual queries generated from a
|
||||||
* single parsetree by analysis and rewrite.
|
* single parsetree by analysis and rewrite.
|
||||||
|
Reference in New Issue
Block a user