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

haonan pushed a commit to branch auto_convert_database_to_lower_case
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 2f694f732d061a6d82e26ed8db6484af20653458
Author: HTHou <[email protected]>
AuthorDate: Tue Nov 26 16:04:24 2024 +0800

    Auto convert database name to lower case in TableSessionBuilder
---
 .../it/session/IoTDBTableModelSessionIT.java       | 39 ++++++++++++++++++++++
 .../apache/iotdb/session/TableSessionBuilder.java  |  4 +--
 .../session/pool/TableSessionPoolBuilder.java      |  4 +--
 3 files changed, 43 insertions(+), 4 deletions(-)

diff --git 
a/integration-test/src/test/java/org/apache/iotdb/relational/it/session/IoTDBTableModelSessionIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/relational/it/session/IoTDBTableModelSessionIT.java
index 61f048e1af7..a1144665053 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/relational/it/session/IoTDBTableModelSessionIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/relational/it/session/IoTDBTableModelSessionIT.java
@@ -112,4 +112,43 @@ public class IoTDBTableModelSessionIT {
       fail(e.getMessage());
     }
   }
+
+  @Test
+  public void testCreateSessionWithCapitalDB() {
+    final String[] table2Names = new String[] {"table2"};
+    final String[] table2ttls = new String[] {"6600000"};
+
+    try (final ITableSession session =
+        EnvFactory.getEnv().getTableSessionConnectionWithDB("TEST2")) {
+
+      session.executeNonQueryStatement("CREATE DATABASE test1");
+      session.executeNonQueryStatement("CREATE DATABASE test2");
+
+      // or use full qualified table name
+      session.executeNonQueryStatement(
+          "create table test1.table1(region_id STRING ID, plant_id STRING ID, 
device_id STRING ID, model STRING ATTRIBUTE, temperature FLOAT MEASUREMENT, 
humidity DOUBLE MEASUREMENT) with (TTL=3600000)");
+
+      session.executeNonQueryStatement(
+          "create table table2(region_id STRING ID, plant_id STRING ID, color 
STRING ATTRIBUTE, temperature FLOAT MEASUREMENT, speed DOUBLE MEASUREMENT) with 
(TTL=6600000)");
+
+      try (final SessionDataSet dataSet = session.executeQueryStatement("SHOW 
TABLES")) {
+        int cnt = 0;
+        assertEquals(showTablesColumnHeaders.size(), 
dataSet.getColumnNames().size());
+        for (int i = 0; i < showTablesColumnHeaders.size(); i++) {
+          assertEquals(
+              showTablesColumnHeaders.get(i).getColumnName(), 
dataSet.getColumnNames().get(i));
+        }
+        while (dataSet.hasNext()) {
+          final RowRecord rowRecord = dataSet.next();
+          assertEquals(table2Names[cnt], 
rowRecord.getFields().get(0).getStringValue());
+          assertEquals(table2ttls[cnt], 
rowRecord.getFields().get(1).getStringValue());
+          cnt++;
+        }
+        assertEquals(table2Names.length, cnt);
+      }
+
+    } catch (final IoTDBConnectionException | StatementExecutionException e) {
+      fail(e.getMessage());
+    }
+  }
 }
diff --git 
a/iotdb-client/session/src/main/java/org/apache/iotdb/session/TableSessionBuilder.java
 
b/iotdb-client/session/src/main/java/org/apache/iotdb/session/TableSessionBuilder.java
index 9929f4b9cdc..a74dff924c9 100644
--- 
a/iotdb-client/session/src/main/java/org/apache/iotdb/session/TableSessionBuilder.java
+++ 
b/iotdb-client/session/src/main/java/org/apache/iotdb/session/TableSessionBuilder.java
@@ -79,12 +79,12 @@ public class TableSessionBuilder extends 
AbstractSessionBuilder {
   /**
    * Sets the target database name.
    *
-   * @param database the database name.
+   * @param database the database name, must be lower-case.
    * @return the current {@link TableSessionBuilder} instance.
    * @defaultValue null
    */
   public TableSessionBuilder database(String database) {
-    this.database = database;
+    this.database = database.toLowerCase();
     return this;
   }
 
diff --git 
a/iotdb-client/session/src/main/java/org/apache/iotdb/session/pool/TableSessionPoolBuilder.java
 
b/iotdb-client/session/src/main/java/org/apache/iotdb/session/pool/TableSessionPoolBuilder.java
index 4deb9423946..16c085fceec 100644
--- 
a/iotdb-client/session/src/main/java/org/apache/iotdb/session/pool/TableSessionPoolBuilder.java
+++ 
b/iotdb-client/session/src/main/java/org/apache/iotdb/session/pool/TableSessionPoolBuilder.java
@@ -87,12 +87,12 @@ public class TableSessionPoolBuilder extends 
AbstractSessionPoolBuilder {
   /**
    * Sets the target database name.
    *
-   * @param database the database name.
+   * @param database the database name, must be lower-case.
    * @return the current {@link TableSessionPoolBuilder} instance.
    * @defaultValue null
    */
   public TableSessionPoolBuilder database(String database) {
-    this.database = database;
+    this.database = database.toLowerCase();
     return this;
   }
 

Reply via email to