LiBinfeng-01 opened a new pull request, #22145:
URL: https://github.com/apache/doris/pull/22145

   ## Proposed changes
   
   Problem:
   When inferring predicate in nereids, new inferred predicates can not be the 
source of next round. For example:
   
   create table tt1(c1 int, c2 int) distributed by hash(c1) 
properties('replication_num'='1');
   create table tt2(c1 int, c2 int) distributed by hash(c1) 
properties('replication_num'='1');
   create table tt3(c1 int, c2 int) distributed by hash(c1) 
properties('replication_num'='1');
   explain select * from tt1 left join tt2 on tt1.c1 = tt2.c1 left join tt3 on 
tt2.c1 = tt3.c1 where tt1.c1 = 123;
   
   we expect to get t33.c1 = 123, but we can just get t22.c1 = 123. Because 
when infer tt1.c1 = 123 and tt2.c1 = tt3.c1, we can
   not get any relationship of these two predicates. 
   
   Solution:
   We need to cache middle results of source predicates like t22.c1 = 123 in 
example.
   
   ## Further comments
   
   If this is a relatively large or complex change, kick off the discussion at 
[d...@doris.apache.org](mailto:d...@doris.apache.org) by explaining why you 
chose the solution you did and what alternatives you considered, etc...
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to