OSDN Git Service

Remove some long-obsolete code that was causing a strange error message
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 4 Jun 2004 03:24:04 +0000 (03:24 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 4 Jun 2004 03:24:04 +0000 (03:24 +0000)
when someone attempts to create a column of a composite datatype.  For
now, just make sure we produce a reasonable error at the 'right place'.
Not sure if this will be made to work before 7.5, but make it act
reasonably in case nothing more gets done.

src/backend/catalog/heap.c
src/backend/parser/analyze.c

index d67d620..a5076fe 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/backend/catalog/heap.c,v 1.266 2004/05/31 19:24:05 tgl Exp $
+ *       $PostgreSQL: pgsql/src/backend/catalog/heap.c,v 1.267 2004/06/04 03:24:04 tgl Exp $
  *
  *
  * INTERFACE ROUTINES
@@ -417,9 +417,9 @@ CheckAttributeType(const char *attname, Oid atttypid)
         * (usually as a result of a 'retrieve into' - jolly)
         *
         * Refuse any attempt to create a pseudo-type column or one that uses a
-        * standalone composite type.  (Eventually we should probably refuse
-        * all references to complex types, but for now there's still some
-        * Berkeley-derived code that thinks it can do this...)
+        * composite type.  (Eventually we would like to allow standalone
+        * composite types, but that needs some nontrivial work yet,
+        * particularly TOAST support.)
         */
        if (atttypid == UNKNOWNOID)
                ereport(WARNING,
@@ -437,9 +437,11 @@ CheckAttributeType(const char *attname, Oid atttypid)
        }
        else if (att_typtype == 'c')
        {
+#if 0
                Oid                     typrelid = get_typ_typrelid(atttypid);
 
-               if (get_rel_relkind(typrelid) == RELKIND_COMPOSITE_TYPE)
+               if (get_rel_relkind(typrelid) != RELKIND_COMPOSITE_TYPE)
+#endif
                        ereport(ERROR,
                                        (errcode(ERRCODE_INVALID_TABLE_DEFINITION),
                                         errmsg("column \"%s\" has composite type %s",
index 525c2ee..104716b 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- *     $PostgreSQL: pgsql/src/backend/parser/analyze.c,v 1.302 2004/05/30 23:40:32 neilc Exp $
+ *     $PostgreSQL: pgsql/src/backend/parser/analyze.c,v 1.303 2004/06/04 03:24:04 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -3049,23 +3049,10 @@ makeFromExpr(List *fromlist, Node *quals)
 static void
 transformColumnType(ParseState *pstate, ColumnDef *column)
 {
-       TypeName   *typename = column->typename;
-       Type            ctype = typenameType(typename);
-
        /*
-        * Is this the name of a complex type? If so, implement it as a set.
-        *
-        * XXX this is a hangover from ancient Berkeley code that probably
-        * doesn't work anymore anyway.
+        * All we really need to do here is verify that the type is valid.
         */
-       if (typeTypeRelid(ctype) != InvalidOid)
-       {
-               /*
-                * (Eventually add in here that the set can only contain one
-                * element.)
-                */
-               typename->setof = true;
-       }
+       Type            ctype = typenameType(column->typename);
 
        ReleaseSysCache(ctype);
 }