On 2015/06/10 20:18, Robert Haas wrote:
/*
* ALTER TABLE INHERIT
*
* Add a parent to the child's parents. This verifies that all the columns and
* check constraints of the parent appear in the child and that they have the
* same data types and expressions.
*/
static void
ATPrepAddInherit(Relation child_rel)
{
if (child_rel->rd_rel->reloftype)
ereport(ERROR,
(errcode(ERRCODE_WRONG_OBJECT_TYPE),
errmsg("cannot change inheritance of typed table")));
}
I agree with you.
Besides that, ISTM taht the error message is a little bit confusing
because I think typed tables cannot inherit. Maybe I'm missing
something though. Proposed patch attached.
Best regards,
Etsuro Fujita
*** a/src/backend/commands/tablecmds.c
--- b/src/backend/commands/tablecmds.c
***************
*** 9853,9862 **** ATExecEnableDisableRule(Relation rel, char *trigname,
/*
* ALTER TABLE INHERIT
- *
- * Add a parent to the child's parents. This verifies that all the columns and
- * check constraints of the parent appear in the child and that they have the
- * same data types and expressions.
*/
static void
ATPrepAddInherit(Relation child_rel)
--- 9853,9858 ----
***************
*** 9864,9873 **** ATPrepAddInherit(Relation child_rel)
if (child_rel->rd_rel->reloftype)
ereport(ERROR,
(errcode(ERRCODE_WRONG_OBJECT_TYPE),
! errmsg("cannot change inheritance of typed table")));
}
/*
* Return the address of the new parent relation.
*/
static ObjectAddress
--- 9860,9873 ----
if (child_rel->rd_rel->reloftype)
ereport(ERROR,
(errcode(ERRCODE_WRONG_OBJECT_TYPE),
! errmsg("typed tables cannot inherit")));
}
/*
+ * Add a parent to the child's parents. This verifies that all the columns and
+ * check constraints of the parent appear in the child and that they have the
+ * same data types and expressions.
+ *
* Return the address of the new parent relation.
*/
static ObjectAddress
--
Sent via pgsql-hackers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers