aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2004-06-04 03:24:04 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2004-06-04 03:24:04 +0000
commit223b813d0ef76eebcb74f405cb77ed8855b37f4b (patch)
treeebbcdcfc0269ea9c350d0f9460abbea885f16c57
parent7eb2ff799e0bfcc59d160964f0aafed4901db4ba (diff)
downloadpostgresql-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.
-rw-r--r--src/backend/catalog/heap.c12
-rw-r--r--src/backend/parser/analyze.c19
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);
}