Q1:Gibt es eine Methode, um äquivalente Filter von Join-Filtern und anderen abzuleiten?
select * from t1, t2 where t1.a = t2.b and t1.a = 2;
Es entspricht Abfrage zu folgen.
Q2:
select * from t1, t2 where t1.a = t2.b and t1.a = 2 and t2.b = 2;
Nun verwende ich Apache Calcite Plan für Q1 zu erzeugen und verwenden FilterJoinRule.FILTER_ON_JOIN
und FilterJoinRule.JOIN
zu optimieren. Aber diese Regeln leiten keinen zusätzlichen Filter t2.b = 2
ab.
Gibt es Regeln oder Methoden, um einen äquivalenten Filter bei Calcite abzuleiten? Vielen Dank.
Wenn nicht, möchte ich es unterstützen. Irgendein Vorschlag?