mirror of
https://github.com/postgres/postgres.git
synced 2025-06-14 18:42:34 +03:00
execScan.c: in the end of scan projInfo->pi_slot must be
return, not a slot returned from access method (they have different TupleDesc and MergeJoin node was broken). nodeIndexscan.c: index_markpos()/index_restrpos() call index-specific mark/restr funcs and are in use now (instead of IndexScanMarkPosition()/ExecIndexRestrPos()).
This commit is contained in:
@ -11,7 +11,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/executor/execScan.c,v 1.6 1997/09/08 21:43:02 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/executor/execScan.c,v 1.7 1998/02/26 12:13:09 vadim Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -104,11 +104,23 @@ ExecScan(Scan *node,
|
||||
/* ----------------
|
||||
* if the slot returned by the accessMtd contains
|
||||
* NULL, then it means there is nothing more to scan
|
||||
* so we just return the empty slot.
|
||||
* so we just return the empty slot...
|
||||
*
|
||||
* ... with invalid TupleDesc (not the same as in
|
||||
* projInfo->pi_slot) and break upper MergeJoin node.
|
||||
* New code below do what ExecProject() does. - vadim 02/26/98
|
||||
* ----------------
|
||||
*/
|
||||
if (TupIsNull(slot))
|
||||
return slot;
|
||||
{
|
||||
scanstate->cstate.cs_TupFromTlist = false;
|
||||
resultSlot = scanstate->cstate.cs_ProjInfo->pi_slot;
|
||||
return (TupleTableSlot *)
|
||||
ExecStoreTuple (NULL,
|
||||
resultSlot,
|
||||
InvalidBuffer,
|
||||
true);
|
||||
}
|
||||
|
||||
/* ----------------
|
||||
* place the current tuple into the expr context
|
||||
|
Reference in New Issue
Block a user