Re: docs: clarify ALTER TABLE behavior on partitioned tables

From: Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com>
To: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
Cc: Postgres hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Zsolt Parragi <zsolt(dot)parragi(at)percona(dot)com>, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>
Subject: Re: docs: clarify ALTER TABLE behavior on partitioned tables
Date: 2026-01-26 05:13:14
Message-ID: D8FD5BAF-2AC0-4289-B96E-D3BD99599BE6@gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

> On Jan 26, 2026, at 12:36, David G. Johnston <david(dot)g(dot)johnston(at)gmail(dot)com> wrote:
>
> On Sunday, January 25, 2026, Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com> wrote:
>
> > <para>
> > When applied to a partitioned table, partition columns and constraints
> > are implicitly renamed.
> > Specifying <literal>ONLY</literal> is not allowed, and this command
> > cannot be used on individual partitions.
> > </para>
>
> But for "Specifying <literal>ONLY</literal> is not allowed, and this command, cannot be used on individual partitions.”, that doesn’t seem correct. See my test:
> ```
> evantest=# create table root (i int, j int) partition by list(i);
> CREATE TABLE
> evantest=# create table p1 partition of root for values in (1);
> CREATE TABLE
> evantest=# alter table p1 rename to pp1; <== Rename a partition is allowed.
> ALTER TABLE
> evantest=# alter table only pp1 rename to p1; <== ONLY can be used, but just no effect
> ALTER TABLE
> ```
>
> I was mentally restricting the second sentence about ONLY to the column and constraints renaming action, which are called out by the first sentence. It makes little sense to talk about renaming the table, parent or child, here in the context of ONLY. It goes without mention that table renaming never cascades. Only is implied for that action, even if only should just be considered valid on a parent in any case.
>
> But I’d accept a sentence like: “Table renames always only apply to the named table.” Added to that paragraph; it’s a convoluted command.
>
> David J.
>

How about this:
```
<para>
When applied to a partitioned table to rename columns or constraints,
the corresponding partition columns and constraints are renamed
implicitly. <literal>ONLY</literal> is not allowed, and the command
cannot be used on individual partitions. When the rename target is the
table name, only the named table is renamed.
</para>
```

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

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message vaibhave postgres 2026-01-26 05:16:38 [BUG#19384] Fix Server crash at textout
Previous Message David G. Johnston 2026-01-26 04:36:15 Re: docs: clarify ALTER TABLE behavior on partitioned tables