mirror of
https://github.com/postgres/postgres.git
synced 2025-04-24 10:47:04 +03:00
We have to return dummy tuple for empty targetlist!
Try select t1.x from t1, t2 where t1.y = 1 and t2.y = 1 - t2 scan target list will be empty and so no one tuple will be returned...
This commit is contained in:
parent
f8f0efb43d
commit
2a76aa23e0
@ -7,7 +7,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/executor/execQual.c,v 1.46 1999/02/23 07:33:44 thomas Exp $
|
* $Header: /cvsroot/pgsql/src/backend/executor/execQual.c,v 1.47 1999/03/10 12:16:09 vadim Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -1474,10 +1474,15 @@ ExecTargetList(List *targetlist,
|
|||||||
* is this a new phenomenon? it might cause bogus behavior
|
* is this a new phenomenon? it might cause bogus behavior
|
||||||
* if we try to free this tuple later!! I put a hook in
|
* if we try to free this tuple later!! I put a hook in
|
||||||
* ExecProject to watch out for this case -mer 24 Aug 1992
|
* ExecProject to watch out for this case -mer 24 Aug 1992
|
||||||
|
*
|
||||||
|
* We must return dummy tuple!!! Try
|
||||||
|
* select t1.x from t1, t2 where t1.y = 1 and t2.y = 1
|
||||||
|
* - t2 scan target list will be empty and so no one tuple
|
||||||
|
* will be returned! But Mer was right - dummy tuple
|
||||||
|
* must be palloced... - vadim 03/01/1999
|
||||||
*/
|
*/
|
||||||
CXT1_printf("ExecTargetList: context is %d\n", CurrentMemoryContext);
|
|
||||||
*isDone = true;
|
*isDone = true;
|
||||||
return (HeapTuple) true;
|
return (HeapTuple) palloc(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1640,12 +1645,6 @@ ExecProject(ProjectionInfo *projInfo, bool *isDone)
|
|||||||
tupValue = projInfo->pi_tupValue;
|
tupValue = projInfo->pi_tupValue;
|
||||||
econtext = projInfo->pi_exprContext;
|
econtext = projInfo->pi_exprContext;
|
||||||
|
|
||||||
if (targetlist == NIL)
|
|
||||||
{
|
|
||||||
*isDone = true;
|
|
||||||
return (TupleTableSlot *) NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* form a new (result) tuple
|
* form a new (result) tuple
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user