diff options
Diffstat (limited to 'src/backend/parser/parse_target.c')
-rw-r--r-- | src/backend/parser/parse_target.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/backend/parser/parse_target.c b/src/backend/parser/parse_target.c index e77183387d7..35d0db803a2 100644 --- a/src/backend/parser/parse_target.c +++ b/src/backend/parser/parse_target.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/parse_target.c,v 1.31 1998/12/04 15:34:30 thomas Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/parse_target.c,v 1.32 1998/12/13 23:56:44 thomas Exp $ * *------------------------------------------------------------------------- */ @@ -32,7 +32,7 @@ static List *ExpandAllTables(ParseState *pstate); -static char *FigureColname(Node *expr, Node *resval); +char *FigureColname(Node *expr, Node *resval); static Node *SizeTargetExpr(ParseState *pstate, Node *expr, @@ -867,7 +867,7 @@ ExpandAllTables(ParseState *pstate) * list, we have to guess. * */ -static char * +char * FigureColname(Node *expr, Node *resval) { switch (nodeTag(expr)) @@ -881,6 +881,15 @@ FigureColname(Node *expr, Node *resval) return ((FuncCall *) resval)->funcname; } break; + case T_CaseExpr: + { + char *name; + name = FigureColname(((CaseExpr *) expr)->defresult, resval); + if (!strcmp(name, "?column?")) + name = "case"; + return name; + } + break; default: break; } |