But … I was more referring to that I think it would be better, if we ran the 
tests using various timezones.
I remember during my time at Timecho I repeatedly had to fix tests, that had 
issues that only occurred in non-asian timezones.

Chris


Von: Christofer Dutz <[email protected]>
Datum: Donnerstag, 12. Februar 2026 um 15:13
An: [email protected] <[email protected]>
Betreff: AW: Timezone issues in test ...

I can help you with that 😊

Index: 
iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/ExtractExpressionTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/ExtractExpressionTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/ExtractExpressionTest.java
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/ExtractExpressionTest.java
   (revision 30d98e8dec2f3c5da02f70abb77d4ccc226c647a)
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/ExtractExpressionTest.java
   (revision 5f1824107e3d14d34bcf909f99d37e3b146ed72c)
@@ -26,6 +26,12 @@
 import org.junit.BeforeClass;
 import org.junit.Test;

+import java.time.Instant;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.ZoneOffset;
+import java.time.ZonedDateTime;
+
 import static 
org.apache.iotdb.db.queryengine.plan.relational.analyzer.TestUtils.assertAnalyzeSemanticException;
 import static 
org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanAssert.assertPlan;
 import static 
org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.expression;
@@ -62,11 +68,22 @@
   @Test
   public void constantFoldTest() {
     PlanTester planTester = new PlanTester();
+    // IoTDB parses the timestamp literal using the *current* zone offset 
(which may differ from
+    // the offset at the timestamp's date due to DST), then extracts the hour 
using the full
+    // ZoneId (which applies DST rules for the timestamp's date). Reproduce 
the same logic here
+    // to compute the expected hour.
+    ZoneId zone = ZoneId.systemDefault();
+    ZoneOffset currentOffset = zone.getRules().getOffset(Instant.now());
+    long epochMs =
+        LocalDateTime.of(2025, 7, 8, 1, 18, 
51).toInstant(currentOffset).toEpochMilli();
+    long expectedHour =
+        ZonedDateTime.ofInstant(Instant.ofEpochMilli(epochMs), zone).getHour();
     assertPlan(
         planTester.createPlan("select extract(hour from 2025/07/08 01:18:51) 
from table1"),
         output(
             project(
-                ImmutableMap.of("expr", expression(new LongLiteral("1"))),
+                ImmutableMap.of(
+                    "expr", expression(new 
LongLiteral(String.valueOf(expectedHour)))),
                 tableScan("testdb.table1"))));
   }

Chris


Von: Yuan Tian <[email protected]>
Datum: Donnerstag, 12. Februar 2026 um 14:38
An: [email protected] <[email protected]>
Betreff: Re: Timezone issues in test ...

Hi Chris,

Thanks for your reporting, I will try to fix it.

On Thu, Feb 12, 2026 at 5:53 PM Christofer Dutz <[email protected]>
wrote:

> In
>
> ExtractExpressionTest
>
> The issue is that the zone-offset is different now compared to the
> reference date.
> That’s because Europe is currently in daylight saving time so now we’re at
> +2, however the offset at the reference date is +1.
> That’s causing the build to fail only during winter-time 😉
>
> Chris
>
>
> Von: Christofer Dutz <[email protected]>
> Datum: Donnerstag, 12. Februar 2026 um 10:40
> An: [email protected] <[email protected]>
> Betreff: Timezone issues in test ...
>
> Hi all,
>
> As I’m currently updating my fork, I noticed there are some tests in IoTDB
> that fail if you’re not in an Asian timezone.
>
> What do you think? Would it make sense to run the tests in 2-3 time zones?
>
>
>   *
> Asian TZ
>   *
> Asia +8
>   *
> Asia +16
>
> This would help make the build stable outside of your main area?
>
> Chris
>

Reply via email to