From: Robert Haas Date: Fri, 4 Feb 2011 21:14:54 +0000 (-0500) Subject: Clarify comment in ATRewriteTable(). X-Git-Tag: REL9_1_ALPHA4~265 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9e7e1172a53054dc14574e42865ea8213bc06371;p=thirdparty%2Fpostgresql.git Clarify comment in ATRewriteTable(). Make sure it's clear that the prohibition on adding a column with a default when the rowtype is used elsewhere is intentional, and be a bit more explicit about the other cases where we perform this check. --- diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index 1ecba027855..7a028991213 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -3378,12 +3378,16 @@ ATRewriteTable(AlteredTableInfo *tab, Oid OIDNewHeap, LOCKMODE lockmode) } /* - * If we need to rewrite the table, the operation has to be propagated to - * tables that use this table's rowtype as a column type. + * If we change column data types or add/remove OIDs, the operation has to + * be propagated to tables that use this table's rowtype as a column type. + * newrel will also be non-NULL in the case where we're adding a column + * with a default. We choose to forbid that case as well, since composite + * types might eventually support defaults. * - * (Eventually this will probably become true for scans as well, but at - * the moment a composite type does not enforce any constraints, so it's - * not necessary/appropriate to enforce them just during ALTER.) + * (Eventually we'll probably need to check for composite type + * dependencies even when we're just scanning the table without a rewrite, + * but at the moment a composite type does not enforce any constraints, + * so it's not necessary/appropriate to enforce them just during ALTER.) */ if (newrel) find_composite_type_dependencies(oldrel->rd_rel->reltype,