| From: | "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com> |
|---|---|
| To: | Zsolt Parragi <zsolt(dot)parragi(at)percona(dot)com> |
| Cc: | Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com>, Postgres hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> |
| Subject: | Re: docs: clarify ALTER TABLE behavior on partitioned tables |
| Date: | 2026-01-24 01:16:23 |
| Message-ID: | CAKFQuwbUVLeeooQWc0TY7NJS05RexG_fOY5cz2S4H3sDGKQ_qA@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Fri, Jan 23, 2026 at 5:57 PM David G. Johnston <
david(dot)g(dot)johnston(at)gmail(dot)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.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | jian he | 2026-01-24 02:18:49 | Re: ON CONFLICT DO SELECT (take 3) |
| Previous Message | Jacob Champion | 2026-01-24 01:02:09 | Re: [oauth] Stabilize the libpq-oauth ABI (and allow alternative implementations?) |