Fixed CREATE TYPE to recognize changed parsenodes
authorJan Wieck
Thu, 13 Apr 2000 11:51:07 +0000 (11:51 +0000)
committerJan Wieck
Thu, 13 Apr 2000 11:51:07 +0000 (11:51 +0000)
Jan

src/backend/commands/define.c

index c77b467089b3619edcb158e3a08140c6bdd9bb59..b7e7edd3736f200e5b6cce1232c6972577b490b6 100644 (file)
@@ -10,7 +10,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/commands/define.c,v 1.40 2000/04/12 17:14:58 momjian Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/commands/define.c,v 1.41 2000/04/13 11:51:07 wieck Exp $
  *
  * DESCRIPTION
  *   The "DefineFoo" routines take the parse tree and pick out the
@@ -631,7 +631,7 @@ DefineType(char *typeName, List *parameters)
 
            if (!strcasecmp(a, "double"))
                alignment = 'd';
-           else if (!strcasecmp(a, "int"))
+           else if (!strcasecmp(a, "int4"))
                alignment = 'i';
            else
            {
@@ -741,8 +741,11 @@ defGetTypeLength(DefElem *def)
    if (nodeTag(def->arg) == T_Integer)
        return intVal(def->arg);
    else if (nodeTag(def->arg) == T_String &&
-            !strcasecmp(strVal(def->arg), "variable"))
+           !strcasecmp(strVal(def->arg), "variable"))
        return -1;              /* variable length */
+   else if (nodeTag(def->arg) == T_TypeName &&
+           !strcasecmp(((TypeName *)(def->arg))->name, "variable"))
+       return -1;
 
    elog(ERROR, "Define: \"%s\" = what?", def->defname);
    return -1;