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 d67d62053118747d86b1ce14ec8b8404d8a6bcae..a5076fece74fe3edbbb0a5b9826f50118b77a0ed 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 525c2eef251db0dc6ee5da62484dec8c4d5f5382..104716bf4557b8253593eb0ee6f19b647cf48d23 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);
 }