1
0
mirror of https://github.com/postgres/postgres.git synced 2025-06-29 10:41:53 +03:00

Improve CASE statement support.

Try to label CASE columns for a SELECT if not specified with an AS clause.
This commit is contained in:
Thomas G. Lockhart
1998-12-13 23:56:44 +00:00
parent 44cf948467
commit 2b189aa953
2 changed files with 22 additions and 16 deletions

View File

@ -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;
}