[jira] [Commented] (CALCITE-1866) dateTime FLOOR to HOUR cause MySQL connector throw SQLException

2018-07-07 Thread Julian Hyde (JIRA)


[ 
https://issues.apache.org/jira/browse/CALCITE-1866?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16535980#comment-16535980
 ] 

Julian Hyde commented on CALCITE-1866:
--

Reviewing and testing now.

> dateTime FLOOR to HOUR cause MySQL connector throw SQLException
> ---
>
> Key: CALCITE-1866
> URL: https://issues.apache.org/jira/browse/CALCITE-1866
> Project: Calcite
>  Issue Type: Bug
>  Components: core
>Affects Versions: 1.14.0
> Environment: MySQL 5.6.34
> mysql-connector-java.jar:5.1.39
> Calcite 1.14.0-SNAPSHOT
>Reporter: Kang Wang
>Assignee: Julian Hyde
>Priority: Minor
>  Labels: easyfix
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> I execute the sql "select FLOOR(trade_time TO HOUR)  ..."
> then I get the ResultSet, if time hour is less than 10, I get the following 
> exception:
> --
> java.lang.RuntimeException: java.sql.SQLException: Bad format for Timestamp 
> '2017-06-30 7:00:00' in column 1.
>   at Baz$1$1.apply(Unknown Source)
>   at 
> org.apache.calcite.runtime.ResultSetEnumerable$ResultSetEnumerator.current(ResultSetEnumerable.java:187)
>   at 
> org.apache.calcite.linq4j.Linq4j$EnumeratorIterator.next(Linq4j.java:672)
>   at 
> org.apache.calcite.avatica.util.IteratorCursor.next(IteratorCursor.java:46)
>   at 
> org.apache.calcite.avatica.AvaticaResultSet.next(AvaticaResultSet.java:239)
>   at TestCalcite.test028_jdbc(TestCalcite.java:75)
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)
>   at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
>   at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
>   at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
>   at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
>   at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at org.junit.runners.Suite.runChild(Suite.java:128)
>   at org.junit.runners.Suite.runChild(Suite.java:27)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
>   at 
> com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
>   at 
> com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:51)
>   at 
> com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
>   at 
> com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
> Caused by: java.sql.SQLException: Bad format for Timestamp '2017-06-30 
> 7:00:00' in column 1.
>   at com.mysql.jdbc.ResultSetRow.getTimestampFast(ResultSetRow.java:1157)
>   at com.mysql.jdbc.ByteArrayRow.getTimestampFast(ByteArrayRow.java:130)
>   at 
> com.mysql.jdbc.ResultSetImpl.getTimestampInternal(ResultSetImpl.java:5946)
>   at com.mysql.jdbc.ResultSetImpl.getTimestamp(ResultSetImpl.java:5616)
>   at 
> org.apache.commons.dbcp.DelegatingResultSet.getTimestamp(DelegatingResultSet.java:250)
>   at 
> org.apache.commons.dbcp.DelegatingResultSet.getTimestamp(DelegatingResultSet.java:250)
>   ... 36 more



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (CALCITE-1866) dateTime FLOOR to HOUR cause MySQL connector throw SQLException

2018-06-29 Thread Sergey Nuyanzin (JIRA)


[ 
https://issues.apache.org/jira/browse/CALCITE-1866?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16527794#comment-16527794
 ] 

Sergey Nuyanzin commented on CALCITE-1866:
--

tried to adopt existing changes to the current master + added tests for 
floor(datetime to hour), floor(datetime to minute), floor(datetime to second)
https://github.com/apache/calcite/pull/745

