From d70a944e0a54a08586ec8296d9abaf7cb52a9db2 Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
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 37abe11ef6d..3f99e2c66d6 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:
 			{
-- 
GitLab