morrySnow opened a new pull request, #23456:
URL: https://github.com/apache/doris/pull/23456

   We use two facilities to do predicate infer: PredicatePropagation and 
PullUpPredicates. In the prvious implementation, we use a set to save the 
intermediate result of PredicatePropagation. The purpose is infer new predicate 
though two equal relation. However, it is the wrong way. Because it could infer 
wrong predicate through outer join. For example
   
   ```sql
   select a.c1
      from a
      left join b on a.c2 = b.c2 and a.c1 = '1'
      left join c on a.c2 = c.c2 and a.c1 = '2'
      inner join d on a.c3=d.c3
   ```
   
   the predicates `a.c1 = '1'` and `a.c1 = '2'` should not be inferred as 
filter to relation `a`.
   
   This PR:
   1. revert the change from PR #22145, commit 3c58e9ba
   2. Remove the unreasonable restrict in PullupPredicate.
   3. Use new Filter node rather than new otherCondition on join node to save 
infer predicates
   
   
   
   


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to