aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor/execScan.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/executor/execScan.c')
-rw-r--r--src/backend/executor/execScan.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/backend/executor/execScan.c b/src/backend/executor/execScan.c
index 6c9a16a12b4..e04876c3317 100644
--- a/src/backend/executor/execScan.c
+++ b/src/backend/executor/execScan.c
@@ -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