> dateTime FLOOR to HOUR cause MySQL connector throw SQLException
> ---
>
> Key: CALCITE-1866
> URL: https://issues.apache.org/jira/browse/CALCITE-1866
> Project: Calcite
>  Issue Type: Bug
>  Components: core
>Affects Versions: 1.14.0
> Environment: MySQL 5.6.34
> mysql-connector-java.jar:5.1.39
> Calcite 1.14.0-SNAPSHOT
>Reporter: Kang Wang
>Assignee: Julian Hyde
>Priority: Minor
>  Labels: easyfix
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> I execute the sql "select FLOOR(trade_time TO HOUR)  ..."
> then I get the ResultSet, if time hour is less than 10, I get the following 
> exception:
> --
> java.lang.RuntimeException: java.sql.SQLException: Bad format for Timestamp 
> '2017-06-30 7:00:00' in column 1.
>   at Baz$1$1.apply(Unknown Source)
>   at 
> org.apache.calcite.runtime.ResultSetEnumerable$ResultSetEnumerator.current(ResultSetEnumerable.java:187)
>   at 
> org.apache.calcite.linq4j.Linq4j$EnumeratorIterator.next(Linq4j.java:672)
>   at 
> org.apache.calcite.avatica.util.IteratorCursor.next(IteratorCursor.java:46)
>   at 
> org.apache.calcite.avatica.AvaticaResultSet.next(AvaticaResultSet.java:239)
>   at TestCalcite.test028_jdbc(TestCalcite.java:75)
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)
>   at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
>   at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
>   at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
>   at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
>   at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at org.junit.runners.Suite.runChild(Suite.java:128)
>   at org.junit.runners.Suite.runChild(Suite.java:27)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
>   at 
> com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
>   at 
> com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:51)
>   at 
> com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
>   at 
> com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
> Caused by: java.sql.SQLException: Bad format for Timestamp '2017-06-30 
> 7:00:00' in column 1.
>   at com.mysql.jdbc.ResultSetRow.getTimestampFast(ResultSetRow.java:1157)
>   at com.mysql.jdbc.ByteArrayRow.getTimestampFast(ByteArrayRow.java:130)
>   at 
> com.mysql.jdbc.ResultSetImpl.getTimestampInternal(ResultSetImpl.java:5946)
>   at com.mysql.jdbc.ResultSetImpl.getTimestamp(ResultSetImpl.java:5616)
>   at 
> org.apache.commons.dbcp.DelegatingResultSet.getTimestamp(DelegatingResultSet.java:250)
>   at 
> org.apache.commons.dbcp.DelegatingResultSet.getTimestamp(DelegatingResultSet.java:250)
>   ... 36 more



--
This message was sent by Atlassian JIRA

[jira] [Commented] (CALCITE-1866) dateTime FLOOR to HOUR cause MySQL connector throw SQLException

2017-09-01 Thread Chris Baynes (JIRA)

[ 
https://issues.apache.org/jira/browse/CALCITE-1866?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16150382#comment-16150382
 ] 

Chris Baynes commented on CALCITE-1866:
---

[~wkang] could you push your tests to the branch? I can have a go at getting 
them to run.

> dateTime FLOOR to HOUR cause MySQL connector throw SQLException
> ---
>
> Key: CALCITE-1866
> URL: https://issues.apache.org/jira/browse/CALCITE-1866
> Project: Calcite
>  Issue Type: Bug
>  Components: core
>Affects Versions: 1.14.0
> Environment: MySQL 5.6.34
> mysql-connector-java.jar:5.1.39
> Calcite 1.14.0-SNAPSHOT
>Reporter: Kang Wang
>Assignee: Julian Hyde
>Priority: Minor
>  Labels: easyfix
> Fix For: 1.14.0
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> I execute the sql "select FLOOR(trade_time TO HOUR)  ..."
> then I get the ResultSet, if time hour is less than 10, I get the following 
> exception:
> --
> java.lang.RuntimeException: java.sql.SQLException: Bad format for Timestamp 
> '2017-06-30 7:00:00' in column 1.
>   at Baz$1$1.apply(Unknown Source)
>   at 
> org.apache.calcite.runtime.ResultSetEnumerable$ResultSetEnumerator.current(ResultSetEnumerable.java:187)
>   at 
> org.apache.calcite.linq4j.Linq4j$EnumeratorIterator.next(Linq4j.java:672)
>   at 
> org.apache.calcite.avatica.util.IteratorCursor.next(IteratorCursor.java:46)
>   at 
> org.apache.calcite.avatica.AvaticaResultSet.next(AvaticaResultSet.java:239)
>   at TestCalcite.test028_jdbc(TestCalcite.java:75)
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)
>   at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
>   at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
>   at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
>   at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
>   at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at org.junit.runners.Suite.runChild(Suite.java:128)
>   at org.junit.runners.Suite.runChild(Suite.java:27)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
>   at 
> com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
>   at 
> com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:51)
>   at 
> com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
>   at 
> com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
> Caused by: java.sql.SQLException: Bad format for Timestamp '2017-06-30 
> 7:00:00' in column 1.
>   at com.mysql.jdbc.ResultSetRow.getTimestampFast(ResultSetRow.java:1157)
>   at com.mysql.jdbc.ByteArrayRow.getTimestampFast(ByteArrayRow.java:130)
>   at 
> com.mysql.jdbc.ResultSetImpl.getTimestampInternal(ResultSetImpl.java:5946)
>   at com.mysql.jdbc.ResultSetImpl.getTimestamp(ResultSetImpl.java:5616)
>   at 
> org.apache.commons.dbcp.DelegatingResultSet.getTimestamp(DelegatingResultSet.java:250)
>   at 
> org.apache.commons.dbcp.DelegatingResultSet.getTimestamp(DelegatingResultSet.java:250)
>   ... 36 more



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (CALCITE-1866) dateTime FLOOR to HOUR cause MySQL connector throw SQLException

