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 16cf632d3e [Fix][API] Fix column length can not be long (#8039)
16cf632d3e is described below
commit 16cf632d3e59343be62fa498a9f0b0f658a382fe
Author: Jia Fan <[email protected]>
AuthorDate: Thu Nov 14 10:09:44 2024 +0800
[Fix][API] Fix column length can not be long (#8039)
---
.../seatunnel/api/table/catalog/schema/ReadonlyConfigParser.java | 6 ++----
.../seatunnel/api/table/catalog/schema/TableSchemaOptions.java | 6 +++---
.../api/table/catalog/schema/ReadonlyConfigParserTest.java | 5 +++--
seatunnel-api/src/test/resources/conf/catalog/schema_column.conf | 2 ++
.../seatunnel/assertion/rule/AssertCatalogTableRuleParser.java | 2 +-
5 files changed, 11 insertions(+), 10 deletions(-)
diff --git
a/seatunnel-api/src/main/java/org/apache/seatunnel/api/table/catalog/schema/ReadonlyConfigParser.java
b/seatunnel-api/src/main/java/org/apache/seatunnel/api/table/catalog/schema/ReadonlyConfigParser.java
index ab85455b34..8cbea1de83 100644
---
a/seatunnel-api/src/main/java/org/apache/seatunnel/api/table/catalog/schema/ReadonlyConfigParser.java
+++
b/seatunnel-api/src/main/java/org/apache/seatunnel/api/table/catalog/schema/ReadonlyConfigParser.java
@@ -131,14 +131,12 @@ public class ReadonlyConfigParser implements
TableSchemaParser<ReadonlyConfig> {
new
IllegalArgumentException(
"schema.columns.* config need option [type], please correct your config
first"));
- Integer columnLength =
+ Long columnLength =
columnConfig.get(
TableSchemaOptions.ColumnOptions.COLUMN_LENGTH);
-
Integer columnScale =
columnConfig.get(
TableSchemaOptions.ColumnOptions.COLUMN_SCALE);
-
Boolean nullable =
columnConfig.get(TableSchemaOptions.ColumnOptions.NULLABLE);
Object defaultValue =
@@ -149,7 +147,7 @@ public class ReadonlyConfigParser implements
TableSchemaParser<ReadonlyConfig> {
return PhysicalColumn.of(
name,
seaTunnelDataType,
- Long.valueOf(columnLength),
+ columnLength,
columnScale,
nullable,
defaultValue,
diff --git
a/seatunnel-api/src/main/java/org/apache/seatunnel/api/table/catalog/schema/TableSchemaOptions.java
b/seatunnel-api/src/main/java/org/apache/seatunnel/api/table/catalog/schema/TableSchemaOptions.java
index 9ede187ea9..794dbe833c 100644
---
a/seatunnel-api/src/main/java/org/apache/seatunnel/api/table/catalog/schema/TableSchemaOptions.java
+++
b/seatunnel-api/src/main/java/org/apache/seatunnel/api/table/catalog/schema/TableSchemaOptions.java
@@ -92,10 +92,10 @@ public class TableSchemaOptions {
.noDefaultValue()
.withDescription("SeaTunnel Schema Column scale");
- public static final Option<Integer> COLUMN_LENGTH =
+ public static final Option<Long> COLUMN_LENGTH =
Options.key("columnLength")
- .intType()
- .defaultValue(0)
+ .longType()
+ .defaultValue(0L)
.withDescription("SeaTunnel Schema Column Length");
public static final Option<Boolean> NULLABLE =
diff --git
a/seatunnel-api/src/test/java/org/apache/seatunnel/api/table/catalog/schema/ReadonlyConfigParserTest.java
b/seatunnel-api/src/test/java/org/apache/seatunnel/api/table/catalog/schema/ReadonlyConfigParserTest.java
index bc10be1b9f..7ab713e672 100644
---
a/seatunnel-api/src/test/java/org/apache/seatunnel/api/table/catalog/schema/ReadonlyConfigParserTest.java
+++
b/seatunnel-api/src/test/java/org/apache/seatunnel/api/table/catalog/schema/ReadonlyConfigParserTest.java
@@ -77,7 +77,7 @@ class ReadonlyConfigParserTest extends BaseConfigParserTest {
constraintKey.getColumnNames().get(0).getSortType());
}
- private void assertColumn(TableSchema tableSchema, boolean
checkDefaultValue) {
+ private void assertColumn(TableSchema tableSchema, boolean
comeFromColumnConfig) {
List<Column> columns = tableSchema.getColumns();
Assertions.assertEquals(19, columns.size());
@@ -109,12 +109,13 @@ class ReadonlyConfigParserTest extends
BaseConfigParserTest {
SeaTunnelRowType seatunnalRowType1 = (SeaTunnelRowType)
seaTunnelRowType.getFieldType(17);
Assertions.assertEquals(17, seatunnalRowType1.getTotalFields());
- if (checkDefaultValue) {
+ if (comeFromColumnConfig) {
Assertions.assertEquals(0, columns.get(0).getDefaultValue());
Assertions.assertEquals("I'm default value",
columns.get(4).getDefaultValue());
Assertions.assertEquals(false, columns.get(5).getDefaultValue());
Assertions.assertEquals(1.1, columns.get(10).getDefaultValue());
Assertions.assertEquals("2020-01-01",
columns.get(15).getDefaultValue());
+ Assertions.assertEquals(4294967295L,
columns.get(4).getColumnLength());
}
}
}
diff --git a/seatunnel-api/src/test/resources/conf/catalog/schema_column.conf
b/seatunnel-api/src/test/resources/conf/catalog/schema_column.conf
index 5e6c987e27..4578c26755 100644
--- a/seatunnel-api/src/test/resources/conf/catalog/schema_column.conf
+++ b/seatunnel-api/src/test/resources/conf/catalog/schema_column.conf
@@ -47,6 +47,8 @@ schema = {
type = "string"
nullable = true
defaultValue = "I'm default value"
+ // bigger than integer max value
+ columnLength = 4294967295
comment = "string value"
},
{
diff --git
a/seatunnel-connectors-v2/connector-assert/src/main/java/org/apache/seatunnel/connectors/seatunnel/assertion/rule/AssertCatalogTableRuleParser.java
b/seatunnel-connectors-v2/connector-assert/src/main/java/org/apache/seatunnel/connectors/seatunnel/assertion/rule/AssertCatalogTableRuleParser.java
index 964f0de566..87a7a52db0 100644
---
a/seatunnel-connectors-v2/connector-assert/src/main/java/org/apache/seatunnel/connectors/seatunnel/assertion/rule/AssertCatalogTableRuleParser.java
+++
b/seatunnel-connectors-v2/connector-assert/src/main/java/org/apache/seatunnel/connectors/seatunnel/assertion/rule/AssertCatalogTableRuleParser.java
@@ -87,7 +87,7 @@ public class AssertCatalogTableRuleParser {
config -> {
String name =
config.getString(COLUMN_NAME);
String type =
config.getString(COLUMN_TYPE);
- Integer columnLength =
+ Long columnLength =
TypesafeConfigUtils.getConfig(
config,
COLUMN_LENGTH,