diff options
Diffstat (limited to 'src/backend')
-rw-r--r-- | src/backend/catalog/index.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 9229f619d29..39605732b16 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -218,12 +218,12 @@ index_check_primary_key(Relation heapRel, int i; /* - * If ALTER TABLE, check that there isn't already a PRIMARY KEY. In CREATE - * TABLE, we have faith that the parser rejected multiple pkey clauses; - * and CREATE INDEX doesn't have a way to say PRIMARY KEY, so it's no - * problem either. + * If ALTER TABLE and CREATE TABLE .. PARTITION OF, check that there isn't + * already a PRIMARY KEY. In CREATE TABLE for an ordinary relations, we + * have faith that the parser rejected multiple pkey clauses; and CREATE + * INDEX doesn't have a way to say PRIMARY KEY, so it's no problem either. */ - if (is_alter_table && + if ((is_alter_table || heapRel->rd_rel->relispartition) && relationHasPrimaryKey(heapRel)) { ereport(ERROR, |