2017-07-27 Thread Julian Hyde (JIRA)

[ 
https://issues.apache.org/jira/browse/CALCITE-1866?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16103540#comment-16103540
 ] 

Julian Hyde commented on CALCITE-1866:
--

I reviewed the pull request https://github.com/apache/calcite/pull/488 as of 
https://github.com/apache/calcite/pull/488/commits/a53cbad9a1f4da94413754629d35167e7fa2eed8.
 Looks good as far as it goes, but can you please add a test case.

> dateTime FLOOR to HOUR cause MySQL connector throw SQLException
> ---
>
> Key: CALCITE-1866
> URL: https://issues.apache.org/jira/browse/CALCITE-1866
> Project: Calcite
>  Issue Type: Bug
>  Components: core
>Affects Versions: 1.14.0
> Environment: MySQL 5.6.34
> mysql-connector-java.jar:5.1.39
> Calcite 1.14.0-SNAPSHOT
>Reporter: Kang Wang
>Assignee: Julian Hyde
>Priority: Minor
>  Labels: easyfix
> Fix For: 1.14.0
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> I execute the sql "select FLOOR(trade_time TO HOUR)  ..."
> then I get the ResultSet, if time hour is less than 10, I get the following 
> exception:
> --
> java.lang.RuntimeException: java.sql.SQLException: Bad format for Timestamp 
> '2017-06-30 7:00:00' in column 1.
>   at Baz$1$1.apply(Unknown Source)
>   at 
> org.apache.calcite.runtime.ResultSetEnumerable$ResultSetEnumerator.current(ResultSetEnumerable.java:187)
>   at 
> org.apache.calcite.linq4j.Linq4j$EnumeratorIterator.next(Linq4j.java:672)
>   at 
> org.apache.calcite.avatica.util.IteratorCursor.next(IteratorCursor.java:46)
>   at 
> org.apache.calcite.avatica.AvaticaResultSet.next(AvaticaResultSet.java:239)
>   at TestCalcite.test028_jdbc(TestCalcite.java:75)
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)
>   at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
>   at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
>   at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
>   at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
>   at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at org.junit.runners.Suite.runChild(Suite.java:128)
>   at org.junit.runners.Suite.runChild(Suite.java:27)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
>   at 
> com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
>   at 
> com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:51)
>   at 
> com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
>   at 
> com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
> Caused by: java.sql.SQLException: Bad format for Timestamp '2017-06-30 
> 7:00:00' in column 1.
>   at com.mysql.jdbc.ResultSetRow.getTimestampFast(ResultSetRow.java:1157)
>   at com.mysql.jdbc.ByteArrayRow.getTimestampFast(ByteArrayRow.java:130)
>   at 
> com.mysql.jdbc.ResultSetImpl.getTimestampInternal(ResultSetImpl.java:5946)
>   at com.mysql.jdbc.ResultSetImpl.getTimestamp(ResultSetImpl.java:5616)
>   at 
> org.apache.commons.dbcp.DelegatingResultSet.getTimestamp(DelegatingResultSet.java:250)
>   at 
> org.apache.commons.dbcp.DelegatingResultSet.getTimestamp(DelegatingResultSet.java:250)
>   

[jira] [Commented] (CALCITE-1866) dateTime FLOOR to HOUR cause MySQL connector throw SQLException

2017-07-11 Thread Julian Hyde (JIRA)

[ 
https://issues.apache.org/jira/browse/CALCITE-1866?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16082863#comment-16082863
 ] 

Julian Hyde commented on CALCITE-1866:
--

