Re: tablecmds: reject CLUSTER ON for partitioned tables earlier - Mailing list pgsql-hackers

From Chao Li
Subject Re: tablecmds: reject CLUSTER ON for partitioned tables earlier
Date
Msg-id 075DECA0-5214-4794-A265-5A979E1A49B7@gmail.com
Whole thread Raw
In response to Re: tablecmds: reject CLUSTER ON for partitioned tables earlier  (Zsolt Parragi <zsolt.parragi@percona.com>)
List pgsql-hackers

> On Jan 27, 2026, at 16:55, Zsolt Parragi <zsolt.parragi@percona.com> wrote:
>
>> I added two new test cases in 0002 that trigger the check.
>
> I also tested these scenarios previously. It's good that they are part
> of the test suite, but they don't hit that error path. Verified with
> this:
>
> diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c
> index 379f4d4ebaf..50f80724cb3 100644
> --- a/src/backend/commands/tablecmds.c
> +++ b/src/backend/commands/tablecmds.c
> @@ -17857,9 +17857,7 @@ ATExecDropInherit(Relation rel, RangeVar
> *parent, LOCKMODE lockmode)
>  Relation parent_rel;
>
>  if (rel->rd_rel->relispartition)
> - ereport(ERROR,
> - (errcode(ERRCODE_WRONG_OBJECT_TYPE),
> - errmsg("cannot change inheritance of a partition")));
> + Assert(0);
>
>  /*
>  * AccessShareLock on the parent is probably enough, seeing that DROP

Thank you so much for pointing out this, and sorry for misunderstanding you. You are right, as the check has been added
toATPrepChangeInherit(), the same check in ATExecDropInherit becomes redundant. I thought you were talking about the
checkin ATPrepChangeInherit(). 

PFA v7:

* In 0001, replaced ereport with assert in mark_index_clustered(). See my previous email for the analysis.
* In 0002, removed the redundant check of relispartition from ATExecDropInherit().

Best regards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/





Attachment

pgsql-hackers by date:

Previous
From: Mihail Nikalayeu
Date:
Subject: Re: Adding REPACK [concurrently]
Next
From: Michael Paquier
Date:
Subject: Re: Extended Statistics set/restore/clear functions.