From 59566caa7a00b57e7dd8083fc38ce44eab761c1f Mon Sep 17 00:00:00 2001 From: Caideyipi <87789683+Caideyipi@users.noreply.github.com> Date: Thu, 15 Oct 2026 14:41:46 +0800 Subject: [PATCH 1/2] [Test] Retry session database cleanup after asynchronous table deletion --- .../it/session/IoTDBSessionRelationalIT.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/integration-test/src/test/java/org/apache/iotdb/relational/it/session/IoTDBSessionRelationalIT.java b/integration-test/src/test/java/org/apache/iotdb/relational/it/session/IoTDBSessionRelationalIT.java index 134a7a2bea0fd..9069709131f62 100644 --- a/integration-test/src/test/java/org/apache/iotdb/relational/it/session/IoTDBSessionRelationalIT.java +++ b/integration-test/src/test/java/org/apache/iotdb/relational/it/session/IoTDBSessionRelationalIT.java @@ -36,6 +36,7 @@ import org.apache.iotdb.itbase.category.TableLocalStandaloneIT; import org.apache.iotdb.rpc.IoTDBConnectionException; import org.apache.iotdb.rpc.StatementExecutionException; +import org.apache.iotdb.rpc.TSStatusCode; import org.apache.iotdb.session.TableSessionBuilder; import org.apache.tsfile.enums.ColumnCategory; @@ -98,9 +99,19 @@ public void setUp() throws Exception { @After public void tearDown() throws Exception { try (ITableSession session = EnvFactory.getEnv().getTableSessionConnection()) { - session.executeNonQueryStatement("DROP DATABASE IF EXISTS db1"); - session.executeNonQueryStatement("DROP DATABASE IF EXISTS db2"); - session.executeNonQueryStatement("DROP DATABASE IF EXISTS db3"); + for (String database : Arrays.asList("db1", "db2", "db3")) { + // Asynchronous DROP TABLE procedures may still be running when the test finishes. + Awaitility.await() + .atMost(60, TimeUnit.SECONDS) + .pollInSameThread() + .ignoreExceptionsMatching( + e -> + e instanceof StatementExecutionException + && ((StatementExecutionException) e).getStatusCode() + == TSStatusCode.OVERLAP_WITH_EXISTING_TASK.getStatusCode()) + .untilAsserted( + () -> session.executeNonQueryStatement("DROP DATABASE IF EXISTS " + database)); + } } } From acaf306eebb0369ce28919c65c5fe76adc8f0358 Mon Sep 17 00:00:00 2001 From: Caideyipi <87789683+Caideyipi@users.noreply.github.com> Date: Thu, 15 Oct 2026 16:28:27 +0800 Subject: [PATCH 2/2] [Test] Add a field to invalid timestamp insert test --- .../it/session/IoTDBSessionRelationalIT.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/integration-test/src/test/java/org/apache/iotdb/relational/it/session/IoTDBSessionRelationalIT.java b/integration-test/src/test/java/org/apache/iotdb/relational/it/session/IoTDBSessionRelationalIT.java index 9069709131f62..63a5548ee90eb 100644 --- a/integration-test/src/test/java/org/apache/iotdb/relational/it/session/IoTDBSessionRelationalIT.java +++ b/integration-test/src/test/java/org/apache/iotdb/relational/it/session/IoTDBSessionRelationalIT.java @@ -270,10 +270,11 @@ public void insertWrongTimeSqlTest() throws IoTDBConnectionException, StatementExecutionException { try (ITableSession session = EnvFactory.getEnv().getTableSessionConnection()) { session.executeNonQueryStatement("USE \"db1\""); + // Include a FIELD column so schema validation does not mask invalid timestamps. session.executeNonQueryStatement( - "create table wrong_time(color string tag, device_id string tag,city string attribute)"); + "create table wrong_time(color string tag, device_id string tag,city string attribute, value int32 field)"); try { - session.executeNonQueryStatement("insert into wrong_time values('aa','bb','cc','dd')"); + session.executeNonQueryStatement("insert into wrong_time values('aa','bb','cc','dd',1)"); fail("No exception thrown"); } catch (StatementExecutionException e) { assertEquals( @@ -281,19 +282,19 @@ public void insertWrongTimeSqlTest() e.getMessage()); } try { - session.executeNonQueryStatement("insert into wrong_time values(1+1,'bb','cc','dd')"); + session.executeNonQueryStatement("insert into wrong_time values(1+1,'bb','cc','dd',1)"); fail("No exception thrown"); } catch (StatementExecutionException e) { assertEquals("701: Unsupported expression: (1 + 1)", e.getMessage()); } try { - session.executeNonQueryStatement("insert into wrong_time values(1.0,'bb','cc','dd')"); + session.executeNonQueryStatement("insert into wrong_time values(1.0,'bb','cc','dd',1)"); fail("No exception thrown"); } catch (StatementExecutionException e) { assertEquals("701: Unsupported expression: 1E0", e.getMessage()); } try { - session.executeNonQueryStatement("insert into wrong_time values(true,'bb','cc','dd')"); + session.executeNonQueryStatement("insert into wrong_time values(true,'bb','cc','dd',1)"); fail("No exception thrown"); } catch (StatementExecutionException e) { assertEquals("701: Unsupported expression: true", e.getMessage());