Those are all timeouts due to MySQL (or your VM) being slow. I'm pretty sure 
your changes didn't cause the problem.

> dateTime FLOOR to HOUR cause MySQL connector throw SQLException
> ---
>
> Key: CALCITE-1866
> URL: https://issues.apache.org/jira/browse/CALCITE-1866
> Project: Calcite
>  Issue Type: Bug
>  Components: core
>Affects Versions: 1.14.0
> Environment: MySQL 5.6.34
> mysql-connector-java.jar:5.1.39
> Calcite 1.14.0-SNAPSHOT
>Reporter: Kang Wang
>Assignee: Julian Hyde
>Priority: Minor
>  Labels: easyfix
> Fix For: 1.14.0
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> I execute the sql "select FLOOR(trade_time TO HOUR)  ..."
> then I get the ResultSet, if time hour is less than 10, I get the following 
> exception:
> --
> java.lang.RuntimeException: java.sql.SQLException: Bad format for Timestamp 
> '2017-06-30 7:00:00' in column 1.
>   at Baz$1$1.apply(Unknown Source)
>   at 
> org.apache.calcite.runtime.ResultSetEnumerable$ResultSetEnumerator.current(ResultSetEnumerable.java:187)
>   at 
> org.apache.calcite.linq4j.Linq4j$EnumeratorIterator.next(Linq4j.java:672)
>   at 
> org.apache.calcite.avatica.util.IteratorCursor.next(IteratorCursor.java:46)
>   at 
> org.apache.calcite.avatica.AvaticaResultSet.next(AvaticaResultSet.java:239)
>   at TestCalcite.test028_jdbc(TestCalcite.java:75)
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)
>   at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
>   at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
>   at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
>   at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
>   at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at org.junit.runners.Suite.runChild(Suite.java:128)
>   at org.junit.runners.Suite.runChild(Suite.java:27)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
>   at 
> com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
>   at 
> com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:51)
>   at 
> com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
>   at 
> com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
> Caused by: java.sql.SQLException: Bad format for Timestamp '2017-06-30 
> 7:00:00' in column 1.
>   at com.mysql.jdbc.ResultSetRow.getTimestampFast(ResultSetRow.java:1157)
>   at com.mysql.jdbc.ByteArrayRow.getTimestampFast(ByteArrayRow.java:130)
>   at 
> com.mysql.jdbc.ResultSetImpl.getTimestampInternal(ResultSetImpl.java:5946)
>   at com.mysql.jdbc.ResultSetImpl.getTimestamp(ResultSetImpl.java:5616)
>   at 
> org.apache.commons.dbcp.DelegatingResultSet.getTimestamp(DelegatingResultSet.java:250)
>   at 
> org.apache.commons.dbcp.DelegatingResultSet.getTimestamp(DelegatingResultSet.java:250)
>   ... 36 more



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (CALCITE-1866) dateTime FLOOR to HOUR cause MySQL connector throw SQLException

2017-07-02 Thread Kang Wang (JIRA)

[ 
https://issues.apache.org/jira/browse/CALCITE-1866?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16071838#comment-16071838
 ] 

Kang Wang commented on CALCITE-1866:


It's a good hint. I'll try to write some testing code and comment here later

