vlsi commented on a change in pull request #971: [CALCITE-1703] Functions on 
TIMESTAMP column throws ClassCastException
URL: https://github.com/apache/calcite/pull/971#discussion_r260918775
 
 

 ##########
 File path: core/src/test/java/org/apache/calcite/test/ObjectArrayTableTest.java
 ##########
 @@ -241,6 +244,35 @@ private void withJavaSqlDateTypes(TestWithConnection 
test) throws SQLException {
     });
 
   }
+
+  /**
+   * Test to confirm java.sql.Timestamp can be casted to Timestamp with 
different precision.
+   * The cast should be done the same as with TIMESTAMP literal.
+   */
+  @Test public void testCastTimestampToTimestamp() throws SQLException {
+
+    withJavaSqlDateTypes(connection -> {
+
+      Statement statement = connection.createStatement();
+      final String sql = "select %s as EXPECTED, %s as ACTUAL from 
\"java_sql_date_types\"";
+
+      for (int i = 3; i >= 0; i--) {
+        final String castTo = format(Locale.ROOT, "TIMESTAMP(%d)", i);
+
+        final String expected = format(Locale.ROOT,
+            "cast(TIMESTAMP '2018-12-14 18:29:34.123' as %s)", castTo);
+        final String actual = format(Locale.ROOT, "cast(\"ts\" as %s)", 
castTo);
+        final ResultSet resultSet = statement.executeQuery(
+            format(Locale.ROOT, sql, expected, actual));
+        resultSet.next();
+        assertEquals(format(Locale.ROOT, "cast(java.sql.Timestamp as %s)", 
castTo),
 
 Review comment:
   It is great you add `castTo` to the message, however it would be really good 
if you add source value as well.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to