From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Richard Guo <guofenglinux(at)gmail(dot)com> |
Cc: | PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: A problem in deconstruct_distribute_oj_quals |
Date: | 2023-02-07 06:12:51 |
Message-ID: | 3027458.1675750371@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Richard Guo <guofenglinux(at)gmail(dot)com> writes:
> In deconstruct_distribute_oj_quals, when we've identified a commutable
> left join which provides join clause with flexible semantics, we try to
> generate multiple versions of the join clause. Here we have the logic
> that puts back any ojrelids that were removed from its min_righthand.
> /*
> * Put any OJ relids that were removed from min_righthand back into
> * ojscope, else distribute_qual_to_rels will complain.
> */
> ojscope = bms_join(ojscope, bms_intersect(sjinfo->commute_below,
> sjinfo->syn_righthand));
> I doubt this is necessary. It seems to me that all relids mentioned
> within the join clause have already been contained in ojscope, which is
> the union of min_lefthand and min_righthand.
Hmm ... that was needed at some point in the development of that
function, but maybe it isn't as the code stands now. It does look
like the "this_ojscope" manipulations within the loop cover this.
> I noticed this code because I came across a problem with a query as
> below.
> create table t (a int);
> select t1.a from (t t1 left join t t2 on true) left join (t t3 left join t
> t4 on t3.a = t4.a) on t2.a = t3.a;
> When we deal with qual 't2.a = t3.a', deconstruct_distribute_oj_quals
> would always add the OJ relid of t3/t4 into its required_relids, due to
> the code above, which I think is wrong. The direct consequence is that
> we would miss the plan that joins t2 and t3 directly.
I don't see any change in this query plan when I remove that code, so
I'm not sure you're explaining your point very well.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Kyotaro Horiguchi | 2023-02-07 07:07:03 | Re: Make mesage at end-of-recovery less scary. |
Previous Message | Nikita Malakhov | 2023-02-07 06:11:52 | Re: [PATCH] Compression dictionaries for JSONB |