From d70a944e0a54a08586ec8296d9abaf7cb52a9db2 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Mon, 10 Sep 2001 14:53:10 +0000 Subject: [PATCH] Bug #1: attribute name when column is type cast: Given the following table: test=# \d f Table "f" Column | Type | Modifiers --------+---------+----------- i | integer | test | text | If I do the following: test=# insert into f values(1,'test'); INSERT 139549 1 test=# select i::int8,test from f; ?column? | test ----------+------ 1 | test (1 row) It doesn't make much sense that the first column should be called '?column?'. The patch results in the output appearing like this: test=# select i::int8,test from f; i | test ---+------ 1 | test (1 row) ---------- Gavin Sherry --- src/backend/parser/parse_target.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/backend/parser/parse_target.c b/src/backend/parser/parse_target.c index 37abe11ef6..3f99e2c66d 100644 --- a/src/backend/parser/parse_target.c +++ b/src/backend/parser/parse_target.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/parse_target.c,v 1.70 2001/08/09 18:28:18 petere Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/parse_target.c,v 1.71 2001/09/10 14:53:10 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -462,7 +462,10 @@ FigureColname(Node *expr, Node *resval) /* Some of these are easiest to do with the untransformed node */ switch (nodeTag(resval)) { - case T_Ident: + case T_TypeCast: + return( ( ((Ident *) ((TypeCast *) resval)->arg)->name)); + + case T_Ident: return ((Ident *) resval)->name; case T_Attr: {