> dateTime FLOOR to HOUR cause MySQL connector throw SQLException
> ---
>
> Key: CALCITE-1866
> URL: https://issues.apache.org/jira/browse/CALCITE-1866
> Project: Calcite
>  Issue Type: Bug
>  Components: core
>Affects Versions: 1.14.0
> Environment: MySQL 5.6.34
> mysql-connector-java.jar:5.1.39
> Calcite 1.14.0-SNAPSHOT
>Reporter: Kang Wang
>Assignee: Julian Hyde
>Priority: Minor
>  Labels: easyfix
> Fix For: 1.14.0
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> I execute the sql "select FLOOR(trade_time TO HOUR)  ..."
> then I get the ResultSet, if time hour is less than 10, I get the following 
> exception:
> --
> java.lang.RuntimeException: java.sql.SQLException: Bad format for Timestamp 
> '2017-06-30 7:00:00' in column 1.
>   at Baz$1$1.apply(Unknown Source)
>   at 
> org.apache.calcite.runtime.ResultSetEnumerable$ResultSetEnumerator.current(ResultSetEnumerable.java:187)
>   at 
> org.apache.calcite.linq4j.Linq4j$EnumeratorIterator.next(Linq4j.java:672)
>   at 
> org.apache.calcite.avatica.util.IteratorCursor.next(IteratorCursor.java:46)
>   at 
> org.apache.calcite.avatica.AvaticaResultSet.next(AvaticaResultSet.java:239)
>   at TestCalcite.test028_jdbc(TestCalcite.java:75)
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)
>   at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
>   at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
>   at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
>   at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
>   at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at org.junit.runners.Suite.runChild(Suite.java:128)
>   at org.junit.runners.Suite.runChild(Suite.java:27)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
>   at 
> com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
>   at 
> com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:51)
>   at 
> com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
>   at 
> com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
> Caused by: java.sql.SQLException: Bad format for Timestamp '2017-06-30 
> 7:00:00' in column 1.
>   at com.mysql.jdbc.ResultSetRow.getTimestampFast(ResultSetRow.java:1157)
>   at com.mysql.jdbc.ByteArrayRow.getTimestampFast(ByteArrayRow.java:130)
>   at 
> com.mysql.jdbc.ResultSetImpl.getTimestampInternal(ResultSetImpl.java:5946)
>   at com.mysql.jdbc.ResultSetImpl.getTimestamp(ResultSetImpl.java:5616)
>   at 
> org.apache.commons.dbcp.DelegatingResultSet.getTimestamp(DelegatingResultSet.java:250)
>   at 
> org.apache.commons.dbcp.DelegatingResultSet.getTimestamp(DelegatingResultSet.java:250)
>   ... 36 more



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (CALCITE-1866) dateTime FLOOR to HOUR cause MySQL connector throw SQLException

2017-07-02 Thread Julian Hyde (JIRA)

[ 
https://issues.apache.org/jira/browse/CALCITE-1866?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16071755#comment-16071755
 ] 

Julian Hyde commented on CALCITE-1866:
--

You can test against MySQL by specifying {{-Dcalcite.test.db=mysql}}. I think 
for these purposes MySQL and MariaDB are the same. You need a running and 
populated MySQL database and the easiest way to do this is to run the 
https://github.com/vlsi/calcite-test-dataset/ Vagrant VM.

> dateTime FLOOR to HOUR cause MySQL connector throw SQLException
> ---
>
> Key: CALCITE-1866
> URL: https://issues.apache.org/jira/browse/CALCITE-1866
> Project: Calcite
>  Issue Type: Bug
>  Components: core
>Affects Versions: 1.14.0
> Environment: MySQL 5.6.34
> mysql-connector-java.jar:5.1.39
> Calcite 1.14.0-SNAPSHOT
>Reporter: Kang Wang
>Assignee: Julian Hyde
>Priority: Minor
>  Labels: easyfix
> Fix For: 1.14.0
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> I execute the sql "select FLOOR(trade_time TO HOUR)  ..."
> then I get the ResultSet, if time hour is less than 10, I get the following 
> exception:
> --
> java.lang.RuntimeException: java.sql.SQLException: Bad format for Timestamp 
> '2017-06-30 7:00:00' in column 1.
>   at Baz$1$1.apply(Unknown Source)
>   at 
> org.apache.calcite.runtime.ResultSetEnumerable$ResultSetEnumerator.current(ResultSetEnumerable.java:187)
>   at 
> org.apache.calcite.linq4j.Linq4j$EnumeratorIterator.next(Linq4j.java:672)
>   at 
> org.apache.calcite.avatica.util.IteratorCursor.next(IteratorCursor.java:46)
>   at 
> org.apache.calcite.avatica.AvaticaResultSet.next(AvaticaResultSet.java:239)
>   at TestCalcite.test028_jdbc(TestCalcite.java:75)
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)
>   at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
>   at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
>   at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
>   at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
>   at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at org.junit.runners.Suite.runChild(Suite.java:128)
>   at org.junit.runners.Suite.runChild(Suite.java:27)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
>   at 
> com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
>   at 
> com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:51)
>   at 
> com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
>   at 
> com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
> Caused by: java.sql.SQLException: Bad format for Timestamp '2017-06-30 
> 7:00:00' in column 1.
>   at com.mysql.jdbc.ResultSetRow.getTimestampFast(ResultSetRow.java:1157)
>   at com.mysql.jdbc.ByteArrayRow.getTimestampFast(ByteArrayRow.java:130)
>   at 
> com.mysql.jdbc.ResultSetImpl.getTimestampInternal(ResultSetImpl.java:5946)
>   at com.mysql.jdbc.ResultSetImpl.getTimestamp(ResultSetImpl.java:5616)
>   at 
> org.apache.commons.dbcp.DelegatingResultSet.getTimestamp(DelegatingResultSet.java:250)
>   at 
> 

