Hi, Benchao and Renhe
Thanks for your information. They are useful for me.
Hi jiajun
Here is a jira about this problem.
JIRA: https://issues.apache.org/jira/browse/CALCITE-5109
I've been too busy for a while, and I will continue to improve this jira in
the next month.
Best,
XuRenhe
Benchao Li 于2023年1月17日周二 10:21写道:
> The comment for `AllPredicates`[1] has explained
The comment for `AllPredicates`[1] has explained the difference. Can this
answer your question?
The difference with respect to BuiltInMetadata.Predicates provider is that
> this provider tries to extract ALL predicates even if they are not applied
> on the output expressions of the relational
Hi Benchao,
Thanks very much for your email.
I understand `RelMetadataQuery#getAllPredicates` cannot get all predicates
because some optimized cases cannot push/pull predicates.
But I think the function name and code comment[1] are misleading,
*getAllPredicates* cannot get all predicates.
And
Hi Jiajun,
For outer join, the semantic is different for predicates in condition and
where, for example:
Q1: select * from emp left join dept on emp.deptno = dept.deptno
Q2: select * from emp left join dept on true where emp.deptno = dept.deptno
The semantic is different for Q1 and Q2. Q1 will
Hello, all.
I try to use RelMetadataQuery#getAllPredicates get predicate,
but I get null for outer join query that left column name is same as right
column name.
```
final RelNode rel = sql("select name as dname from emp left outer join dept"
+ " on emp.deptno = dept.deptno").toRel();
final