public static SeaTunnelDataType<?> mapping(String tdengineType) {
        switch (tdengineType) {
            case TDENGINE_BOOL:
            case TDENGINE_BIT:
                return BasicType.BOOLEAN_TYPE;
            case TDENGINE_TINYINT:
            case TDENGINE_TINYINT_UNSIGNED:
            case TDENGINE_SMALLINT:
            case TDENGINE_SMALLINT_UNSIGNED:
            case TDENGINE_MEDIUMINT:
            case TDENGINE_MEDIUMINT_UNSIGNED:
            case TDENGINE_INT:
            case TDENGINE_INTEGER:
            case TDENGINE_YEAR:
                return BasicType.INT_TYPE;
            case TDENGINE_INT_UNSIGNED:
            case TDENGINE_INTEGER_UNSIGNED:
            case TDENGINE_BIGINT:
                return BasicType.LONG_TYPE;
            case TDENGINE_BIGINT_UNSIGNED:
                return new DecimalType(20, 0);
            case TDENGINE_DECIMAL:
                log.warn("{} will probably cause value overflow.", TDENGINE_DECIMAL);
                return new DecimalType(38, 18);
            case TDENGINE_DECIMAL_UNSIGNED:
                return new DecimalType(38, 18);
            case TDENGINE_FLOAT:
                return BasicType.FLOAT_TYPE;
            case TDENGINE_FLOAT_UNSIGNED:
                log.warn("{} will probably cause value overflow.", TDENGINE_FLOAT_UNSIGNED);
                return BasicType.FLOAT_TYPE;
            case TDENGINE_DOUBLE:
                return BasicType.DOUBLE_TYPE;
            case TDENGINE_DOUBLE_UNSIGNED:
                log.warn("{} will probably cause value overflow.", TDENGINE_DOUBLE_UNSIGNED);
                return BasicType.DOUBLE_TYPE;
            case TDENGINE_CHAR:
            case TDENGINE_TINYTEXT:
            case TDENGINE_MEDIUMTEXT:
            case TDENGINE_TEXT:
            case TDENGINE_VARCHAR:
            case TDENGINE_JSON:
            case TDENGINE_LONGTEXT:
                return BasicType.STRING_TYPE;
            case TDENGINE_DATE:
                return LocalTimeType.LOCAL_DATE_TYPE;
            case TDENGINE_TIME:
                return LocalTimeType.LOCAL_TIME_TYPE;
            case TDENGINE_DATETIME:
            case TDENGINE_TIMESTAMP:
                return LocalTimeType.LOCAL_DATE_TIME_TYPE;

            case TDENGINE_TINYBLOB:
            case TDENGINE_MEDIUMBLOB:
            case TDENGINE_BLOB:
            case TDENGINE_LONGBLOB:
            case TDENGINE_VARBINARY:
            case TDENGINE_BINARY:
                return PrimitiveByteArrayType.INSTANCE;

                // Doesn't support yet
            case TDENGINE_GEOMETRY:
            case TDENGINE_UNKNOWN:
            default:
                throw new TDengineConnectorException(
                        CommonErrorCodeDeprecated.UNSUPPORTED_DATA_TYPE,
                        String.format("Doesn't support TDENGINE type '%s' yet.", tdengineType));
        }
    }
@Test
    void mapping() {
        SeaTunnelDataType<?> type = TDengineTypeMapper.mapping("BOOL");
        Assertions.assertEquals(BasicType.BOOLEAN_TYPE, type);

        type = TDengineTypeMapper.mapping("CHAR");
        Assertions.assertEquals(BasicType.STRING_TYPE, type);
    }