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
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 |