*** pgsql/src/backend/executor/nodeSubplan.c 2009/06/11 14:48:57 1.99 --- pgsql/src/backend/executor/nodeSubplan.c 2009/09/27 20:09:57 1.100 *************** *** 7,13 **** * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION ! * $PostgreSQL: pgsql/src/backend/executor/nodeSubplan.c,v 1.98 2009/04/02 20:59:10 momjian Exp $ * *------------------------------------------------------------------------- */ --- 7,13 ---- * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION ! * $PostgreSQL: pgsql/src/backend/executor/nodeSubplan.c,v 1.99 2009/06/11 14:48:57 momjian Exp $ * *------------------------------------------------------------------------- */ *************** ExecInitSubPlan(SubPlan *subplan, PlanSt *** 721,727 **** int ncols, i; TupleDesc tupDesc; - TupleTable tupTable; TupleTableSlot *slot; List *oplist, *lefttlist, --- 721,726 ---- *************** ExecInitSubPlan(SubPlan *subplan, PlanSt *** 853,867 **** } /* - * Create a tupletable to hold these tuples. (Note: we never bother - * to free the tupletable explicitly; that's okay because it will - * never store raw disk tuples that might have associated buffer pins. - * The only resource involved is memory, which will be cleaned up by - * freeing the query context.) - */ - tupTable = ExecCreateTupleTable(2); - - /* * Construct tupdescs, slots and projection nodes for left and right * sides. The lefthand expressions will be evaluated in the parent * plan node's exprcontext, which we don't have access to here. --- 852,857 ---- *************** ExecInitSubPlan(SubPlan *subplan, PlanSt *** 870,876 **** * own innerecontext. */ tupDesc = ExecTypeFromTL(leftptlist, false); ! slot = ExecAllocTableSlot(tupTable); ExecSetSlotDescriptor(slot, tupDesc); sstate->projLeft = ExecBuildProjectionInfo(lefttlist, NULL, --- 860,866 ---- * own innerecontext. */ tupDesc = ExecTypeFromTL(leftptlist, false); ! slot = ExecInitExtraTupleSlot(estate); ExecSetSlotDescriptor(slot, tupDesc); sstate->projLeft = ExecBuildProjectionInfo(lefttlist, NULL, *************** ExecInitSubPlan(SubPlan *subplan, PlanSt *** 878,884 **** NULL); tupDesc = ExecTypeFromTL(rightptlist, false); ! slot = ExecAllocTableSlot(tupTable); ExecSetSlotDescriptor(slot, tupDesc); sstate->projRight = ExecBuildProjectionInfo(righttlist, sstate->innerecontext, --- 868,874 ---- NULL); tupDesc = ExecTypeFromTL(rightptlist, false); ! slot = ExecInitExtraTupleSlot(estate); ExecSetSlotDescriptor(slot, tupDesc); sstate->projRight = ExecBuildProjectionInfo(righttlist, sstate->innerecontext,