[
https://issues.apache.org/jira/browse/DRILL-4525?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15209369#comment-15209369
]
ASF GitHub Bot commented on DRILL-4525:
---------------------------------------
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.
> Query with BETWEEN clause on Date and Timestamp values fails with Validation
> Error
> ----------------------------------------------------------------------------------
>
> Key: DRILL-4525
> URL: https://issues.apache.org/jira/browse/DRILL-4525
> Project: Apache Drill
> Issue Type: Bug
> Components: Query Planning & Optimization
> Reporter: Abhishek Girish
> Assignee: Sean Hsuan-Yi Chu
> Priority: Critical
>
> Query: (simplified variant of TPC-DS Query37)
> {code}
> SELECT
> *
> FROM
> date_dim
> WHERE
> d_date BETWEEN Cast('1999-03-06' AS DATE) AND (
> Cast('1999-03-06' AS DATE) + INTERVAL '60' day)
> LIMIT 10;
> {code}
> Error:
> {code}
> Error: VALIDATION ERROR: From line 6, column 8 to line 7, column 64: Cannot
> apply 'BETWEEN ASYMMETRIC' to arguments of type '<ANY> BETWEEN ASYMMETRIC
> <DATE> AND <TIMESTAMP(0)>'. Supported form(s): '<COMPARABLE_TYPE> BETWEEN
> <COMPARABLE_TYPE> AND <COMPARABLE_TYPE>'
> SQL Query null
> [Error Id: 223fb37c-f561-4a37-9283-871dc6f4d6d0 on abhi2:31010]
> (state=,code=0)
> {code}
> This is a regression from 1.6.0.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)