|
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 | + bool junk_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 | * ----------------
|
|
0 commit comments