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]