diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2004-06-04 03:24:04 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2004-06-04 03:24:04 +0000 |
commit | 223b813d0ef76eebcb74f405cb77ed8855b37f4b (patch) | |
tree | ebbcdcfc0269ea9c350d0f9460abbea885f16c57 /src | |
parent | 7eb2ff799e0bfcc59d160964f0aafed4901db4ba (diff) | |
download | postgresql-223b813d0ef76eebcb74f405cb77ed8855b37f4b.tar.gz postgresql-223b813d0ef76eebcb74f405cb77ed8855b37f4b.zip |
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.
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/catalog/heap.c | 12 | ||||
-rw-r--r-- | src/backend/parser/analyze.c | 19 |
2 files changed, 10 insertions, 21 deletions
diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c index d67d6205311..a5076fece74 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 525c2eef251..104716bf455 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); } |