My ultimate goal is to pushdown joins from Drill to a JDBC datasource.

To do that, I wrote a converter rule to convert LogicalJoins
<https://calcite.apache.org/apidocs/org/apache/calcite/rel/logical/LogicalJoin.html>
to
a custom descendant of the JdbcJoin
<https://calcite.apache.org/apidocs/org/apache/calcite/adapter/jdbc/JdbcRules.JdbcJoin.html>
class
which worked fine so far.

Now I need to do the same for multi joins too but I believe 3 classes are
missing.

   1. A JdbcRel
   
<https://calcite.apache.org/apidocs/org/apache/calcite/adapter/jdbc/JdbcRel.html>
descendant
   (Not JdbcJoin
   
<https://calcite.apache.org/apidocs/org/apache/calcite/adapter/jdbc/JdbcRules.JdbcJoin.html>,
   because it extends BiRel
   <https://calcite.apache.org/apidocs/org/apache/calcite/rel/BiRel.html> which
   wouldn't be valid because we are considering a node with more than two
   operands) for multijoins (Example: *JdbcMultiJoin*)
   2. A SqlCall
   <https://calcite.apache.org/apidocs/org/apache/calcite/sql/SqlCall.html>\
   SqlJoin
   <https://calcite.apache.org/apidocs/org/apache/calcite/sql/SqlJoin.html>
descendant
   for multijoins (Example: *SqlMultiJoin*) to be created while implementing
   
<https://calcite.apache.org/apidocs/org/apache/calcite/adapter/jdbc/JdbcRel.html#implement-org.apache.calcite.adapter.jdbc.JdbcImplementor->
    the *JdbcMultiJoin* class.
   3. A JDBC rule for converting MultiJoins
   
<https://calcite.apache.org/apidocs/org/apache/calcite/rel/rules/MultiJoin.html>
to
   the newly created *JdbcMultiJoin*

Am I correct or is this already implemented somewhere ?

*---------------------*
*Muhammad Gelbana*
http://www.linkedin.com/in/mgelbana

Reply via email to