[jira] [Commented] (CALCITE-1866) dateTime FLOOR to HOUR cause MySQL connector throw SQLException

2017-07-01 Thread Kang Wang (JIRA)

[ 
https://issues.apache.org/jira/browse/CALCITE-1866?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16071272#comment-16071272
 ] 

Kang Wang commented on CALCITE-1866:


I tried to use [MariaDB4j |https://github.com/vorburger/MariaDB4j] with JUnit.
We start a temp db server with MariaDB4j, then we can test MySQL dialect SQLs.
But I am not sure if this is a good solution for Calcite, How to test sql 
dialect of some other DB?

> dateTime FLOOR to HOUR cause MySQL connector throw SQLException
> ---
>
> Key: CALCITE-1866
> URL: https://issues.apache.org/jira/browse/CALCITE-1866
> Project: Calcite
>  Issue Type: Bug
>  Components: core
>Affects Versions: 1.14.0
> Environment: MySQL 5.6.34
> mysql-connector-java.jar:5.1.39
> Calcite 1.14.0-SNAPSHOT
>Reporter: Kang Wang
>Assignee: Julian Hyde
>Priority: Minor
>  Labels: easyfix
> Fix For: 1.14.0
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> I execute the sql "select FLOOR(trade_time TO HOUR)  ..."
> then I get the ResultSet, if time hour is less than 10, I get the following 
> exception:
> --
> java.lang.RuntimeException: java.sql.SQLException: Bad format for Timestamp 
> '2017-06-30 7:00:00' in column 1.
>   at Baz$1$1.apply(Unknown Source)
>   at 
> org.apache.calcite.runtime.ResultSetEnumerable$ResultSetEnumerator.current(ResultSetEnumerable.java:187)
>   at 
> org.apache.calcite.linq4j.Linq4j$EnumeratorIterator.next(Linq4j.java:672)
>   at 
> org.apache.calcite.avatica.util.IteratorCursor.next(IteratorCursor.java:46)
>   at 
> org.apache.calcite.avatica.AvaticaResultSet.next(AvaticaResultSet.java:239)
>   at TestCalcite.test028_jdbc(TestCalcite.java:75)
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)
>   at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
>   at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
>   at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
>   at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
>   at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at org.junit.runners.Suite.runChild(Suite.java:128)
>   at org.junit.runners.Suite.runChild(Suite.java:27)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
>   at 
> com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
>   at 
> com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:51)
>   at 
> com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
>   at 
> com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
> Caused by: java.sql.SQLException: Bad format for Timestamp '2017-06-30 
> 7:00:00' in column 1.
>   at com.mysql.jdbc.ResultSetRow.getTimestampFast(ResultSetRow.java:1157)
>   at com.mysql.jdbc.ByteArrayRow.getTimestampFast(ByteArrayRow.java:130)
>   at 
> com.mysql.jdbc.ResultSetImpl.getTimestampInternal(ResultSetImpl.java:5946)
>   at com.mysql.jdbc.ResultSetImpl.getTimestamp(ResultSetImpl.java:5616)
>   at 
> org.apache.commons.dbcp.DelegatingResultSet.getTimestamp(DelegatingResultSet.java:250)
>   at 
> 

[jira] [Commented] (CALCITE-1866) dateTime FLOOR to HOUR cause MySQL connector throw SQLException

2017-07-01 Thread Kang Wang (JIRA)

[ 
https://issues.apache.org/jira/browse/CALCITE-1866?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16071269#comment-16071269
 ] 

Kang Wang commented on CALCITE-1866:


