Re: Fix bug of UPDATE/DELETE FOR PORTION OF with inheritance tables - Mailing list pgsql-hackers

From Paul A Jungwirth
Subject Re: Fix bug of UPDATE/DELETE FOR PORTION OF with inheritance tables
Date
Msg-id CA+renyV6BS+cUxAbxB1X-bBn8+9NDEwRah8pSD_EVdhtb1TcUA@mail.gmail.com
Whole thread
In response to Fix bug of UPDATE/DELETE FOR PORTION OF with inheritance tables  (Chao Li <li.evan.chao@gmail.com>)
Responses Re: Fix bug of UPDATE/DELETE FOR PORTION OF with inheritance tables
List pgsql-hackers
On Fri, May 8, 2026 at 10:48 PM Chao Li <li.evan.chao@gmail.com> wrote:
>
> > On May 7, 2026, at 11:40, Chao Li <li.evan.chao@gmail.com> wrote:
> > After looking into the code, I found that leftover row insertion only considers the partitioned-table case, where
leftoversneed to be inserted through the root relation for partition routing. Plain inheritance is different, leftover
rowsshould be inserted back into the actual child relation. 
> >
> > While debugging this, I also noticed another issue around mapping the range column’s attnum. In
multiple-inheritancecases, the range column’s attnum in a child table may be different from the one in its parent, so
weneed to use the child’s actual attnum. 
> >
> > Please see the attached patch for the fix details and the new tests. Since I believe this bug was introduced in 19,
I’mgoing to add it to the open items. 
> >
> > Best regards,
> > --
> > Chao Li (Evan)
> > HighGo Software Co., Ltd.
> > https://www.highgo.com/
> >
> >
> >
> >
> > <v1-0001-Fix-FOR-PORTION-OF-leftovers-for-inheritance-chil.patch>
>
> Merged into [1].
>
> [1] https://postgr.es/m/CAHg+QDcd=t69gLf9yQexO07EJ2mx0Z70NFHo6h94X1EDA=hM0g@mail.gmail.com

Here is a new patch for this. I don't think it makes sense to combine
it with the other fix anymore.

Per [1], we are now checking for UPDATE permission on the FOR PORTION
OF column, so most of that other patch went away, and the fix here can
be done independently. That's what v2 here does. I didn't really
change anything from the v12-0002 patch on that other thread, except
for moving some tests into the other patch (since they had nothing to
do with traditional inheritance). The patch here now passes, whether
applied to master directly or applied on top of v13 from the
updatedCols fix. (Combining them will give a rebase conflict in the
test files, but it's pretty trivial to fix.)

[1] https://www.postgresql.org/message-id/CA%2BrenyXyLfvtvVv--hGWGTgzFP%3D-%2BdPLy4RWvEmioAPyJMM%2Buw%40mail.gmail.com

Yours,

--
Paul              ~{:-)
pj@illuminatedcomputing.com

Attachment

pgsql-hackers by date:

Previous
From: Paul Ramsey
Date:
Subject: Re: Add --extra-dependencies and immediate data dumping for pg_dump/pg_upgrade
Next
From: Michael Paquier
Date:
Subject: Re: NULL pointer dereference in syslogger with load_libraries() and -DEXEC_BACKEND at startup