[ 
https://issues.apache.org/jira/browse/DRILL-4642?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15271140#comment-15271140
 ] 

ASF GitHub Bot commented on DRILL-4642:
---------------------------------------

Github user jinfengni commented on a diff in the pull request:

    https://github.com/apache/drill/pull/489#discussion_r62089298
  
    --- Diff: 
exec/java-exec/src/test/java/org/apache/drill/TestFunctionsWithTypeExpoQueries.java
 ---
    @@ -719,4 +727,73 @@ public void testWindowSumConstant() throws Exception {
         final String[] excludedPlan = {};
         PlanTestBase.testPlanMatchingPatterns(query, expectedPlan, 
excludedPlan);
       }
    +
    +  @Test // DRILL-4552
    +  public void testDecimalPlusWhenDecimalEnabled() throws Exception {
    +    final String query = "select cast('99' as decimal(9,0)) + cast('99' as 
decimal(9,0)) as col \n" +
    +        "from cp.`tpch/region.parquet` \n" +
    +        "limit 0";
    +
    +    try {
    +      final TypeProtos.MajorType majorTypeDouble = 
TypeProtos.MajorType.newBuilder()
    +          .setMinorType(TypeProtos.MinorType.FLOAT8)
    +          .setMode(TypeProtos.DataMode.REQUIRED)
    +          .build();
    +
    +      final List<Pair<SchemaPath, TypeProtos.MajorType>> 
expectedSchemaDouble = Lists.newArrayList();
    +      expectedSchemaDouble.add(Pair.of(SchemaPath.getSimplePath("col"), 
majorTypeDouble));
    +
    +      testBuilder()
    --- End diff --
    
    We had better to explicitly set the decimal option to false, before the 
test on line 746. For now, the option defaults to be false. But what if it's 
changed to true some day?
    



> Let RexBuilder.ensureType() mechanism take place during Rex conversion.
> -----------------------------------------------------------------------
>
>                 Key: DRILL-4642
>                 URL: https://issues.apache.org/jira/browse/DRILL-4642
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Query Planning & Optimization
>            Reporter: Sean Hsuan-Yi Chu
>            Assignee: Sean Hsuan-Yi Chu
>             Fix For: 1.7.0
>
>
> In DRILL-4372, the logic of ensuring same type is removed since, in some case 
> such as below, undesirable cast function will be added and cause failure.
> {code}
> SELECT * 
> FROM T 
> WHERE (cast(col1 as timestamp)  - to_timestamp(col2,'YYYY-MM-dd HH:mm:ss') < 
> interval 'X XX:XX:XX' day to second)
> {code}
> The fundamental reason for this behavior roots in Drill-Calcite [1], where 
> SqlNode WHERE is expanded to a new object but is not passed into validation 
> step.
> [1] 
> https://github.com/mapr/incubator-calcite/blob/DrillCalcite1.4.0-mapr-1.4.0/core/src/main/java/org/apache/calcite/sql/validate/SqlValidatorImpl.java#L3362



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to