I tried to use [MariaDB4j |https://github.com/vorburger/MariaDB4j] with JUnit.
We start a temp db server with MariaDB4j, then we can test MySQL dialect SQLs.
But I am not sure if this is a good solution for Calcite, How to test sql 
dialect of some other DB?

> dateTime FLOOR to HOUR cause MySQL connector throw SQLException
> ---
>
> Key: CALCITE-1866
> URL: https://issues.apache.org/jira/browse/CALCITE-1866
> Project: Calcite
>  Issue Type: Bug
>  Components: core
>Affects Versions: 1.14.0
> Environment: MySQL 5.6.34
> mysql-connector-java.jar:5.1.39
> Calcite 1.14.0-SNAPSHOT
>Reporter: Kang Wang
>Assignee: Julian Hyde
>Priority: Minor
>  Labels: easyfix
> Fix For: 1.14.0
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> I execute the sql "select FLOOR(trade_time TO HOUR)  ..."
> then I get the ResultSet, if time hour is less than 10, I get the following 
> exception:
> --
> java.lang.RuntimeException: java.sql.SQLException: Bad format for Timestamp 
> '2017-06-30 7:00:00' in column 1.
>   at Baz$1$1.apply(Unknown Source)
>   at 
> org.apache.calcite.runtime.ResultSetEnumerable$ResultSetEnumerator.current(ResultSetEnumerable.java:187)
>   at 
> org.apache.calcite.linq4j.Linq4j$EnumeratorIterator.next(Linq4j.java:672)
>   at 
> org.apache.calcite.avatica.util.IteratorCursor.next(IteratorCursor.java:46)
>   at 
> org.apache.calcite.avatica.AvaticaResultSet.next(AvaticaResultSet.java:239)
>   at TestCalcite.test028_jdbc(TestCalcite.java:75)
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)
>   at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
>   at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
>   at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
>   at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
>   at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at org.junit.runners.Suite.runChild(Suite.java:128)
>   at org.junit.runners.Suite.runChild(Suite.java:27)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
>   at 
> com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
>   at 
> com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:51)
>   at 
> com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
>   at 
> com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
> Caused by: java.sql.SQLException: Bad format for Timestamp '2017-06-30 
> 7:00:00' in column 1.
>   at com.mysql.jdbc.ResultSetRow.getTimestampFast(ResultSetRow.java:1157)
>   at com.mysql.jdbc.ByteArrayRow.getTimestampFast(ByteArrayRow.java:130)
>   at 
> com.mysql.jdbc.ResultSetImpl.getTimestampInternal(ResultSetImpl.java:5946)
>   at com.mysql.jdbc.ResultSetImpl.getTimestamp(ResultSetImpl.java:5616)
>   at 
> org.apache.commons.dbcp.DelegatingResultSet.getTimestamp(DelegatingResultSet.java:250)
>   at 
> 

[jira] [Commented] (CALCITE-1866) dateTime FLOOR to HOUR cause MySQL connector throw SQLException

2017-06-30 Thread Julian Hyde (JIRA)

[ 
https://issues.apache.org/jira/browse/CALCITE-1866?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16070411#comment-16070411
 ] 

Julian Hyde commented on CALCITE-1866:
--

[~wkang], I reviewed your PR. Looks good, but can you add a test case please.

Also, please don't mark bugs "resolved". A committer will do that when they 
push your fix. Then we will mark it "closed" when the release happens.

[~chris-baynes], Why does the testing have to wait until after CALCITE-1841? I 
don't think the tests would change much. The best time to add a test is usually 
right now.

> dateTime FLOOR to HOUR cause MySQL connector throw SQLException
> ---
>
> Key: CALCITE-1866
> URL: https://issues.apache.org/jira/browse/CALCITE-1866
> Project: Calcite
>  Issue Type: Bug
>  Components: core
>Affects Versions: 1.14.0
> Environment: MySQL 5.6.34
> mysql-connector-java.jar:5.1.39
> Calcite 1.14.0-SNAPSHOT
>Reporter: Kang Wang
>Assignee: Julian Hyde
>Priority: Minor
>  Labels: easyfix
> Fix For: 1.14.0
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> I execute the sql "select FLOOR(trade_time TO HOUR)  ..."
> then I get the ResultSet, if time hour is less than 10, I get the following 
> exception:
> --
> java.lang.RuntimeException: java.sql.SQLException: Bad format for Timestamp 
> '2017-06-30 7:00:00' in column 1.
>   at Baz$1$1.apply(Unknown Source)
>   at 
> org.apache.calcite.runtime.ResultSetEnumerable$ResultSetEnumerator.current(ResultSetEnumerable.java:187)
>   at 
> org.apache.calcite.linq4j.Linq4j$EnumeratorIterator.next(Linq4j.java:672)
>   at 
> org.apache.calcite.avatica.util.IteratorCursor.next(IteratorCursor.java:46)
>   at 
> org.apache.calcite.avatica.AvaticaResultSet.next(AvaticaResultSet.java:239)
>   at TestCalcite.test028_jdbc(TestCalcite.java:75)
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)
>   at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
>   at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
>   at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
>   at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
>   at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at org.junit.runners.Suite.runChild(Suite.java:128)
>   at org.junit.runners.Suite.runChild(Suite.java:27)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
>   at 
> com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
>   at 
> com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:51)
>   at 
> com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
>   at 
> com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
> Caused by: java.sql.SQLException: Bad format for Timestamp '2017-06-30 
> 7:00:00' in column 1.
>   at com.mysql.jdbc.ResultSetRow.getTimestampFast(ResultSetRow.java:1157)
>   at com.mysql.jdbc.ByteArrayRow.getTimestampFast(ByteArrayRow.java:130)
>   at 
> com.mysql.jdbc.ResultSetImpl.getTimestampInternal(ResultSetImpl.java:5946)
>   at com.mysql.jdbc.ResultSetImpl.getTimestamp(ResultSetImpl.java:5616)
>   at 
> 

