From: Tom Lane Date: Fri, 4 Jun 2004 03:24:04 +0000 (+0000) Subject: Remove some long-obsolete code that was causing a strange error message X-Git-Tag: REL8_0_0BETA1~439 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=223b813d0ef76eebcb74f405cb77ed8855b37f4b;p=postgresql Remove some long-obsolete code that was causing a strange error message 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. --- diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c index d67d620531..a5076fece7 100644 --- a/src/backend/catalog/heap.c +++ b/src/backend/catalog/heap.c @@ -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", diff --git a/src/backend/parser/analyze.c b/src/backend/parser/analyze.c index 525c2eef25..104716bf45 100644 --- a/src/backend/parser/analyze.c +++ b/src/backend/parser/analyze.c @@ -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); }