aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands/tablecmds.c
diff options
context:
space:
mode:
authorPeter Eisentraut <peter@eisentraut.org>2024-01-16 08:57:35 +0100
committerPeter Eisentraut <peter@eisentraut.org>2024-01-16 08:57:35 +0100
commitd22d98c341713a260c1d821a62e83c19e27defa0 (patch)
tree366b89bae33341f599ce4cd8ed2c55fd95530a37 /src/backend/commands/tablecmds.c
parent58b20e6d75e5ccaba8bd8a8b1c09f90e4a371b63 (diff)
downloadpostgresql-d22d98c341713a260c1d821a62e83c19e27defa0.tar.gz
postgresql-d22d98c341713a260c1d821a62e83c19e27defa0.zip
Assert that partition inherits from only one parent in MergeAttributes()
A partition inherits only from one partitioned table and thus inherits a column definition only once. Assert the same in MergeAttributes() and simplify a condition accordingly. Similar definition exists about line 3068 in the same function. Author: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com> Discussion: https://www.postgresql.org/message-id/flat/CAExHW5uOykuTC+C6R1yDSp=o8Q83jr8xJdZxgPkxfZ1Ue5RRGg@mail.gmail.com
Diffstat (limited to 'src/backend/commands/tablecmds.c')
-rw-r--r--src/backend/commands/tablecmds.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c
index fdcd09bc5eb..1f6073fb972 100644
--- a/src/backend/commands/tablecmds.c
+++ b/src/backend/commands/tablecmds.c
@@ -2722,6 +2722,12 @@ MergeAttributes(List *columns, const List *supers, char relpersistence,
Oid defCollId;
/*
+ * Partitions have only one parent and have no column
+ * definitions of their own, so conflict should never occur.
+ */
+ Assert(!is_partition);
+
+ /*
* Yes, try to merge the two column definitions.
*/
ereport(NOTICE,
@@ -2792,12 +2798,9 @@ MergeAttributes(List *columns, const List *supers, char relpersistence,
/*
* In regular inheritance, columns in the parent's primary key
- * get an extra not-null constraint. Partitioning doesn't
- * need this, because the PK itself is going to be cloned to
- * the partition.
+ * get an extra not-null constraint.
*/
- if (!is_partition &&
- bms_is_member(parent_attno - FirstLowInvalidHeapAttributeNumber,
+ if (bms_is_member(parent_attno - FirstLowInvalidHeapAttributeNumber,
pkattrs))
{
CookedConstraint *nn;