Re: Removing unneeded self joins

From: Andrei Lepikhov <lepihov(at)gmail(dot)com>
To: jian he <jian(dot)universality(at)gmail(dot)com>, Alexander Korotkov <aekorotkov(at)gmail(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Robert Haas <robertmhaas(at)gmail(dot)com>, Andrei Lepikhov <a(dot)lepikhov(at)postgrespro(dot)ru>, Richard Guo <guofenglinux(at)gmail(dot)com>, Alexander Lakhin <exclusion(at)gmail(dot)com>, "Gregory Stark (as CFM)" <stark(dot)cfm(at)gmail(dot)com>, Michał Kłeczek <michal(at)kleczek(dot)org>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Removing unneeded self joins
Date: 2024-07-15 06:08:43
Message-ID: 6da9bdb2-3ff2-4b8b-818a-8052772f2163@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 7/15/24 12:31, jian he wrote:
> hi.
> Here is the latest patch (v6),
> I've made the following changes.
>
> * disallow original Query->resultRelation participate in SJE.
> for SELECT, nothing is changed. for UPDATE/DELETE/MERGE
> we can do:
> EXPLAIN (COSTS OFF)
> UPDATE sj sq SET b = sq.b + sz.a FROM (select s1.* from sj s1 join sj
> s2 on s1.a = s2.a) as sz
> WHERE sz.a = sq.a;
>
> here, only "(select s1.* from sj s1 join sj s2 on s1.a = s2.a)" can
> apply to SJE.
>
> but for now we cannot apply SJE to
> EXPLAIN (COSTS OFF)
> UPDATE sj sq SET b = sq.b + sz.a FROM sj as sz WHERE sz.a = sq.a;
>
> so the EPQ abnormality issue[1] won't happen.
>
>
> * add a new function: ChangeVarNodesExtended for
> address concerns in [2]
I see you still stay with the code line:
if (omark && imark && omark->markType != imark->markType)

It is definitely an error. What if omark is NULL, but imark is not? Why
not to skip this pair of relids? Or, at least, insert an assertion to
check that you filtered it earlier.

--
regards, Andrei Lepikhov

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Fujii Masao 2024-07-15 06:32:31 Re: MERGE/SPLIT partition commands should create new partitions in the parent's tablespace?
Previous Message Ashutosh Bapat 2024-07-15 06:02:42 Re: Optimize WindowAgg's use of tuplestores