Krystal created DRILL-773:
-----------------------------
Summary: MIN and MAX against to_timestamp not working
Key: DRILL-773
URL: https://issues.apache.org/jira/browse/DRILL-773
Project: Apache Drill
Issue Type: Bug
Components: Functions - Drill
Reporter: Krystal
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]
--
This message was sent by Atlassian JIRA
(v6.2#6252)