Remove finger from dike: composite types are now allowed as table columns.

Still a few things to do, like binary I/O and regression tests and docs,
but might as well let people play with the toy.
This commit is contained in:
Tom Lane 2004-06-06 04:52:55 +00:00
parent a3704d3dec
commit f24c5098fd

View File

@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/catalog/heap.c,v 1.267 2004/06/04 03:24:04 tgl Exp $ * $PostgreSQL: pgsql/src/backend/catalog/heap.c,v 1.268 2004/06/06 04:52:55 tgl Exp $
* *
* *
* INTERFACE ROUTINES * INTERFACE ROUTINES
@ -417,9 +417,9 @@ CheckAttributeType(const char *attname, Oid atttypid)
* (usually as a result of a 'retrieve into' - jolly) * (usually as a result of a 'retrieve into' - jolly)
* *
* Refuse any attempt to create a pseudo-type column or one that uses a * Refuse any attempt to create a pseudo-type column or one that uses a
* composite type. (Eventually we would like to allow standalone * non-standalone composite type. (We could support using table rowtypes
* composite types, but that needs some nontrivial work yet, * as attributes, if we were willing to make ALTER TABLE hugely more
* particularly TOAST support.) * complex, but for now let's limit the damage ...)
*/ */
if (atttypid == UNKNOWNOID) if (atttypid == UNKNOWNOID)
ereport(WARNING, ereport(WARNING,
@ -437,11 +437,9 @@ CheckAttributeType(const char *attname, Oid atttypid)
} }
else if (att_typtype == 'c') else if (att_typtype == 'c')
{ {
#if 0
Oid typrelid = get_typ_typrelid(atttypid); 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, ereport(ERROR,
(errcode(ERRCODE_INVALID_TABLE_DEFINITION), (errcode(ERRCODE_INVALID_TABLE_DEFINITION),
errmsg("column \"%s\" has composite type %s", errmsg("column \"%s\" has composite type %s",