aboutsummaryrefslogtreecommitdiff
path: root/src/backend/parser/parse_target.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2002-03-29 19:06:29 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2002-03-29 19:06:29 +0000
commitd5e99ab4d6718e8ef515575e33fb5c6181cdcc96 (patch)
tree6c817d6358f50ae920207245c3b862b2cdd74ceb /src/backend/parser/parse_target.c
parent7c1ff354105e2256d7904497d8e282ccec53d2e6 (diff)
downloadpostgresql-d5e99ab4d6718e8ef515575e33fb5c6181cdcc96.tar.gz
postgresql-d5e99ab4d6718e8ef515575e33fb5c6181cdcc96.zip
pg_type has a typnamespace column; system now supports creating types
in different namespaces. Also, cleanup work on relation namespace support: drop, alter, rename commands work for tables in non-default namespaces.
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;