Re: docs: clarify ALTER TABLE behavior on partitioned tables - Mailing list pgsql-hackers

From David G. Johnston
Subject Re: docs: clarify ALTER TABLE behavior on partitioned tables
Date
Msg-id CAKFQuwbUVLeeooQWc0TY7NJS05RexG_fOY5cz2S4H3sDGKQ_qA@mail.gmail.com
Whole thread Raw
In response to Re: docs: clarify ALTER TABLE behavior on partitioned tables  ("David G. Johnston" <david.g.johnston@gmail.com>)
Responses Re: docs: clarify ALTER TABLE behavior on partitioned tables
List pgsql-hackers

On Fri, Jan 23, 2026 at 5:57 PM David G. Johnston <david.g.johnston@gmail.com> wrote:

"A nonrecursive DROP COLUMN (i.e., ALTER TABLE ONLY ... DROP COLUMN)
never removes any descendant columns, but instead marks them as
independently defined rather than inherited."

This part is now undocumented, it was only mentioned in this paragraph.

True, it's left implied instead of explicitly stated.  Any column that exists on a child but not the parent is by definition "independently defined".  So if either ONLY is supplied or the rules for cascading delete are not met the result is children with independently defined columns with that name.

 
The original note was wrong anyway for the two-parent case - the second parent prevents the marking as independent when the first parent's column is dropped.

Decided to test this one and I see the original wording was correct and we will need to keep a note that in the two-parent ONLY case the un-dropped children are marked both dependent and independent.

Change:

     <para>
      For inheritance setups, a descendant column is removed only if both of the
      following are true: this is the only parent defining the column, and the column
      was never independently defined in the descendant.
     </para>

To:

"For inheritance setups, a descendant column is removed only if all the following are true: ONLY is not specified, no other parent defines the column, and the column is not marked as having been independent.  Otherwise, the descendant column is instead marked as having been independent.

If we think that deserves a bit longer explanation about that/why/how a column can be both dependent and "having been independent" we should cross-reference to a more appropriate location.  Here we just state this is one way that condition can materialize.

David J.

pgsql-hackers by date:

Previous
From: Jacob Champion
Date:
Subject: Re: [oauth] Stabilize the libpq-oauth ABI (and allow alternative implementations?)
Next
From: jian he
Date:
Subject: Re: ON CONFLICT DO SELECT (take 3)