aboutsummaryrefslogtreecommitdiff
path: root/src/backend/parser/parse_target.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/parser/parse_target.c')
-rw-r--r--src/backend/parser/parse_target.c24
1 files changed, 19 insertions, 5 deletions
diff --git a/src/backend/parser/parse_target.c b/src/backend/parser/parse_target.c
index cc56cb6d183..1df2d285a5b 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.79 2002/03/22 02:56:34 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/parse_target.c,v 1.80 2002/03/29 19:06:12 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -525,8 +525,15 @@ FigureColnameInternal(Node *node, char **name)
case T_A_Const:
if (((A_Const *) node)->typename != NULL)
{
- *name = ((A_Const *) node)->typename->name;
- return 1;
+ List *names = ((A_Const *) node)->typename->names;
+
+ if (names != NIL)
+ {
+ while (lnext(names) != NIL)
+ names = lnext(names);
+ *name = strVal(lfirst(names));
+ return 1;
+ }
}
break;
case T_TypeCast:
@@ -536,8 +543,15 @@ FigureColnameInternal(Node *node, char **name)
{
if (((TypeCast *) node)->typename != NULL)
{
- *name = ((TypeCast *) node)->typename->name;
- return 1;
+ List *names = ((TypeCast *) node)->typename->names;
+
+ if (names != NIL)
+ {
+ while (lnext(names) != NIL)
+ names = lnext(names);
+ *name = strVal(lfirst(names));
+ return 1;
+ }
}
}
break;