[jira] [Commented] (CALCITE-1866) dateTime FLOOR to HOUR cause MySQL connector throw SQLException

2017-06-30 Thread Chris Baynes (JIRA)

[ 
https://issues.apache.org/jira/browse/CALCITE-1866?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16070053#comment-16070053
 ] 

Chris Baynes commented on CALCITE-1866:
---

Can confirm that this fix makes sense.

Hoping to get better test coverage for these types of things once there is a 
nice separation of the dialect unparsing like 
https://issues.apache.org/jira/browse/CALCITE-1841

> dateTime FLOOR to HOUR cause MySQL connector throw SQLException
> ---
>
> Key: CALCITE-1866
> URL: https://issues.apache.org/jira/browse/CALCITE-1866
> Project: Calcite
>  Issue Type: Bug
>  Components: core
>Affects Versions: 1.14.0
> Environment: MySQL 5.6.34
> mysql-connector-java.jar:5.1.39
> Calcite 1.14.0-SNAPSHOT
>Reporter: Kang Wang
>Assignee: Julian Hyde
>Priority: Minor
>  Labels: easyfix
> Fix For: next, 1.14.0
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> I execute the sql "select FLOOR(trade_time TO HOUR)  ..."
> then I get the ResultSet, if time hour is less than 10, I get the following 
> exception:
> --
> java.lang.RuntimeException: java.sql.SQLException: Bad format for Timestamp 
> '2017-06-30 7:00:00' in column 1.
>   at Baz$1$1.apply(Unknown Source)
>   at 
> org.apache.calcite.runtime.ResultSetEnumerable$ResultSetEnumerator.current(ResultSetEnumerable.java:187)
>   at 
> org.apache.calcite.linq4j.Linq4j$EnumeratorIterator.next(Linq4j.java:672)
>   at 
> org.apache.calcite.avatica.util.IteratorCursor.next(IteratorCursor.java:46)
>   at 
> org.apache.calcite.avatica.AvaticaResultSet.next(AvaticaResultSet.java:239)
>   at TestCalcite.test028_jdbc(TestCalcite.java:75)
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)
>   at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
>   at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
>   at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
>   at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
>   at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at org.junit.runners.Suite.runChild(Suite.java:128)
>   at org.junit.runners.Suite.runChild(Suite.java:27)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
>   at 
> com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
>   at 
> com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:51)
>   at 
> com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
>   at 
> com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
> Caused by: java.sql.SQLException: Bad format for Timestamp '2017-06-30 
> 7:00:00' in column 1.
>   at com.mysql.jdbc.ResultSetRow.getTimestampFast(ResultSetRow.java:1157)
>   at com.mysql.jdbc.ByteArrayRow.getTimestampFast(ByteArrayRow.java:130)
>   at 
> com.mysql.jdbc.ResultSetImpl.getTimestampInternal(ResultSetImpl.java:5946)
>   at com.mysql.jdbc.ResultSetImpl.getTimestamp(ResultSetImpl.java:5616)
>   at 
> org.apache.commons.dbcp.DelegatingResultSet.getTimestamp(DelegatingResultSet.java:250)
>   at 
> org.apache.commons.dbcp.DelegatingResultSet.getTimestamp(DelegatingResultSet.java:250)
>   ... 36 more