This is an automated email from the ASF dual-hosted git repository.

alexpl pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git


The following commit(s) were added to refs/heads/master by this push:
     new e53ce57e6aa IGNITE-22576 SQL Calcite: Fix default TIMESTAMP precision 
- Fixes #11407.
e53ce57e6aa is described below

commit e53ce57e6aa7a86c59633a9d88379309a5e177d8
Author: Aleksey Plekhanov <[email protected]>
AuthorDate: Fri Jul 19 10:30:37 2024 +0300

    IGNITE-22576 SQL Calcite: Fix default TIMESTAMP precision - Fixes #11407.
    
    Signed-off-by: Aleksey Plekhanov <[email protected]>
---
 .../query/calcite/type/IgniteTypeSystem.java       |  10 ++
 .../calcite/{ => integration}/DateTimeTest.java    | 121 +++++++++++----------
 .../DynamicParametersIntegrationTest.java          |   2 +-
 .../integration/QueryMetadataIntegrationTest.java  |   6 +-
 .../integration/TableDdlIntegrationTest.java       |   4 +-
 .../ignite/testsuites/IntegrationTestSuite.java    |   2 +-
 ...stamp_ms.test_ignore => test_timestamp_ms.test} |   5 +-
 7 files changed, 83 insertions(+), 67 deletions(-)

diff --git 
a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/type/IgniteTypeSystem.java
 
b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/type/IgniteTypeSystem.java
index dcde15bca89..a5a9594e20b 100644
--- 
a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/type/IgniteTypeSystem.java
+++ 
b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/type/IgniteTypeSystem.java
@@ -43,6 +43,16 @@ public class IgniteTypeSystem extends RelDataTypeSystemImpl 
implements Serializa
         return Short.MAX_VALUE;
     }
 
