calcite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Vasiliki Kalavri <vasilikikala...@gmail.com>
Subject LogicalUnion check in JoinUnionTransposeRule
Date Mon, 07 Mar 2016 15:10:46 GMT
Hello everyone,

the JoinUnionTransposeRule is fired if one of the operands is a Union, but
inside the onMatch() method, the code checks if one of the operands is an
instance of LogicalUnion [1]*.*

In the Apache Flink SQL implementation, we have created a logical operator
FlinkUnion for the translation of union. This operator extends Union and
thus when the JoinUnionTransposeRule matches, it throws a
ClassCastException. To avoid this, we have copied the
JoinUnionTransposeRule over to Flink and changed the check in onMatch()
method to look for an instance of Union instead.

Obviously, this is not a good choice, since the rule code should not have
to be maintained on the Flink side. We are wondering whether this check is
a bug or whether we have misunderstood the way we are supposed to use this
rule.

Thank you,
-Vasia.

[1]:
https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/rel/rules/JoinUnionTransposeRule.java#L61

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message