Thread
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Prevent setting NO INHERIT on partitioned NOT NULL constraints
- 41247cdf695b 18 (unreleased) landed
- d8b5d87e545c 19 (unreleased) landed
-
Prevent setting NO INHERIT on partitioned not-null constraints
Andreas Karlsson <andreas@proxel.se> — 2026-05-20T19:25:31Z
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
-
Re: Prevent setting NO INHERIT on partitioned not-null constraints
Jim Jones <jim.jones@uni-muenster.de> — 2026-05-21T15:01:51Z
Hi Andreas On 20/05/2026 21:25, Andreas Karlsson wrote: > 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; +1 for the fix. postgres=# CREATE TABLE t ( a int, CONSTRAINT a_is_not_null NOT NULL a ) PARTITION BY LIST (a); CREATE TABLE postgres=# ALTER TABLE t ALTER CONSTRAINT a_is_not_null NO INHERIT; ERROR: not-null constraint "a_is_not_null" on partitioned table "t" cannot be NO INHERIT The errcode is most likely wrong: ERRCODE_WRONG_OBJECT_TYPE -> ERRCODE_FEATURE_NOT_SUPPORTED At least it is inconsistent with an equivalent check in parse_utilcmd.c: if (cxt->ispartitioned && constraint->is_no_inherit) ereport(ERROR, errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("not-null constraints on partitioned tables cannot be NO INHERIT")); Thanks! Best, Jim -
Re: Prevent setting NO INHERIT on partitioned not-null constraints
Andreas Karlsson <andreas@proxel.se> — 2026-05-21T21:22:31Z
On 5/21/26 5:01 PM, Jim Jones wrote: > The errcode is most likely wrong: > > ERRCODE_WRONG_OBJECT_TYPE -> ERRCODE_FEATURE_NOT_SUPPORTED > > At least it is inconsistent with an equivalent check in parse_utilcmd.c: > > if (cxt->ispartitioned && constraint->is_no_inherit) > ereport(ERROR, > errcode(ERRCODE_FEATURE_NOT_SUPPORTED), > errmsg("not-null constraints on partitioned tables cannot be > NO INHERIT")); Thanks, that was a copy pasto. Version 2 is attached. -- Andreas Karlsson Percona -
Re: Prevent setting NO INHERIT on partitioned not-null constraints
Fujii Masao <masao.fujii@gmail.com> — 2026-05-22T01:10:46Z
On Fri, May 22, 2026 at 6:22 AM Andreas Karlsson <andreas@proxel.se> wrote: > > On 5/21/26 5:01 PM, Jim Jones wrote: > > The errcode is most likely wrong: > > > > ERRCODE_WRONG_OBJECT_TYPE -> ERRCODE_FEATURE_NOT_SUPPORTED > > > > At least it is inconsistent with an equivalent check in parse_utilcmd.c: > > > > if (cxt->ispartitioned && constraint->is_no_inherit) > > ereport(ERROR, > > errcode(ERRCODE_FEATURE_NOT_SUPPORTED), > > errmsg("not-null constraints on partitioned tables cannot be > > NO INHERIT")); > > Thanks, that was a copy pasto. Version 2 is attached. Thanks for the patch! It looks good to me. Barring any objections, I will commit it. This should be backpatched to v18, where ALTER TABLE ... ALTER CONSTRAINT ... [NO] INHERIT was added. Right? Regards, -- Fujii Masao -
Re: Prevent setting NO INHERIT on partitioned not-null constraints
Andreas Karlsson <andreas@proxel.se> — 2026-05-22T08:10:41Z
On 5/22/26 3:10 AM, Fujii Masao wrote: > This should be backpatched to v18, where ALTER TABLE ... ALTER > CONSTRAINT ... [NO] INHERIT > was added. Right? Yes, as this is a bug I think it should be backpatched to 18. -- Andreas Karlsson Percona
-
Re: Prevent setting NO INHERIT on partitioned not-null constraints
Fujii Masao <masao.fujii@gmail.com> — 2026-05-22T15:02:47Z
On Fri, May 22, 2026 at 5:10 PM Andreas Karlsson <andreas@proxel.se> wrote: > > On 5/22/26 3:10 AM, Fujii Masao wrote: > > This should be backpatched to v18, where ALTER TABLE ... ALTER > > CONSTRAINT ... [NO] INHERIT > > was added. Right? > Yes, as this is a bug I think it should be backpatched to 18. I've pushed the patch. Thanks! Regards, -- Fujii Masao