aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor/execScan.c
diff options
context:
space:
mode:
authorVadim B. Mikheev <vadim4o@yahoo.com>1998-02-26 12:13:11 +0000
committerVadim B. Mikheev <vadim4o@yahoo.com>1998-02-26 12:13:11 +0000
commit8749b6c7948f5f7a995acc74467cecb8be81f048 (patch)
tree3710d7cb895509a8a98800c0e2c31d8dfbbeed27 /src/backend/executor/execScan.c
parent2c2b98385a29e24d33e4b57076319ee31982826e (diff)
downloadpostgresql-8749b6c7948f5f7a995acc74467cecb8be81f048.tar.gz
postgresql-8749b6c7948f5f7a995acc74467cecb8be81f048.zip
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()).
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