This is an automated email from the ASF dual-hosted git repository.
wanghailin 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 207b8c16fd [Improve][Connector-V2] Add doris/starrocks create table
with comment (#7847)
207b8c16fd is described below
commit 207b8c16fd71540409d9493d8106dff7894917f8
Author: Jia Fan <[email protected]>
AuthorDate: Wed Oct 16 22:53:52 2024 +0800
[Improve][Connector-V2] Add doris/starrocks create table with comment
(#7847)
---
.../apache/seatunnel/connectors/doris/util/DorisCatalogUtil.java | 7 +++++--
.../seatunnel/connectors/doris/catalog/DorisCreateTableTest.java | 6 ++++--
.../connectors/seatunnel/starrocks/sink/StarRocksSaveModeUtil.java | 7 +++++--
.../seatunnel/starrocks/catalog/StarRocksCreateTableTest.java | 6 ++++--
.../org/apache/seatunnel/e2e/connector/doris/DorisCatalogIT.java | 3 +++
5 files changed, 21 insertions(+), 8 deletions(-)
diff --git
a/seatunnel-connectors-v2/connector-doris/src/main/java/org/apache/seatunnel/connectors/doris/util/DorisCatalogUtil.java
b/seatunnel-connectors-v2/connector-doris/src/main/java/org/apache/seatunnel/connectors/doris/util/DorisCatalogUtil.java
index 5025caed21..e4f8804be0 100644
---
a/seatunnel-connectors-v2/connector-doris/src/main/java/org/apache/seatunnel/connectors/doris/util/DorisCatalogUtil.java
+++
b/seatunnel-connectors-v2/connector-doris/src/main/java/org/apache/seatunnel/connectors/doris/util/DorisCatalogUtil.java
@@ -252,9 +252,12 @@ public class DorisCatalogUtil {
Column column, TypeConverter<BasicTypeDefine> typeConverter) {
checkNotNull(column, "The column is required.");
return String.format(
- "`%s` %s %s ",
+ "`%s` %s %s %s",
column.getName(),
typeConverter.reconvert(column).getColumnType(),
- column.isNullable() ? "NULL" : "NOT NULL");
+ column.isNullable() ? "NULL" : "NOT NULL",
+ StringUtils.isEmpty(column.getComment())
+ ? ""
+ : "COMMENT '" + column.getComment() + "'");
}
}
diff --git
a/seatunnel-connectors-v2/connector-doris/src/test/java/org/apache/seatunnel/connectors/doris/catalog/DorisCreateTableTest.java
b/seatunnel-connectors-v2/connector-doris/src/test/java/org/apache/seatunnel/connectors/doris/catalog/DorisCreateTableTest.java
index 09a5b6a329..02b3c5478f 100644
---
a/seatunnel-connectors-v2/connector-doris/src/test/java/org/apache/seatunnel/connectors/doris/catalog/DorisCreateTableTest.java
+++
b/seatunnel-connectors-v2/connector-doris/src/test/java/org/apache/seatunnel/connectors/doris/catalog/DorisCreateTableTest.java
@@ -57,7 +57,9 @@ public class DorisCreateTableTest {
columns.add(PhysicalColumn.of("id", BasicType.LONG_TYPE, (Long) null,
true, null, ""));
columns.add(PhysicalColumn.of("name", BasicType.STRING_TYPE, (Long)
null, true, null, ""));
- columns.add(PhysicalColumn.of("age", BasicType.INT_TYPE, (Long) null,
true, null, ""));
+ columns.add(
+ PhysicalColumn.of(
+ "age", BasicType.INT_TYPE, (Long) null, true, null,
"test comment"));
columns.add(PhysicalColumn.of("score", BasicType.INT_TYPE, (Long)
null, true, null, ""));
columns.add(PhysicalColumn.of("gender", BasicType.BYTE_TYPE, (Long)
null, true, null, ""));
columns.add(
@@ -122,7 +124,7 @@ public class DorisCreateTableTest {
Assertions.assertEquals(
result,
"CREATE TABLE IF NOT EXISTS `test1`.`test2` (
\n"
- + "`id` BIGINT NULL ,`age` INT NULL , \n"
+ + "`id` BIGINT NULL ,`age` INT NULL COMMENT 'test
comment' , \n"
+ "`name` STRING NULL ,`score` INT NULL , \n"
+ "`create_time` DATETIME NOT NULL , \n"
+ "`gender` TINYINT NULL \n"
diff --git
a/seatunnel-connectors-v2/connector-starrocks/src/main/java/org/apache/seatunnel/connectors/seatunnel/starrocks/sink/StarRocksSaveModeUtil.java
b/seatunnel-connectors-v2/connector-starrocks/src/main/java/org/apache/seatunnel/connectors/seatunnel/starrocks/sink/StarRocksSaveModeUtil.java
index 7fd3af17e7..f2eb56adc8 100644
---
a/seatunnel-connectors-v2/connector-starrocks/src/main/java/org/apache/seatunnel/connectors/seatunnel/starrocks/sink/StarRocksSaveModeUtil.java
+++
b/seatunnel-connectors-v2/connector-starrocks/src/main/java/org/apache/seatunnel/connectors/seatunnel/starrocks/sink/StarRocksSaveModeUtil.java
@@ -108,12 +108,15 @@ public class StarRocksSaveModeUtil {
private static String columnToStarrocksType(Column column) {
checkNotNull(column, "The column is required.");
return String.format(
- "`%s` %s %s ",
+ "`%s` %s %s %s",
column.getName(),
dataTypeToStarrocksType(
column.getDataType(),
column.getColumnLength() == null ? 0 :
column.getColumnLength()),
- column.isNullable() ? "NULL" : "NOT NULL");
+ column.isNullable() ? "NULL" : "NOT NULL",
+ StringUtils.isEmpty(column.getComment())
+ ? ""
+ : "COMMENT '" + column.getComment() + "'");
}
private static String mergeColumnInTemplate(
diff --git
a/seatunnel-connectors-v2/connector-starrocks/src/test/java/org/apache/seatunnel/connectors/seatunnel/starrocks/catalog/StarRocksCreateTableTest.java
b/seatunnel-connectors-v2/connector-starrocks/src/test/java/org/apache/seatunnel/connectors/seatunnel/starrocks/catalog/StarRocksCreateTableTest.java
index fc3d15c4b4..763413335a 100644
---
a/seatunnel-connectors-v2/connector-starrocks/src/test/java/org/apache/seatunnel/connectors/seatunnel/starrocks/catalog/StarRocksCreateTableTest.java
+++
b/seatunnel-connectors-v2/connector-starrocks/src/test/java/org/apache/seatunnel/connectors/seatunnel/starrocks/catalog/StarRocksCreateTableTest.java
@@ -55,7 +55,9 @@ public class StarRocksCreateTableTest {
List<Column> columns = new ArrayList<>();
columns.add(PhysicalColumn.of("id", BasicType.LONG_TYPE, (Long) null,
true, null, ""));
- columns.add(PhysicalColumn.of("name", BasicType.STRING_TYPE, (Long)
null, true, null, ""));
+ columns.add(
+ PhysicalColumn.of(
+ "name", BasicType.STRING_TYPE, (Long) null, true,
null, "test comment"));
columns.add(PhysicalColumn.of("age", BasicType.INT_TYPE, (Long) null,
true, null, ""));
columns.add(PhysicalColumn.of("score", BasicType.INT_TYPE, (Long)
null, true, null, ""));
columns.add(PhysicalColumn.of("gender", BasicType.BYTE_TYPE, (Long)
null, true, null, ""));
@@ -112,7 +114,7 @@ public class StarRocksCreateTableTest {
Assertions.assertEquals(
"CREATE TABLE IF NOT EXISTS `test1`.`test2` (
\n"
+ "`id` BIGINT NULL ,`age` INT NULL , \n"
- + "`name` STRING NULL ,`score` INT NULL , \n"
+ + "`name` STRING NULL COMMENT 'test comment',`score`
INT NULL , \n"
+ "`create_time` DATETIME NOT NULL , \n"
+ "`gender` TINYINT NULL \n"
+ ") ENGINE=OLAP \n"
diff --git
a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-doris-e2e/src/test/java/org/apache/seatunnel/e2e/connector/doris/DorisCatalogIT.java
b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-doris-e2e/src/test/java/org/apache/seatunnel/e2e/connector/doris/DorisCatalogIT.java
index b1d299004f..07fab00908 100644
---
a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-doris-e2e/src/test/java/org/apache/seatunnel/e2e/connector/doris/DorisCatalogIT.java
+++
b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-doris-e2e/src/test/java/org/apache/seatunnel/e2e/connector/doris/DorisCatalogIT.java
@@ -260,6 +260,9 @@ public class DorisCatalogIT extends AbstractDorisIT {
createdTable.getTableSchema().getColumns().stream()
.map(Column::getName)
.collect(Collectors.toList()));
+ Assertions.assertEquals(
+ "k1",
createdTable.getTableSchema().getColumns().get(0).getComment());
+ ;
return createdTable;
}