This is an automated email from the ASF dual-hosted git repository.
fanjia pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/seatunnel.git
The following commit(s) were added to refs/heads/dev by this push:
new af39235ee3 [improve][connector-tdengine] support read bool column from
tdengine (#6025)
af39235ee3 is described below
commit af39235ee31594f16e623b865e3535543ce1c7ec
Author: Alex Ting <[email protected]>
AuthorDate: Mon Jan 22 14:27:11 2024 +0800
[improve][connector-tdengine] support read bool column from tdengine (#6025)
---------
Co-authored-by: DESKTOP-GHPCOV0\dingaolong <[email protected]>
---
.../tdengine/typemapper/TDengineTypeMapper.java | 6 ++--
.../typemapper/TDengineTypeMapperTest.java | 36 ++++++++++++++++++++
.../e2e/connector/tdengine/TDengineIT.java | 38 ++++++++++++----------
3 files changed, 59 insertions(+), 21 deletions(-)
diff --git
a/seatunnel-connectors-v2/connector-tdengine/src/main/java/org/apache/seatunnel/connectors/seatunnel/tdengine/typemapper/TDengineTypeMapper.java
b/seatunnel-connectors-v2/connector-tdengine/src/main/java/org/apache/seatunnel/connectors/seatunnel/tdengine/typemapper/TDengineTypeMapper.java
index 16b9c58a3a..5099c4f354 100644
---
a/seatunnel-connectors-v2/connector-tdengine/src/main/java/org/apache/seatunnel/connectors/seatunnel/tdengine/typemapper/TDengineTypeMapper.java
+++
b/seatunnel-connectors-v2/connector-tdengine/src/main/java/org/apache/seatunnel/connectors/seatunnel/tdengine/typemapper/TDengineTypeMapper.java
@@ -34,6 +34,7 @@ public class TDengineTypeMapper {
private static final String TDENGINE_UNKNOWN = "UNKNOWN";
private static final String TDENGINE_BIT = "BIT";
+ private static final String TDENGINE_BOOL = "BOOL";
// -------------------------number----------------------------
private static final String TDENGINE_TINYINT = "TINYINT";
@@ -82,6 +83,7 @@ public class TDengineTypeMapper {
public static SeaTunnelDataType<?> mapping(String tdengineType) {
switch (tdengineType) {
+ case TDENGINE_BOOL:
case TDENGINE_BIT:
return BasicType.BOOLEAN_TYPE;
case TDENGINE_TINYINT:
@@ -145,9 +147,7 @@ public class TDengineTypeMapper {
default:
throw new TDengineConnectorException(
CommonErrorCodeDeprecated.UNSUPPORTED_DATA_TYPE,
- String.format(
- "Doesn't support TDENGINE type '%s' on column
'%s' yet.",
- tdengineType));
+ String.format("Doesn't support TDENGINE type '%s'
yet.", tdengineType));
}
}
}
diff --git
a/seatunnel-connectors-v2/connector-tdengine/src/test/java/org/apache/seatunnel/connectors/seatunnel/tdengine/typemapper/TDengineTypeMapperTest.java
b/seatunnel-connectors-v2/connector-tdengine/src/test/java/org/apache/seatunnel/connectors/seatunnel/tdengine/typemapper/TDengineTypeMapperTest.java
new file mode 100644
index 0000000000..8ee65dbc87
--- /dev/null
+++
b/seatunnel-connectors-v2/connector-tdengine/src/test/java/org/apache/seatunnel/connectors/seatunnel/tdengine/typemapper/TDengineTypeMapperTest.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.seatunnel.connectors.seatunnel.tdengine.typemapper;
+
+import org.apache.seatunnel.api.table.type.BasicType;
+import org.apache.seatunnel.api.table.type.SeaTunnelDataType;
+
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+class TDengineTypeMapperTest {
+
+ @Test
+ void mapping() {
+ SeaTunnelDataType<?> type = TDengineTypeMapper.mapping("BOOL");
+ Assertions.assertEquals(BasicType.BOOLEAN_TYPE, type);
+
+ type = TDengineTypeMapper.mapping("CHAR");
+ Assertions.assertEquals(BasicType.STRING_TYPE, type);
+ }
+}
diff --git
a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-tdengine-e2e/src/test/java/org/apache/seatunnel/e2e/connector/tdengine/TDengineIT.java
b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-tdengine-e2e/src/test/java/org/apache/seatunnel/e2e/connector/tdengine/TDengineIT.java
index ca31343ce6..10724ac2c6 100644
---
a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-tdengine-e2e/src/test/java/org/apache/seatunnel/e2e/connector/tdengine/TDengineIT.java
+++
b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-tdengine-e2e/src/test/java/org/apache/seatunnel/e2e/connector/tdengine/TDengineIT.java
@@ -109,7 +109,7 @@ public class TDengineIT extends TestSuiteBase implements
TestResource {
try (Statement stmt = connection1.createStatement()) {
stmt.execute("CREATE DATABASE power KEEP 3650");
stmt.execute(
- "CREATE STABLE power.meters (ts TIMESTAMP, current FLOAT,
voltage INT, phase FLOAT) "
+ "CREATE STABLE power.meters (ts TIMESTAMP, current FLOAT,
voltage INT, phase FLOAT, off BOOL) "
+ "TAGS (location BINARY(64), groupId INT)");
String sql = getSQL();
rowCount = stmt.executeUpdate(sql);
@@ -117,7 +117,7 @@ public class TDengineIT extends TestSuiteBase implements
TestResource {
try (Statement stmt = connection2.createStatement()) {
stmt.execute("CREATE DATABASE power2 KEEP 3650");
stmt.execute(
- "CREATE STABLE power2.meters2 (ts TIMESTAMP, current
FLOAT, voltage INT, phase FLOAT) "
+ "CREATE STABLE power2.meters2 (ts TIMESTAMP, current
FLOAT, voltage INT, phase FLOAT, off BOOL) "
+ "TAGS (location BINARY(64), groupId INT)");
}
return rowCount;
@@ -176,18 +176,18 @@ public class TDengineIT extends TestSuiteBase implements
TestResource {
/**
* The generated SQL is: INSERT INTO power.d1001 USING power.meters
- * TAGS(California.SanFrancisco, 2) VALUES('2018-10-03
14:38:05.000',10.30000,219,0.31000)
+ * TAGS(California.SanFrancisco, 2) VALUES('2018-10-03
14:38:05.000',10.30000,219,0.31000, true)
* power.d1001 USING power.meters TAGS(California.SanFrancisco, 2)
VALUES('2018-10-03
- * 14:38:15.000',12.60000,218,0.33000) power.d1001 USING power.meters
- * TAGS(California.SanFrancisco, 2) VALUES('2018-10-03
14:38:16.800',12.30000,221,0.31000)
+ * 14:38:15.000',12.60000,218,0.33000, false) power.d1001 USING
power.meters
+ * TAGS(California.SanFrancisco, 2) VALUES('2018-10-03
14:38:16.800',12.30000,221,0.31000, true)
* power.d1002 USING power.meters TAGS(California.SanFrancisco, 3)
VALUES('2018-10-03
- * 14:38:16.650',10.30000,218,0.25000) power.d1003 USING power.meters
- * TAGS(California.LosAngeles, 2) VALUES('2018-10-03
14:38:05.500',11.80000,221,0.28000)
+ * 14:38:16.650',10.30000,218,0.25000, true) power.d1003 USING power.meters
+ * TAGS(California.LosAngeles, 2) VALUES('2018-10-03
14:38:05.500',11.80000,221,0.28000, true)
* power.d1003 USING power.meters TAGS(California.LosAngeles, 2)
VALUES('2018-10-03
- * 14:38:16.600',13.40000,223,0.29000) power.d1004 USING power.meters
- * TAGS(California.LosAngeles, 3) VALUES('2018-10-03
14:38:05.000',10.80000,223,0.29000)
+ * 14:38:16.600',13.40000,223,0.29000, true) power.d1004 USING power.meters
+ * TAGS(California.LosAngeles, 3) VALUES('2018-10-03
14:38:05.000',10.80000,223,0.29000, true)
* power.d1004 USING power.meters TAGS(California.LosAngeles, 3)
VALUES('2018-10-03
- * 14:38:06.500',11.50000,221,0.35000)
+ * 14:38:06.500',11.50000,221,0.35000, false)
*/
private static String getSQL() {
StringBuilder sb = new StringBuilder("INSERT INTO ");
@@ -208,6 +208,8 @@ public class TDengineIT extends TestSuiteBase implements
TestResource {
.append(ps[3])
.append(",") // voltage
.append(ps[4])
+ .append(",") // off
+ .append(ps[7])
.append(") "); // phase
}
return sb.toString();
@@ -215,13 +217,13 @@ public class TDengineIT extends TestSuiteBase implements
TestResource {
private static List<String> getRawData() {
return Arrays.asList(
- "d1001,2018-10-03
14:38:05.000,10.30000,219,0.31000,'California.SanFrancisco',2",
- "d1001,2018-10-03
14:38:15.000,12.60000,218,0.33000,'California.SanFrancisco',2",
- "d1001,2018-10-03
14:38:16.800,12.30000,221,0.31000,'California.SanFrancisco',2",
- "d1002,2018-10-03
14:38:16.650,10.30000,218,0.25000,'California.SanFrancisco',3",
- "d1003,2018-10-03
14:38:05.500,11.80000,221,0.28000,'California.LosAngeles',2",
- "d1003,2018-10-03
14:38:16.600,13.40000,223,0.29000,'California.LosAngeles',2",
- "d1004,2018-10-03
14:38:05.000,10.80000,223,0.29000,'California.LosAngeles',3",
- "d1004,2018-10-03
14:38:06.500,11.50000,221,0.35000,'California.LosAngeles',3");
+ "d1001,2018-10-03
14:38:05.000,10.30000,219,0.31000,'California.SanFrancisco',2,true",
+ "d1001,2018-10-03
14:38:15.000,12.60000,218,0.33000,'California.SanFrancisco',2,false",
+ "d1001,2018-10-03
14:38:16.800,12.30000,221,0.31000,'California.SanFrancisco',2,true",
+ "d1002,2018-10-03
14:38:16.650,10.30000,218,0.25000,'California.SanFrancisco',3,true",
+ "d1003,2018-10-03
14:38:05.500,11.80000,221,0.28000,'California.LosAngeles',2,true",
+ "d1003,2018-10-03
14:38:16.600,13.40000,223,0.29000,'California.LosAngeles',2,true",
+ "d1004,2018-10-03
14:38:05.000,10.80000,223,0.29000,'California.LosAngeles',3,true",
+ "d1004,2018-10-03
14:38:06.500,11.50000,221,0.35000,'California.LosAngeles',3,false");
}
}