Commit 9e7e1172 authored by Robert Haas's avatar Robert Haas

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.
parent b1e65c32
......@@ -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.
*
* (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.)
* 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 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,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment