[ https://issues.apache.org/jira/browse/IGNITE-25342?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Maksim Zhuravkov updated IGNITE-25342: -------------------------------------- Description: This time does not exist on a clock, because France switches to the summer time schedule (02:00 -> 03:00), but an error can be improved. Right now it returns a NullPointerException: {noformat} @Test public void summerTimeSchedule() { assertQuery("SELECT CAST ('2024-03-31 02:01:01' AS TIMESTAMP WITH LOCAL TIME ZONE)") .withTimeZoneId(ZoneId.of("Europe/Paris")) .check(); } {noformat} Error: {noformat} org.apache.ignite.sql.SqlException: IGN-SQL-7 TraceId:00d2f063-56eb-47ef-a219-65408e94e7d6 Cannot invoke "org.apache.calcite.avatica.util.DateTimeUtils$PrecisionTime.getCalendar()" because "pt" is null at SC.project(Unknown Source) at org.apache.ignite.internal.sql.engine.exec.exp.ProjectionImplementor$SqlProjectionImpl.project(ProjectionImplementor.java:174) at org.apache.ignite.internal.sql.engine.exec.LogicalRelImplementor.lambda$visit$4(LogicalRelImplementor.java:284) at org.apache.ignite.internal.sql.engine.exec.rel.ProjectNode.push(ProjectNode.java:65) at org.apache.ignite.internal.sql.engine.exec.rel.ScanNode.push(ScanNode.java:115) at org.apache.ignite.internal.sql.engine.exec.rel.AbstractNode.lambda$execute$0(AbstractNode.java:131) at org.apache.ignite.internal.sql.engine.exec.ExecutionContext.lambda$execute$0(ExecutionContext.java:365) at org.apache.ignite.internal.sql.engine.exec.QueryTaskExecutorImpl.lambda$execute$0(QueryTaskExecutorImpl.java:86) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:833) Suppressed: java.lang.RuntimeException: This is a trimmed root at org.apache.ignite.internal.testframework.IgniteTestUtils.await(IgniteTestUtils.java:850) at org.apache.ignite.internal.testframework.IgniteTestUtils.await(IgniteTestUtils.java:868) at org.apache.ignite.internal.sql.engine.util.CursorUtils.getAllFromCursor(CursorUtils.java:70) at org.apache.ignite.internal.sql.engine.util.QueryCheckerImpl.check(QueryCheckerImpl.java:376) at org.apache.ignite.internal.sql.engine.util.QueryCheckerFactoryImpl$1.check(QueryCheckerFactoryImpl.java:98) at org.apache.ignite.internal.sql.engine.ItDynamicParameterTest.summerTimeSchedule(ItDynamicParameterTest.java:90) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) Caused by: java.lang.NullPointerException: Cannot invoke "org.apache.calcite.avatica.util.DateTimeUtils$PrecisionTime.getCalendar()" because "pt" is null at org.apache.calcite.util.TimestampWithTimeZoneString.withTimeZone(TimestampWithTimeZoneString.java:128) at org.apache.calcite.runtime.SqlFunctions.toTimestampWithLocalTimeZone(SqlFunctions.java:5271) ... 11 more {noformat} was: This time does not exist on a clock, but an error can be improved. Right now it returns a NullPointerException: {noformat} @Test public void summerTimeSchedule() { assertQuery("SELECT CAST ('2024-03-31 02:01:01' AS TIMESTAMP WITH LOCAL TIME ZONE)") .withTimeZoneId(ZoneId.of("Europe/Paris")) .check(); } {noformat} Error: {noformat} org.apache.ignite.sql.SqlException: IGN-SQL-7 TraceId:00d2f063-56eb-47ef-a219-65408e94e7d6 Cannot invoke "org.apache.calcite.avatica.util.DateTimeUtils$PrecisionTime.getCalendar()" because "pt" is null at SC.project(Unknown Source) at org.apache.ignite.internal.sql.engine.exec.exp.ProjectionImplementor$SqlProjectionImpl.project(ProjectionImplementor.java:174) at org.apache.ignite.internal.sql.engine.exec.LogicalRelImplementor.lambda$visit$4(LogicalRelImplementor.java:284) at org.apache.ignite.internal.sql.engine.exec.rel.ProjectNode.push(ProjectNode.java:65) at org.apache.ignite.internal.sql.engine.exec.rel.ScanNode.push(ScanNode.java:115) at org.apache.ignite.internal.sql.engine.exec.rel.AbstractNode.lambda$execute$0(AbstractNode.java:131) at org.apache.ignite.internal.sql.engine.exec.ExecutionContext.lambda$execute$0(ExecutionContext.java:365) at org.apache.ignite.internal.sql.engine.exec.QueryTaskExecutorImpl.lambda$execute$0(QueryTaskExecutorImpl.java:86) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:833) Suppressed: java.lang.RuntimeException: This is a trimmed root at org.apache.ignite.internal.testframework.IgniteTestUtils.await(IgniteTestUtils.java:850) at org.apache.ignite.internal.testframework.IgniteTestUtils.await(IgniteTestUtils.java:868) at org.apache.ignite.internal.sql.engine.util.CursorUtils.getAllFromCursor(CursorUtils.java:70) at org.apache.ignite.internal.sql.engine.util.QueryCheckerImpl.check(QueryCheckerImpl.java:376) at org.apache.ignite.internal.sql.engine.util.QueryCheckerFactoryImpl$1.check(QueryCheckerFactoryImpl.java:98) at org.apache.ignite.internal.sql.engine.ItDynamicParameterTest.summerTimeSchedule(ItDynamicParameterTest.java:90) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) Caused by: java.lang.NullPointerException: Cannot invoke "org.apache.calcite.avatica.util.DateTimeUtils$PrecisionTime.getCalendar()" because "pt" is null at org.apache.calcite.util.TimestampWithTimeZoneString.withTimeZone(TimestampWithTimeZoneString.java:128) at org.apache.calcite.runtime.SqlFunctions.toTimestampWithLocalTimeZone(SqlFunctions.java:5271) ... 11 more {noformat} > Sql. Timestamp LTZ. NullPointerException for time values when the time > schedule changes > --------------------------------------------------------------------------------------- > > Key: IGNITE-25342 > URL: https://issues.apache.org/jira/browse/IGNITE-25342 > Project: Ignite > Issue Type: Bug > Components: sql > Reporter: Maksim Zhuravkov > Priority: Major > Labels: ignite-3 > > This time does not exist on a clock, because France switches to the summer > time schedule (02:00 -> 03:00), but an error can be improved. > Right now it returns a NullPointerException: > > {noformat} > @Test > public void summerTimeSchedule() { > assertQuery("SELECT CAST ('2024-03-31 02:01:01' AS TIMESTAMP WITH > LOCAL TIME ZONE)") > .withTimeZoneId(ZoneId.of("Europe/Paris")) > .check(); > } > {noformat} > Error: > {noformat} > org.apache.ignite.sql.SqlException: IGN-SQL-7 > TraceId:00d2f063-56eb-47ef-a219-65408e94e7d6 Cannot invoke > "org.apache.calcite.avatica.util.DateTimeUtils$PrecisionTime.getCalendar()" > because "pt" is null > at SC.project(Unknown Source) > at > org.apache.ignite.internal.sql.engine.exec.exp.ProjectionImplementor$SqlProjectionImpl.project(ProjectionImplementor.java:174) > at > org.apache.ignite.internal.sql.engine.exec.LogicalRelImplementor.lambda$visit$4(LogicalRelImplementor.java:284) > at > org.apache.ignite.internal.sql.engine.exec.rel.ProjectNode.push(ProjectNode.java:65) > at > org.apache.ignite.internal.sql.engine.exec.rel.ScanNode.push(ScanNode.java:115) > at > org.apache.ignite.internal.sql.engine.exec.rel.AbstractNode.lambda$execute$0(AbstractNode.java:131) > at > org.apache.ignite.internal.sql.engine.exec.ExecutionContext.lambda$execute$0(ExecutionContext.java:365) > at > org.apache.ignite.internal.sql.engine.exec.QueryTaskExecutorImpl.lambda$execute$0(QueryTaskExecutorImpl.java:86) > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base/java.lang.Thread.run(Thread.java:833) > Suppressed: java.lang.RuntimeException: This is a trimmed root > at > org.apache.ignite.internal.testframework.IgniteTestUtils.await(IgniteTestUtils.java:850) > at > org.apache.ignite.internal.testframework.IgniteTestUtils.await(IgniteTestUtils.java:868) > at > org.apache.ignite.internal.sql.engine.util.CursorUtils.getAllFromCursor(CursorUtils.java:70) > at > org.apache.ignite.internal.sql.engine.util.QueryCheckerImpl.check(QueryCheckerImpl.java:376) > at > org.apache.ignite.internal.sql.engine.util.QueryCheckerFactoryImpl$1.check(QueryCheckerFactoryImpl.java:98) > at > org.apache.ignite.internal.sql.engine.ItDynamicParameterTest.summerTimeSchedule(ItDynamicParameterTest.java:90) > at java.base/java.lang.reflect.Method.invoke(Method.java:568) > at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) > at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) > Caused by: java.lang.NullPointerException: Cannot invoke > "org.apache.calcite.avatica.util.DateTimeUtils$PrecisionTime.getCalendar()" > because "pt" is null > at > org.apache.calcite.util.TimestampWithTimeZoneString.withTimeZone(TimestampWithTimeZoneString.java:128) > at > org.apache.calcite.runtime.SqlFunctions.toTimestampWithLocalTimeZone(SqlFunctions.java:5271) > ... 11 more > {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)