[
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)