]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Clarify comment in ATRewriteTable().
authorRobert Haas <rhaas@postgresql.org>
Fri, 4 Feb 2011 21:14:54 +0000 (16:14 -0500)
committerRobert Haas <rhaas@postgresql.org>
Fri, 4 Feb 2011 21:14:54 +0000 (16:14 -0500)
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.

src/backend/commands/tablecmds.c

index 1ecba0278555087a878acdbe4af1ed4088f65a77..7a028991213a1ab9e0d0fd9adf88a509c8d432c0 100644 (file)
@@ -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,