diff options
Diffstat (limited to 'src/backend/parser/parse_clause.c')
-rw-r--r-- | src/backend/parser/parse_clause.c | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/src/backend/parser/parse_clause.c b/src/backend/parser/parse_clause.c index aad47e077b3..fd53155b7f7 100644 --- a/src/backend/parser/parse_clause.c +++ b/src/backend/parser/parse_clause.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/parse_clause.c,v 1.18 1998/06/05 03:49:18 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/parse_clause.c,v 1.19 1998/07/08 14:04:10 thomas Exp $ * *------------------------------------------------------------------------- */ @@ -198,29 +198,31 @@ find_targetlist_entry(ParseState *pstate, SortGroupBy *sortgroupby, List *tlist) List *p_target = tlist; TargetEntry *tent = makeNode(TargetEntry); - if (sortgroupby->range) { - Attr *missingTarget = (Attr *)makeNode(Attr); - missingTarget->type = T_Attr; + Attr *missingAttr = (Attr *)makeNode(Attr); + missingAttr->type = T_Attr; - missingTarget->relname = palloc(strlen(sortgroupby->range) + 1); - strcpy(missingTarget->relname, sortgroupby->range); + missingAttr->relname = palloc(strlen(sortgroupby->range) + 1); + strcpy(missingAttr->relname, sortgroupby->range); - missingTarget->attrs = lcons(makeString(sortgroupby->name), NIL); + missingAttr->attrs = lcons(makeString(sortgroupby->name), NIL); - transformTargetId(pstate, (Node*)missingTarget, tent, sortgroupby->name, TRUE); + tent = transformTargetIdent(pstate, (Node *)missingAttr, tent, + &missingAttr->relname, NULL, + missingAttr->relname, TRUE); } else { - Ident *missingTarget = (Ident *)makeNode(Ident); - missingTarget->type = T_Ident; + Ident *missingIdent = (Ident *)makeNode(Ident); + missingIdent->type = T_Ident; - missingTarget->name = palloc(strlen(sortgroupby->name) + 1); - strcpy(missingTarget->name, sortgroupby->name); + missingIdent->name = palloc(strlen(sortgroupby->name) + 1); + strcpy(missingIdent->name, sortgroupby->name); - transformTargetId(pstate, (Node*)missingTarget, tent, sortgroupby->name, TRUE); + tent = transformTargetIdent(pstate, (Node *)missingIdent, tent, + &missingIdent->name, NULL, + missingIdent->name, TRUE); } - /* Add to the end of the target list */ while (lnext(p_target) != NIL) { p_target = lnext(p_target); @@ -457,7 +459,7 @@ transformUnionClause(List *unionClause, List *targetlist) Node *expr; expr = ((TargetEntry *)lfirst(next_target))->expr; - expr = coerce_target_expr(NULL, expr, itype, otype); + expr = CoerceTargetExpr(NULL, expr, itype, otype); if (expr == NULL) { elog(ERROR,"Unable to transform %s to %s" |