mirror of
https://github.com/postgres/postgres.git
synced 2025-09-02 04:21:28 +03:00
When using a junkfilter, the output tuple should NOT be stored back into
the same tuple slot that the raw tuple came from, because that slot has the wrong tuple descriptor. Store it into its own slot with the correct descriptor, instead. This repairs problems with SPI functions seeing inappropriate tuple descriptors --- for example, plpgsql code failing to cope with SELECT FOR UPDATE.
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: executor.h,v 1.57 2001/03/22 04:00:44 momjian Exp $
|
||||
* $Id: executor.h,v 1.58 2001/05/27 20:48:51 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -43,7 +43,8 @@ extern void ExecRestrPos(Plan *node);
|
||||
/*
|
||||
* prototypes from functions in execJunk.c
|
||||
*/
|
||||
extern JunkFilter *ExecInitJunkFilter(List *targetList, TupleDesc tupType);
|
||||
extern JunkFilter *ExecInitJunkFilter(List *targetList, TupleDesc tupType,
|
||||
TupleTableSlot *slot);
|
||||
extern void ExecFreeJunkFilter(JunkFilter *junkfilter);
|
||||
extern bool ExecGetJunkAttribute(JunkFilter *junkfilter, TupleTableSlot *slot,
|
||||
char *attrName, Datum *value, bool *isNull);
|
||||
|
Reference in New Issue
Block a user