diff options
Diffstat (limited to 'src/backend/catalog/index.c')
-rw-r--r-- | src/backend/catalog/index.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index d25b39bb54e..25c5bead9f0 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -185,6 +185,9 @@ relationHasPrimaryKey(Relation rel) * created NOT NULL during CREATE TABLE), do an ALTER SET NOT NULL to mark * them so --- or fail if they are not in fact nonnull. * + * As of PG v10, the SET NOT NULL is applied to child tables as well, so + * that the behavior is like a manual SET NOT NULL. + * * Caller had better have at least ShareLock on the table, else the not-null * checking isn't trustworthy. */ @@ -253,17 +256,13 @@ index_check_primary_key(Relation heapRel, } /* - * XXX: Shouldn't the ALTER TABLE .. SET NOT NULL cascade to child tables? - * Currently, since the PRIMARY KEY itself doesn't cascade, we don't - * cascade the notnull constraint(s) either; but this is pretty debatable. - * * XXX: possible future improvement: when being called from ALTER TABLE, * it would be more efficient to merge this with the outer ALTER TABLE, so * as to avoid two scans. But that seems to complicate DefineIndex's API * unduly. */ if (cmds) - AlterTableInternal(RelationGetRelid(heapRel), cmds, false); + AlterTableInternal(RelationGetRelid(heapRel), cmds, true); } /* |