Re: BUG #18297: Error when adding a column to a parent table with complex inheritance
Richard Guo <guofenglinux@gmail.com>
From: Richard Guo <guofenglinux@gmail.com>
To: Tender Wang <tndrwang@gmail.com>
Cc: exclusion@gmail.com, pgsql-bugs@lists.postgresql.org
Date: 2024-01-17T11:54:26Z
Lists: pgsql-bugs
On Wed, Jan 17, 2024 at 3:48 PM Tender Wang <tndrwang@gmail.com> wrote:
> Hmm, thanks for the report.
> I can repeat the aboved issue on master, even on pg10 and pg 11.
> I analyzed this issue, and I found that ATExecAddColumn(), we forgot to
> call CommandCounterIncrement() in if (colDef->inhcount > 0) {...} branch.
> So the third(a->d) updates the first(a->b->c->d) tuple.
> Attached patch is my quickly fixed solution.
>
Indeed. We may update the same child column multiple times, but there
is no CommandCounterIncrement between. Nice catch and +1 to the fix.
To nitpick, how about go with the comment as
/* Make sure the child column change is visible */
which seems clearer.
Also I think it'd be better to include a blank line before and after the
new CommandCounterIncrement statement.
Also I suggest to drop the new added tables after we've run ALTER TABLE
in the test case.
Thanks
Richard
Commits
-
Fix ALTER TABLE .. ADD COLUMN with complex inheritance trees
- 2f724283719e 12.18 landed
- bfec14d06de8 13.14 landed
- 5a7833f49679 14.11 landed
- ad6fbbeeb07a 15.6 landed
- 51193e7a7d33 16.2 landed
- bb812ab0917e 17.0 landed