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; }
