Re: MERGE issues around inheritance

From: Tender Wang <tndrwang(at)gmail(dot)com>
To: jian he <jian(dot)universality(at)gmail(dot)com>
Cc: Dean Rasheed <dean(dot)a(dot)rasheed(at)gmail(dot)com>, Andres Freund <andres(at)anarazel(dot)de>, pgsql-hackers(at)postgresql(dot)org, Álvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
Subject: Re: MERGE issues around inheritance
Date: 2025-05-26 09:39:08
Message-ID: CAHewXNmU-GyH7bMt1NszQy28qjS_3h6ki4nZR+c6d7-Hf-9F8g@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

jian he <jian(dot)universality(at)gmail(dot)com> 于2025年5月26日周一 17:30写道:

> On Mon, May 26, 2025 at 4:11 AM Dean Rasheed <dean(dot)a(dot)rasheed(at)gmail(dot)com>
> wrote:
> >
> > On Sun, 25 May 2025 at 13:41, Dean Rasheed <dean(dot)a(dot)rasheed(at)gmail(dot)com>
> wrote:
> > >
> >
> > 2. ExecInitModifyTable() does not initialize the WCO lists or
> > RETURNING list for rootResultRelInfo, so those never get executed.
> >
> > As it happens, it is possible to construct cases where (1) causes a
> > crash, even without WCO's or a RETURNING list (see the first test case
> > in the attached patch), so this bug goes all the way back to v15,
> > where MERGE was introduced.
> >
> > So I think we need to do something like the attached.
> >
> > There is perhaps scope to reduce the code duplication between this and
> > ExecInitPartitionInfo(), but that'd likely make the patch bigger, so I
> > think it's best to leave that for now.
>
> + Relation rootRelation = rootRelInfo->ri_RelationDesc;
> + Relation firstResultRel = mtstate->resultRelInfo[0].ri_RelationDesc;
> + int firstVarno = mtstate->resultRelInfo[0].ri_RangeTableIndex;
>
> firstResultRel may equal (==) to rootRelation,
> in that case, we don't need to call map_variable_attnos?
>
> + if (rootRelInfo != mtstate->resultRelInfo &&
+ rootRelInfo->ri_RelationDesc->rd_rel->relkind !=
RELKIND_PARTITIONED_TABLE &&
+ (mtstate->mt_merge_subcommands & MERGE_INSERT) != 0)

Above if already does the check.

--
Thanks,
Tender Wang

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Vitaly Davydov 2025-05-26 10:22:51 Re: Slot's restart_lsn may point to removed WAL segment after hard restart unexpectedly
Previous Message jian he 2025-05-26 09:29:50 Re: MERGE issues around inheritance