Github user hsuanyi commented on a diff in the pull request:
https://github.com/apache/drill/pull/438#discussion_r57251287
--- Diff:
exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillOperatorTable.java
---
@@ -157,9 +159,23 @@ private void populateWrappedCalciteOperators() {
} else if(calciteOperator instanceof SqlFunction) {
wrapper = new DrillCalciteSqlFunctionWrapper((SqlFunction)
calciteOperator,
getFunctionListWithInference(calciteOperator.getName()));
+ } else if(calciteOperator instanceof SqlBetweenOperator) {
+ // During the procedure of converting to RexNode,
+ // StandardConvertletTable.convertBetween expects the SqlOperator
to be a subclass of SqlBetweenOperator
+ final SqlBetweenOperator sqlBetweenOperator = (SqlBetweenOperator)
calciteOperator;
+ wrapper = new SqlBetweenOperator(sqlBetweenOperator.flag,
sqlBetweenOperator.isNegated()) {
+ @Override
+ public boolean checkOperandTypes(
--- End diff --
@jacques-n, Calcite has different (more strict) definition of
type-compatibilty while Drill is more flexible.
What we have done is to have our own type-compatibilty in drill. Please see
the new pull request.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---