+    /** {@inheritDoc} */
+    @Override public int getDefaultPrecision(SqlTypeName typeName) {
+        // Timestamps internally stored as millis, precision more than 3 is 
redundant. At the same time,
+        // default Calcite precision 0 causes truncation when converting to 
TIMESTAMP without specifying precision.
+        if (typeName == SqlTypeName.TIMESTAMP || typeName == 
SqlTypeName.TIME_WITH_LOCAL_TIME_ZONE)
+            return 3;
+
+        return super.getDefaultPrecision(typeName);
+    }
+
     /** {@inheritDoc} */
     @Override public RelDataType deriveSumType(RelDataTypeFactory typeFactory, 
RelDataType argumentType) {
         RelDataType sumType;
diff --git 
a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/DateTimeTest.java
 
b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/integration/DateTimeTest.java
similarity index 63%
rename from 
modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/DateTimeTest.java
rename to 
modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/integration/DateTimeTest.java
index bce76202e40..1335e33aa6e 100644
--- 
a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/DateTimeTest.java
+++ 
b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/integration/DateTimeTest.java
@@ -15,39 +15,29 @@
  * limitations under the License.
  */
 
-package org.apache.ignite.internal.processors.query.calcite;
+package org.apache.ignite.internal.processors.query.calcite.integration;
 
 import java.sql.Time;
 import java.sql.Timestamp;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.TimeZone;
-import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteCache;
 import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.cache.QueryEntity;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.internal.IgniteEx;
-import org.apache.ignite.internal.processors.query.QueryEngine;
-import org.apache.ignite.internal.processors.query.calcite.util.Commons;
-import org.apache.ignite.testframework.junits.WithSystemProperty;
-import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.junit.Test;
 
 import static java.util.Collections.singletonList;
 
 /** */
-@WithSystemProperty(key = "calcite.debug", value = "true")
-public class DateTimeTest extends GridCommonAbstractTest {
+public class DateTimeTest extends AbstractBasicIntegrationTest {
     /** */
     private static final SimpleDateFormat DATE_FORMAT = new 
SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
 
-    /** */
-    private static QueryEngine queryEngine;
-
     /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
-        Ignite grid = startGridsMultiThreaded(1);
+        super.beforeTestsStarted();
 
         QueryEntity qryEnt = new QueryEntity();
         qryEnt.setKeyFieldName("ID");
@@ -68,7 +58,7 @@ public class DateTimeTest extends GridCommonAbstractTest {
             .setQueryEntities(singletonList(qryEnt))
             .setSqlSchema("PUBLIC");
 
-        IgniteCache<Integer, DateTimeEntry> dateTimeCache = 
grid.createCache(cfg);
+        IgniteCache<Integer, DateTimeEntry> dateTimeCache = 
client.createCache(cfg);
 
         dateTimeCache.put(1, new DateTimeEntry(1, javaDate("2020-10-01 
12:00:00.000"),
             sqlDate("2020-10-01"), sqlTime("12:00:00"), 
sqlTimestamp("2020-10-01 12:00:00.000")));
@@ -78,16 +68,17 @@ public class DateTimeTest extends GridCommonAbstractTest {
             sqlDate("2020-10-20"), sqlTime("13:15:00"), 
sqlTimestamp("2020-10-20 13:15:00.000")));
         dateTimeCache.put(4, new DateTimeEntry(4, javaDate("2020-01-01 
22:40:00.000"),
             sqlDate("2020-01-01"), sqlTime("22:40:00"), 
sqlTimestamp("2020-01-01 22:40:00.000")));
+    }
 
-        queryEngine = Commons.lookupComponent(((IgniteEx)grid).context(), 
QueryEngine.class);
-
-        awaitPartitionMapExchange();
+    /** {@inheritDoc} */
+    @Override protected void afterTest() throws Exception {
+        // Don't clean up caches after test.
     }
 
     /** */
     @Test
     public void testQuery1() throws Exception {
-        checkQuery("SELECT SQLDATE FROM datetimetable where SQLTIME = 
'12:00:00'")
+        assertQuery("SELECT SQLDATE FROM datetimetable where SQLTIME = 
'12:00:00'")
             .returns(sqlDate("2020-10-01"))
             .check();
     }
@@ -95,7 +86,7 @@ public class DateTimeTest extends GridCommonAbstractTest {
     /** */
     @Test
     public void testQuery2() throws Exception {
-        checkQuery("SELECT SQLDATE FROM datetimetable where JAVADATE = ?")
+        assertQuery("SELECT SQLDATE FROM datetimetable where JAVADATE = ?")
             .withParams(javaDate("2020-12-01 00:10:20.000"))
             .returns(sqlDate("2020-12-01"))
             .check();
@@ -104,7 +95,7 @@ public class DateTimeTest extends GridCommonAbstractTest {
     /** */
     @Test
     public void testQuery3() throws Exception {
-        checkQuery("SELECT SQLDATE FROM datetimetable where JAVADATE = ?")
+        assertQuery("SELECT SQLDATE FROM datetimetable where JAVADATE = ?")
             .withParams(sqlTimestamp("2020-12-01 00:10:20.000"))
             .returns(sqlDate("2020-12-01"))
             .check();
@@ -113,7 +104,7 @@ public class DateTimeTest extends GridCommonAbstractTest {
     /** */
     @Test
     public void testQuery4() throws Exception {
-        checkQuery("SELECT MAX(SQLDATE) FROM datetimetable")
+        assertQuery("SELECT MAX(SQLDATE) FROM datetimetable")
             .returns(sqlDate("2020-12-01"))
             .check();
     }
@@ -121,7 +112,7 @@ public class DateTimeTest extends GridCommonAbstractTest {
     /** */
     @Test
     public void testQuery5() throws Exception {
-        checkQuery("SELECT MIN(SQLDATE) FROM datetimetable")
+        assertQuery("SELECT MIN(SQLDATE) FROM datetimetable")
             .returns(sqlDate("2020-01-01"))
             .check();
     }
@@ -129,7 +120,7 @@ public class DateTimeTest extends GridCommonAbstractTest {
     /** */
     @Test
     public void testQuery6() throws Exception {
-        checkQuery("SELECT JAVADATE FROM datetimetable WHERE SQLTIME = 
'13:15:00'")
+        assertQuery("SELECT JAVADATE FROM datetimetable WHERE SQLTIME = 
'13:15:00'")
             .returns(javaDate("2020-10-20 13:15:00.000"))
             .check();
     }
@@ -137,7 +128,7 @@ public class DateTimeTest extends GridCommonAbstractTest {
     /** */
     @Test
     public void testQuery7() throws Exception {
-        checkQuery("SELECT t1.JAVADATE, t2.JAVADATE FROM datetimetable t1 " +
+        assertQuery("SELECT t1.JAVADATE, t2.JAVADATE FROM datetimetable t1 " +
             "INNER JOIN " +
             "(SELECT JAVADATE, CAST(SQLTIMESTAMP AS TIME) AS CASTED_TIME FROM 
datetimetable) t2 " +
             "ON t1.SQLTIME = t2.CASTED_TIME " +
@@ -157,52 +148,52 @@ public class DateTimeTest extends GridCommonAbstractTest {
             TimeZone.setDefault(TimeZone.getTimeZone("Europe/Moscow"));
 
             // Time zone change (EET->MSK) 1992-01-19 02:00:00 -> 1992-01-19 
03:00:00
-            checkQuery("select date 
'1992-01-19'").returns(sqlDate("1992-01-19")).check();
-            checkQuery("select date '1992-01-18' + interval (1) 
days").returns(sqlDate("1992-01-19")).check();
-            checkQuery("select date '1992-01-18' + interval (24) 
hours").returns(sqlDate("1992-01-19")).check();
-            checkQuery("SELECT timestamp '1992-01-18 02:30:00' + interval (25) 
hours")
+            assertQuery("select date 
'1992-01-19'").returns(sqlDate("1992-01-19")).check();
+            assertQuery("select date '1992-01-18' + interval (1) 
days").returns(sqlDate("1992-01-19")).check();
+            assertQuery("select date '1992-01-18' + interval (24) 
hours").returns(sqlDate("1992-01-19")).check();
+            assertQuery("SELECT timestamp '1992-01-18 02:30:00' + interval 
(25) hours")
                 .returns(sqlTimestamp("1992-01-19 03:30:00.000")).check();
-            checkQuery("SELECT timestamp '1992-01-18 02:30:00' + interval (23) 
hours")
+            assertQuery("SELECT timestamp '1992-01-18 02:30:00' + interval 
(23) hours")
                 .returns(sqlTimestamp("1992-01-19 01:30:00.000")).check();
-            checkQuery("SELECT timestamp '1992-01-18 02:30:00' + interval (24) 
hours")
+            assertQuery("SELECT timestamp '1992-01-18 02:30:00' + interval 
(24) hours")
                 .returns(sqlTimestamp("1992-01-19 02:30:00.000")).check();
 
             // DST started 1992-03-29 02:00:00 -> 1992-03-29 03:00:00
-            checkQuery("select date 
'1992-03-29'").returns(sqlDate("1992-03-29")).check();
-            checkQuery("select date '1992-03-28' + interval (1) 
days").returns(sqlDate("1992-03-29")).check();
-            checkQuery("select date '1992-03-28' + interval (24) 
hours").returns(sqlDate("1992-03-29")).check();
-            checkQuery("SELECT timestamp '1992-03-28 02:30:00' + interval (25) 
hours")
+            assertQuery("select date 
'1992-03-29'").returns(sqlDate("1992-03-29")).check();
+            assertQuery("select date '1992-03-28' + interval (1) 
days").returns(sqlDate("1992-03-29")).check();
+            assertQuery("select date '1992-03-28' + interval (24) 
hours").returns(sqlDate("1992-03-29")).check();
+            assertQuery("SELECT timestamp '1992-03-28 02:30:00' + interval 
(25) hours")
                 .returns(sqlTimestamp("1992-03-29 03:30:00.000")).check();
-            checkQuery("SELECT timestamp '1992-03-28 02:30:00' + interval (23) 
hours")
+            assertQuery("SELECT timestamp '1992-03-28 02:30:00' + interval 
(23) hours")
                 .returns(sqlTimestamp("1992-03-29 01:30:00.000")).check();
-            checkQuery("SELECT timestamp '1992-03-28 02:30:00' + interval (24) 
hours")
+            assertQuery("SELECT timestamp '1992-03-28 02:30:00' + interval 
(24) hours")
                 .returns(sqlTimestamp("1992-03-29 02:30:00.000")).check();
 
             // DST ended 1992-09-27 03:00:00 -> 1992-09-27 02:00:00
-            checkQuery("select date 
'1992-09-27'").returns(sqlDate("1992-09-27")).check();
-            checkQuery("select date '1992-09-26' + interval (1) 
days").returns(sqlDate("1992-09-27")).check();
-            checkQuery("select date '1992-09-26' + interval (24) 
hours").returns(sqlDate("1992-09-27")).check();
-            checkQuery("SELECT timestamp '1992-09-26 02:30:00' + interval (25) 
hours")
+            assertQuery("select date 
'1992-09-27'").returns(sqlDate("1992-09-27")).check();
+            assertQuery("select date '1992-09-26' + interval (1) 
days").returns(sqlDate("1992-09-27")).check();
+            assertQuery("select date '1992-09-26' + interval (24) 
hours").returns(sqlDate("1992-09-27")).check();
+            assertQuery("SELECT timestamp '1992-09-26 02:30:00' + interval 
(25) hours")
                 .returns(sqlTimestamp("1992-09-27 03:30:00.000")).check();
-            checkQuery("SELECT timestamp '1992-09-26 02:30:00' + interval (23) 
hours")
+            assertQuery("SELECT timestamp '1992-09-26 02:30:00' + interval 
(23) hours")
                 .returns(sqlTimestamp("1992-09-27 01:30:00.000")).check();
-            checkQuery("SELECT timestamp '1992-09-26 02:30:00' + interval (24) 
hours")
+            assertQuery("SELECT timestamp '1992-09-26 02:30:00' + interval 
(24) hours")
                 .returns(sqlTimestamp("1992-09-27 02:30:00.000")).check();
 
             TimeZone.setDefault(TimeZone.getTimeZone("America/Los_Angeles"));
 
             // DST ended 2021-11-07 02:00:00 -> 2021-11-07 01:00:00
-            checkQuery("select date 
'2021-11-07'").returns(sqlDate("2021-11-07")).check();
-            checkQuery("select date '2021-11-06' + interval (1) 
days").returns(sqlDate("2021-11-07")).check();
-            checkQuery("select date '2021-11-06' + interval (24) 
hours").returns(sqlDate("2021-11-07")).check();
-            checkQuery("SELECT timestamp '2021-11-06 01:30:00' + interval (25) 
hours")
+            assertQuery("select date 
'2021-11-07'").returns(sqlDate("2021-11-07")).check();
+            assertQuery("select date '2021-11-06' + interval (1) 
days").returns(sqlDate("2021-11-07")).check();
+            assertQuery("select date '2021-11-06' + interval (24) 
hours").returns(sqlDate("2021-11-07")).check();
+            assertQuery("SELECT timestamp '2021-11-06 01:30:00' + interval 
(25) hours")
                 .returns(sqlTimestamp("2021-11-07 02:30:00.000")).check();
             // Check string representation here, since after timestamp 
calculation we have '2021-11-07T01:30:00.000-0800'
             // but Timestamp.valueOf method converts '2021-11-07 01:30:00' in 
'America/Los_Angeles' time zone to
             // '2021-11-07T01:30:00.000-0700' (we pass through '2021-11-07 
01:30:00' twice after DST ended).
-            checkQuery("SELECT (timestamp '2021-11-06 02:30:00' + interval 
(23) hours)::varchar")
+            assertQuery("SELECT (timestamp '2021-11-06 02:30:00' + interval 
(23) hours)::varchar")
                 .returns("2021-11-07 01:30:00").check();
-            checkQuery("SELECT (timestamp '2021-11-06 01:30:00' + interval 
(24) hours)::varchar")
+            assertQuery("SELECT (timestamp '2021-11-06 01:30:00' + interval 
(24) hours)::varchar")
                 .returns("2021-11-07 01:30:00").check();
         }
         finally {
@@ -210,6 +201,31 @@ public class DateTimeTest extends GridCommonAbstractTest {
         }
     }
 
+    /** */
+    @Test
+    public void testDateTimeCast() throws Exception {
+        assertQuery("SELECT CAST('2021-01-01 01:02:03.456' AS TIMESTAMP)")
+            .returns(sqlTimestamp("2021-01-01 01:02:03.456")).check();
+
+        assertQuery("SELECT CAST('2021-01-01 01:02:03.0' AS TIMESTAMP)")
+            .returns(sqlTimestamp("2021-01-01 01:02:03")).check();
+
+        assertQuery("SELECT CAST('2021-01-01 01:02:03' AS TIMESTAMP)")
+            .returns(sqlTimestamp("2021-01-01 01:02:03")).check();
+
+        assertQuery("SELECT CAST('2021-01-01 01:02:03.456' AS TIMESTAMP(0))")
+            .returns(sqlTimestamp("2021-01-01 01:02:03")).check();
+
+        assertQuery("SELECT CAST('2021-01-01 01:02:03.456' AS TIMESTAMP(2))")
+            .returns(sqlTimestamp("2021-01-01 01:02:03.45")).check();
+
+        assertQuery("SELECT CAST('2021-01-01' AS DATE)")
+            .returns(sqlDate("2021-01-01")).check();
+
+        assertQuery("SELECT CAST('01:02:03' AS TIME)")
+            .returns(sqlTime("01:02:03")).check();
+    }
+
     /** */
     public static class DateTimeEntry {
         /** */
@@ -237,15 +253,6 @@ public class DateTimeTest extends GridCommonAbstractTest {
         }
     }
 
-    /** */
-    private QueryChecker checkQuery(String qry) {
-        return new QueryChecker(qry) {
-            @Override protected QueryEngine getEngine() {
-                return queryEngine;
-            }
-        };
-    }
-
     /** */
     private Date javaDate(String str) throws Exception {
         return DATE_FORMAT.parse(str);
diff --git 
a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/integration/DynamicParametersIntegrationTest.java
 
b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/integration/DynamicParametersIntegrationTest.java
index ae35a0d51f0..89fba933b5b 100644
--- 
a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/integration/DynamicParametersIntegrationTest.java
+++ 
b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/integration/DynamicParametersIntegrationTest.java
@@ -52,7 +52,7 @@ public class DynamicParametersIntegrationTest extends 
AbstractBasicIntegrationTe
         );
 
         List<String> types = F.asList("VARCHAR", "DECIMAL(32767, 0)", 
"INTEGER", "BIGINT", "REAL", "DOUBLE",
-            "UUID", "INTERVAL DAY TO SECOND", "DATE", "TIMESTAMP(0)", 
"TIME(0)", "INTERVAL YEAR TO MONTH");
+            "UUID", "INTERVAL DAY TO SECOND", "DATE", "TIMESTAMP(3)", 
"TIME(0)", "INTERVAL YEAR TO MONTH");
 
         for (int i = 0; i < values.size(); i++) {
             assertQuery("SELECT 
typeof(?)").withParams(values.get(i)).returns(types.get(i)).check();
diff --git 
a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/integration/QueryMetadataIntegrationTest.java
 
b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/integration/QueryMetadataIntegrationTest.java
index c3e5ebbc6c8..36ee4dc647a 100644
--- 
a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/integration/QueryMetadataIntegrationTest.java
+++ 
b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/integration/QueryMetadataIntegrationTest.java
@@ -52,16 +52,16 @@ public class QueryMetadataIntegrationTest extends 
AbstractBasicIntegrationTest {
                     .add("PUBLIC", "TBL1", BigDecimal.class, "ID", 10, 2, true)
                     .add("PUBLIC", "TBL1", String.class, "VAL", true)
                     .add("PUBLIC", "TBL1", Long.class, "VAL2", 19, 0, true)
-                    .add("PUBLIC", "TBL1", java.sql.Timestamp.class, "TS", 0, 
SCALE_NOT_SPECIFIED, true)
+                    .add("PUBLIC", "TBL1", java.sql.Timestamp.class, "TS", 3, 
SCALE_NOT_SPECIFIED, true)
                     .add("PUBLIC", "TBL2", BigDecimal.class, "ID", 10, 2, 
false)
                     .add("PUBLIC", "TBL2", String.class, "VAL", true)
                     .add("PUBLIC", "TBL2", Long.class, "VAL2", 19, 0, true)
-                    .add("PUBLIC", "TBL2", java.sql.Timestamp.class, "TS", 0, 
SCALE_NOT_SPECIFIED, true),
+                    .add("PUBLIC", "TBL2", java.sql.Timestamp.class, "TS", 3, 
SCALE_NOT_SPECIFIED, true),
                 builder -> builder
                     .add(BigDecimal.class, 10, 2)
                     .add(BigDecimal.class, 10, 2)
                     .add(String.class)
-                    .add(java.sql.Timestamp.class, 0, SCALE_NOT_SPECIFIED)
+                    .add(java.sql.Timestamp.class, 3, SCALE_NOT_SPECIFIED)
             ).check();
     }
 
diff --git 
a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/integration/TableDdlIntegrationTest.java
 
b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/integration/TableDdlIntegrationTest.java
index ccf7b0b5ae0..98ce8275f21 100644
--- 
a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/integration/TableDdlIntegrationTest.java
+++ 
b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/integration/TableDdlIntegrationTest.java
@@ -117,7 +117,7 @@ public class TableDdlIntegrationTest extends 
AbstractDdlIntegrationTest {
             "'test', " +
             "date '2021-01-01', " +
             "time '12:34:56', " +
-            "timestamp '2021-01-01 12:34:56', " +
+            "timestamp '2021-01-01 12:34:56.789', " +
             "1, " +
             "9876543210, " +
             "3, " +
@@ -138,7 +138,7 @@ public class TableDdlIntegrationTest extends 
AbstractDdlIntegrationTest {
         assertEquals("test", row.get(1));
         assertEquals(Date.valueOf("2021-01-01"), row.get(2));
         assertEquals(Time.valueOf("12:34:56"), row.get(3));
-        assertEquals(Timestamp.valueOf("2021-01-01 12:34:56"), row.get(4));
+        assertEquals(Timestamp.valueOf("2021-01-01 12:34:56.789"), row.get(4));
         assertEquals(1, row.get(5));
         assertEquals(9876543210L, row.get(6));
         assertEquals((short)3, row.get(7));
diff --git 
a/modules/calcite/src/test/java/org/apache/ignite/testsuites/IntegrationTestSuite.java
 
b/modules/calcite/src/test/java/org/apache/ignite/testsuites/IntegrationTestSuite.java
index dd23c284ac1..84dcc6fdb61 100644
--- 
a/modules/calcite/src/test/java/org/apache/ignite/testsuites/IntegrationTestSuite.java
+++ 
b/modules/calcite/src/test/java/org/apache/ignite/testsuites/IntegrationTestSuite.java
@@ -20,7 +20,6 @@ package org.apache.ignite.testsuites;
 import 
org.apache.ignite.internal.processors.cache.DdlTransactionCalciteSelfTest;
 import 
org.apache.ignite.internal.processors.query.calcite.CalciteQueryProcessorTest;
 import org.apache.ignite.internal.processors.query.calcite.CancelTest;
-import org.apache.ignite.internal.processors.query.calcite.DateTimeTest;
 import 
org.apache.ignite.internal.processors.query.calcite.IndexWithSameNameCalciteTest;
 import 
org.apache.ignite.internal.processors.query.calcite.SqlFieldsQueryUsageTest;
 import 
org.apache.ignite.internal.processors.query.calcite.UnstableTopologyTest;
@@ -30,6 +29,7 @@ import 
org.apache.ignite.internal.processors.query.calcite.integration.CalciteBa
 import 
org.apache.ignite.internal.processors.query.calcite.integration.CalciteErrorHandlilngIntegrationTest;
 import 
org.apache.ignite.internal.processors.query.calcite.integration.CorrelatesIntegrationTest;
 import 
org.apache.ignite.internal.processors.query.calcite.integration.DataTypesTest;
+import 
org.apache.ignite.internal.processors.query.calcite.integration.DateTimeTest;
 import 
org.apache.ignite.internal.processors.query.calcite.integration.DynamicParametersIntegrationTest;
 import 
org.apache.ignite.internal.processors.query.calcite.integration.ExpiredEntriesIntegrationTest;
 import 
org.apache.ignite.internal.processors.query.calcite.integration.FunctionsTest;
diff --git 
a/modules/calcite/src/test/sql/types/timestamp/test_timestamp_ms.test_ignore 
b/modules/calcite/src/test/sql/types/timestamp/test_timestamp_ms.test
similarity index 69%
rename from 
modules/calcite/src/test/sql/types/timestamp/test_timestamp_ms.test_ignore
rename to modules/calcite/src/test/sql/types/timestamp/test_timestamp_ms.test
index 17711eb7b05..3e0f454054b 100644
--- a/modules/calcite/src/test/sql/types/timestamp/test_timestamp_ms.test_ignore
+++ b/modules/calcite/src/test/sql/types/timestamp/test_timestamp_ms.test
@@ -1,12 +1,11 @@
 # name: test/sql/types/timestamp/test_timestamp_ms.test
 # description: Test milliseconds with timestamp
 # group: [timestamp]
-# Ignore https://issues.apache.org/jira/browse/IGNITE-15623
 
 query TT
-SELECT CAST('2001-04-20 14:42:11.123' AS TIMESTAMP) a, CAST('2001-04-20 
14:42:11.0' AS TIMESTAMP) b;
+SELECT CAST('2001-04-20 14:42:11.123' AS TIMESTAMP) a, CAST('2001-04-20 
14:42:11.00' AS TIMESTAMP) b;
 ----
-2001-04-20 14:42:11.123        2001-04-20 14:42:11
+2001-04-20 14:42:11.123        2001-04-20 14:42:11.0
 
 #  many ms
 query I

Reply via email to