diff options
author | Vadim B. Mikheev <vadim4o@yahoo.com> | 1998-02-26 12:13:11 +0000 |
---|---|---|
committer | Vadim B. Mikheev <vadim4o@yahoo.com> | 1998-02-26 12:13:11 +0000 |
commit | 8749b6c7948f5f7a995acc74467cecb8be81f048 (patch) | |
tree | 3710d7cb895509a8a98800c0e2c31d8dfbbeed27 /src/backend/executor/execScan.c | |
parent | 2c2b98385a29e24d33e4b57076319ee31982826e (diff) | |
download | postgresql-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.c | 18 |
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 |