diff --git a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/sqlserver/SqlServerTypeConverter.java b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/sqlserver/SqlServerTypeConverter.java index c1bd3afcbd0..1ed6a2da084 100644 --- a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/sqlserver/SqlServerTypeConverter.java +++ b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/sqlserver/SqlServerTypeConverter.java @@ -39,11 +39,15 @@ public class SqlServerTypeConverter implements TypeConverter { // -------------------------number---------------------------- public static final String SQLSERVER_BIT = "BIT"; public static final String SQLSERVER_TINYINT = "TINYINT"; + public static final String SQLSERVER_TINYINT_IDENTITY = "TINYINT IDENTITY"; public static final String SQLSERVER_SMALLINT = "SMALLINT"; + public static final String SQLSERVER_SMALLINT_IDENTITY = "SMALLINT IDENTITY"; public static final String SQLSERVER_INTEGER = "INTEGER"; + public static final String SQLSERVER_INTEGER_IDENTITY = "INTEGER IDENTITY"; public static final String SQLSERVER_INT = "INT"; private static final String SQLSERVER_INT_IDENTITY = "INT IDENTITY"; public static final String SQLSERVER_BIGINT = "BIGINT"; + public static final String SQLSERVER_BIGINT_IDENTITY = "BIGINT IDENTITY"; public static final String SQLSERVER_DECIMAL = "DECIMAL"; public static final String SQLSERVER_FLOAT = "FLOAT"; public static final String SQLSERVER_REAL = "REAL"; @@ -111,20 +115,24 @@ public Column convert(BasicTypeDefine typeDefine) { builder.dataType(BasicType.BOOLEAN_TYPE); break; case SQLSERVER_TINYINT: + case SQLSERVER_TINYINT_IDENTITY: builder.sourceType(SQLSERVER_TINYINT); builder.dataType(BasicType.SHORT_TYPE); break; case SQLSERVER_SMALLINT: + case SQLSERVER_SMALLINT_IDENTITY: builder.sourceType(SQLSERVER_SMALLINT); builder.dataType(BasicType.SHORT_TYPE); break; case SQLSERVER_INTEGER: + case SQLSERVER_INTEGER_IDENTITY: case SQLSERVER_INT: case SQLSERVER_INT_IDENTITY: builder.sourceType(SQLSERVER_INT); builder.dataType(BasicType.INT_TYPE); break; case SQLSERVER_BIGINT: + case SQLSERVER_BIGINT_IDENTITY: builder.sourceType(SQLSERVER_BIGINT); builder.dataType(BasicType.LONG_TYPE); break; diff --git a/seatunnel-connectors-v2/connector-jdbc/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/catalog/sqlserver/SqlServerCatalogTest.java b/seatunnel-connectors-v2/connector-jdbc/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/catalog/sqlserver/SqlServerCatalogTest.java index 5e457910f03..ea305ca0c1f 100644 --- a/seatunnel-connectors-v2/connector-jdbc/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/catalog/sqlserver/SqlServerCatalogTest.java +++ b/seatunnel-connectors-v2/connector-jdbc/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/catalog/sqlserver/SqlServerCatalogTest.java @@ -75,7 +75,7 @@ static void before() { @Test void listDatabases() { - List list = sqlServerCatalog.listDatabases(); + sqlServerCatalog.listDatabases(); } @Test diff --git a/seatunnel-connectors-v2/connector-jdbc/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/sqlserver/SqlServerTypeConverterTest.java b/seatunnel-connectors-v2/connector-jdbc/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/sqlserver/SqlServerTypeConverterTest.java index 0756d7c3b32..ac75bda4054 100644 --- a/seatunnel-connectors-v2/connector-jdbc/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/sqlserver/SqlServerTypeConverterTest.java +++ b/seatunnel-connectors-v2/connector-jdbc/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/sqlserver/SqlServerTypeConverterTest.java @@ -81,6 +81,20 @@ public void testConvertTinyint() { Assertions.assertEquals(typeDefine.getColumnType(), column.getSourceType().toLowerCase()); } + @Test + public void testConvertTinyintIdentity() { + BasicTypeDefine typeDefine = + BasicTypeDefine.builder() + .name("test") + .columnType("tinyint identity") + .dataType("tinyint") + .build(); + Column column = SqlServerTypeConverter.INSTANCE.convert(typeDefine); + Assertions.assertEquals(typeDefine.getName(), column.getName()); + Assertions.assertEquals(BasicType.SHORT_TYPE, column.getDataType()); + Assertions.assertEquals(SqlServerTypeConverter.SQLSERVER_TINYINT, column.getSourceType()); + } + @Test public void testConvertSmallint() { BasicTypeDefine typeDefine = @@ -95,6 +109,20 @@ public void testConvertSmallint() { Assertions.assertEquals(typeDefine.getColumnType(), column.getSourceType().toLowerCase()); } + @Test + public void testConvertSmallintIdentity() { + BasicTypeDefine typeDefine = + BasicTypeDefine.builder() + .name("test") + .columnType("smallint identity") + .dataType("smallint") + .build(); + Column column = SqlServerTypeConverter.INSTANCE.convert(typeDefine); + Assertions.assertEquals(typeDefine.getName(), column.getName()); + Assertions.assertEquals(BasicType.SHORT_TYPE, column.getDataType()); + Assertions.assertEquals(SqlServerTypeConverter.SQLSERVER_SMALLINT, column.getSourceType()); + } + @Test public void testConvertInt() { BasicTypeDefine typeDefine = @@ -116,6 +144,20 @@ public void testConvertInt() { Assertions.assertEquals("int", column.getSourceType().toLowerCase()); } + @Test + public void testConvertBigintIdentity() { + BasicTypeDefine typeDefine = + BasicTypeDefine.builder() + .name("test") + .columnType("bigint identity") + .dataType("bigint") + .build(); + Column column = SqlServerTypeConverter.INSTANCE.convert(typeDefine); + Assertions.assertEquals(typeDefine.getName(), column.getName()); + Assertions.assertEquals(BasicType.LONG_TYPE, column.getDataType()); + Assertions.assertEquals(SqlServerTypeConverter.SQLSERVER_BIGINT, column.getSourceType()); + } + @Test public void testConvertBigint() { BasicTypeDefine typeDefine =