diff options
Diffstat (limited to 'src/backend/executor/execUtils.c')
-rw-r--r-- | src/backend/executor/execUtils.c | 18 |
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); } |