Prevent setting NO INHERIT on partitioned not-null constraints

Andreas Karlsson <andreas@proxel.se>

From: Andreas Karlsson <andreas@proxel.se>
To: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2026-05-20T19:25:31Z
Lists: pgsql-hackers

Attachments

Hi!

Me and Joel found a bug when working on another patch. We noticed that 
you cannot create not-null constraints with NO INHEIRT set on 
partitioned tables, but you can actually set it later by using ALTER 
CONSTRAINT. This must be an oversight so I have attached a patch which 
adds a check to prevent this.

The SQL below should give an error but does not:

CREATE TABLE t (
   a int,
   CONSTRAINT a_is_not_null NOT NULL a
) PARTITION BY LIST (a);

ALTER TABLE t ALTER CONSTRAINT a_is_not_null NO INHERIT;

-- 
Andreas Karlsson
Percona