[ 
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)

Reply via email to