|
26 | 26 | *
|
27 | 27 | *
|
28 | 28 | * IDENTIFICATION
|
29 |
| - * $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.48 1998/06/15 19:28:19 momjian Exp $ |
| 29 | + * $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.49 1998/07/19 03:46:29 momjian Exp $ |
30 | 30 | *
|
31 | 31 | *-------------------------------------------------------------------------
|
32 | 32 | */
|
@@ -522,18 +522,38 @@ InitPlan(CmdType operation, Query *parseTree, Plan *plan, EState *estate)
|
522 | 522 | * SELECT added by daveh@insightdist.com 5/20/98 to allow
|
523 | 523 | * ORDER/GROUP BY have an identifier missing from the target.
|
524 | 524 | */
|
525 |
| -if (operation==CMD_UPDATE||operation==CMD_DELETE|| |
526 |
| -operation==CMD_INSERT||operation==CMD_SELECT) |
527 | 525 | {
|
528 |
| -JunkFilter*j= (JunkFilter*)ExecInitJunkFilter(targetList); |
529 |
| -estate->es_junkFilter=j; |
530 |
| - |
| 526 | +booljunk_filter_needed= false; |
| 527 | +List*tlist; |
| 528 | +
|
531 | 529 | if (operation==CMD_SELECT)
|
532 |
| -tupType=j->jf_cleanTupType; |
533 |
| -} |
534 |
| -else |
535 |
| -estate->es_junkFilter=NULL; |
| 530 | +{ |
| 531 | +foreach(tlist,targetList) |
| 532 | +{ |
| 533 | +TargetEntry*tle=lfirst(tlist); |
| 534 | + |
| 535 | +if (tle->resdom->resjunk) |
| 536 | +{ |
| 537 | +junk_filter_needed= true; |
| 538 | +break; |
| 539 | +} |
| 540 | +} |
| 541 | +} |
| 542 | + |
| 543 | +if (operation==CMD_UPDATE||operation==CMD_DELETE|| |
| 544 | +operation==CMD_INSERT|| |
| 545 | +(operation==CMD_SELECT&&junk_filter_needed)) |
| 546 | +{ |
| 547 | +JunkFilter*j= (JunkFilter*)ExecInitJunkFilter(targetList); |
| 548 | +estate->es_junkFilter=j; |
536 | 549 |
|
| 550 | +if (operation==CMD_SELECT) |
| 551 | +tupType=j->jf_cleanTupType; |
| 552 | +} |
| 553 | +else |
| 554 | +estate->es_junkFilter=NULL; |
| 555 | +} |
| 556 | + |
537 | 557 | /* ----------------
|
538 | 558 | *initialize the "into" relation
|
539 | 559 | * ----------------
|
|