Uploaded image for project: 'Apache Drill'
  1. Apache Drill
  2. DRILL-773

MIN and MAX against to_timestamp not working

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 0.4.0
    • Functions - Drill
    • None

    Description

      git.commit.id.abbrev=70fab8c

      The following query returns correct result:
      0: jdbc:drill:schema=dfs> select to_timestamp(create_time, 'YYYY-MM-dd HH:mm:ss') from voter;
      ------------

      EXPR$0

      ------------

      2014-05-25T03:41:54.000-07:00
      2014-07-30T08:03:11.000-07:00
      2014-09-15T02:33:11.000-07:00

      .
      .
      .

      However, when using max or min function against to_timestamp query failed to execute:
      0: jdbc:drill:schema=dfs> select max(to_timestamp(create_time, 'YYYY-MM-dd HH:mm:ss')) from voter;
      Query failed: org.apache.drill.exec.rpc.RpcException: Remote failure while running query.[error_id: "d50e202c-9665-43a1-96b2-399393f29726"
      endpoint {
      address: "qa-node64.qa.lab"
      user_port: 31010
      control_port: 31011
      data_port: 31012
      }
      error_type: 0
      message: "Failure while setting up Foreman. < AssertionError:[ Internal error: while converting `to_timestamp`(`create_time`, 'YYYY-MM-dd HH:mm:ss') ] < InvocationTargetException < UnsupportedOperationException:[ class org.eigenbase.sql.SqlUnresolvedFunction: to_timestamp ]"
      ]

      Stack trace:
      java.lang.UnsupportedOperationException: class org.eigenbase.sql.SqlUnresolvedFunction: to_timestamp
      org.eigenbase.util.Util.needToImplement(Util.java:903) ~[optiq-core-0.7-20140513.013236-5.jar:na]
      org.eigenbase.sql.SqlOperator.inferReturnType(SqlOperator.java:456) ~[optiq-core-0.7-20140513.013236-5.jar:na]
      org.eigenbase.rex.RexBuilder.deriveReturnType(RexBuilder.java:260) ~[optiq-core-0.7-20140513.013236-5.jar:na]
      org.eigenbase.rex.RexBuilder.makeCall(RexBuilder.java:219) ~[optiq-core-0.7-20140513.013236-5.jar:na]
      org.eigenbase.sql2rel.StandardConvertletTable.convertFunction(StandardConvertletTable.java:597) ~[optiq-core-0.7-20140513.013236-5.jar:na]
      sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)(NativeMethodAccessorImpl.java) ~[na:1.7.0_45]
      sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_45]
      sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_45]
      java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_45]
      org.eigenbase.sql2rel.ReflectiveConvertletTable$2.convertCall(ReflectiveConvertletTable.java:139) ~[optiq-core-0.7-20140513.013236-5.jar:na]
      org.eigenbase.sql2rel.SqlNodeToRexConverterImpl.convertCall(SqlNodeToRexConverterImpl.java:52) ~[optiq-core-0.7-20140513.013236-5.jar:na]
      org.eigenbase.sql2rel.SqlToRelConverter$Blackboard.visit(SqlToRelConverter.java:4210) ~[optiq-core-0.7-20140513.013236-5.jar:na]
      org.eigenbase.sql2rel.SqlToRelConverter$Blackboard.visit(SqlToRelConverter.java:3611) ~[optiq-core-0.7-20140513.013236-5.jar:na]
      org.eigenbase.sql.SqlCall.accept(SqlCall.java:133) ~[optiq-core-0.7-20140513.013236-5.jar:na]
      org.eigenbase.sql2rel.SqlToRelConverter$Blackboard.convertExpression(SqlToRelConverter.java:4116) ~[optiq-core-0.7-20140513.013236-5.jar:na]
      org.eigenbase.sql2rel.SqlToRelConverter$AggConverter.visit(SqlToRelConverter.java:4517) ~[optiq-core-0.7-20140513.013236-5.jar:na]
      org.eigenbase.sql2rel.SqlToRelConverter$AggConverter.visit(SqlToRelConverter.java:4363) ~[optiq-core-0.7-20140513.013236-5.jar:na]
      org.eigenbase.sql.SqlCall.accept(SqlCall.java:133) ~[optiq-core-0.7-20140513.013236-5.jar:na]
      org.eigenbase.sql2rel.SqlToRelConverter$AggConverter.visit(SqlToRelConverter.java:4473) ~[optiq-core-0.7-20140513.013236-5.jar:na]
      org.eigenbase.sql2rel.SqlToRelConverter$AggConverter.visit(SqlToRelConverter.java:4363) ~[optiq-core-0.7-20140513.013236-5.jar:na]
      org.eigenbase.sql.SqlNodeList.accept(SqlNodeList.java:149) ~[optiq-core-0.7-20140513.013236-5.jar:na]
      org.eigenbase.sql2rel.SqlToRelConverter.createAggImpl(SqlToRelConverter.java:2427) ~[optiq-core-0.7-20140513.013236-5.jar:na]
      org.eigenbase.sql2rel.SqlToRelConverter.convertAgg(SqlToRelConverter.java:2321) ~[optiq-core-0.7-20140513.013236-5.jar:na]
      org.eigenbase.sql2rel.SqlToRelConverter.convertSelectImpl(SqlToRelConverter.java:514) ~[optiq-core-0.7-20140513.013236-5.jar:na]
      org.eigenbase.sql2rel.SqlToRelConverter.convertSelect(SqlToRelConverter.java:474) ~[optiq-core-0.7-20140513.013236-5.jar:na]
      org.eigenbase.sql2rel.SqlToRelConverter.convertQueryRecursive(SqlToRelConverter.java:2787) ~[optiq-core-0.7-20140513.013236-5.jar:na]
      org.eigenbase.sql2rel.SqlToRelConverter.convertQuery(SqlToRelConverter.java:432) ~[optiq-core-0.7-20140513.013236-5.jar:na]
      net.hydromatic.optiq.prepare.PlannerImpl.convert(PlannerImpl.java:192) ~[optiq-core-0.7-20140513.013236-5.jar:na]
      org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.convertToRel(DefaultSqlHandler.java:103) ~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
      org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.getPlan(DefaultSqlHandler.java:85) ~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
      org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan(DrillSqlWorker.java:134) ~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
      org.apache.drill.exec.work.foreman.Foreman.runSQL(Foreman.java:338) ~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
      org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:186) ~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
      java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_45]
      java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_45]
      java.lang.Thread.run(Thread.java:744) [na:1.7.0_45]

      Attachments

        1. DRILL-773.patch
          1 kB
          Mehant Baid

        Activity

          People

            DrillCommitter DrillCommitter
            knguyen Krystal
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: