Index: src/backend/executor/execMain.c =================================================================== RCS file: /usr/local/cvsroot/pgsql/src/backend/executor/execMain.c,v retrieving revision 1.48 diff -c -r1.48 execMain.c *** execMain.c 1998/06/15 19:28:19 1.48 --- execMain.c 1998/07/19 03:35:49 *************** *** 522,539 **** * SELECT added by daveh@insightdist.com 5/20/98 to allow * ORDER/GROUP BY have an identifier missing from the target. */ - if (operation == CMD_UPDATE || operation == CMD_DELETE || - operation == CMD_INSERT || operation == CMD_SELECT) { ! JunkFilter *j = (JunkFilter *) ExecInitJunkFilter(targetList); ! estate->es_junkFilter = j; ! if (operation == CMD_SELECT) ! tupType = j->jf_cleanTupType; ! } ! else ! estate->es_junkFilter = NULL; /* ---------------- * initialize the "into" relation * ---------------- --- 522,559 ---- * SELECT added by daveh@insightdist.com 5/20/98 to allow * ORDER/GROUP BY have an identifier missing from the target. */ { ! bool junk_filter_needed = false; ! List *tlist; ! if (operation == CMD_SELECT) ! { ! foreach(tlist, targetList) ! { ! TargetEntry *tle = lfirst(tlist); ! ! if (tle->resdom->resjunk) ! { ! junk_filter_needed = true; ! break; ! } ! } ! } + if (operation == CMD_UPDATE || operation == CMD_DELETE || + operation == CMD_INSERT || + (operation == CMD_SELECT && junk_filter_needed)) + { + JunkFilter *j = (JunkFilter *) ExecInitJunkFilter(targetList); + estate->es_junkFilter = j; + + if (operation == CMD_SELECT) + tupType = j->jf_cleanTupType; + } + else + estate->es_junkFilter = NULL; + } + /* ---------------- * initialize the "into" relation * ----------------