summaryrefslogtreecommitdiff
path: root/src/backend/executor/execUtils.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/executor/execUtils.c')
-rw-r--r--src/backend/executor/execUtils.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/backend/executor/execUtils.c b/src/backend/executor/execUtils.c
index 7799ed4d935..c2bd2de48ab 100644
--- a/src/backend/executor/execUtils.c
+++ b/src/backend/executor/execUtils.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/executor/execUtils.c,v 1.86 2002/06/26 21:58:56 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/executor/execUtils.c,v 1.87 2002/07/20 05:16:58 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -290,9 +290,23 @@ ExecAssignResultTypeFromOuterPlan(Plan *node, CommonState *commonstate)
void
ExecAssignResultTypeFromTL(Plan *node, CommonState *commonstate)
{
+ ResultRelInfo *ri;
+ Relation rel;
+ hasoid_t withoid;
TupleDesc tupDesc;
- tupDesc = ExecTypeFromTL(node->targetlist);
+ ri = node->state->es_result_relation_info;
+ if (ri != NULL)
+ rel = ri->ri_RelationDesc;
+ else
+ rel = node->state->es_into_relation_descriptor;
+
+ if (rel != NULL)
+ withoid = BoolToHasOid(rel->rd_rel->relhasoids);
+ else
+ withoid = WITHOUTOID;
+
+ tupDesc = ExecTypeFromTL(node->targetlist, withoid);
ExecAssignResultType(commonstate, tupDesc, true);
}