public static TypeInfo toMaxCompute()

in flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-maxcompute/src/main/java/org/apache/flink/cdc/connectors/maxcompute/utils/TypeConvertUtils.java [123:174]


    public static TypeInfo toMaxCompute(DataType type) {
        switch (type.getTypeRoot()) {
            case CHAR:
            case VARCHAR:
            case TIME_WITHOUT_TIME_ZONE:
                return TypeInfoFactory.STRING;
            case BOOLEAN:
                return TypeInfoFactory.BOOLEAN;
            case BINARY:
            case VARBINARY:
                return TypeInfoFactory.BINARY;
            case DECIMAL:
                DecimalType decimalType = (DecimalType) type;
                return TypeInfoFactory.getDecimalTypeInfo(
                        decimalType.getPrecision(), decimalType.getScale());
            case TINYINT:
                return TypeInfoFactory.TINYINT;
            case SMALLINT:
                return TypeInfoFactory.SMALLINT;
            case INTEGER:
                return TypeInfoFactory.INT;
            case BIGINT:
                return TypeInfoFactory.BIGINT;
            case FLOAT:
                return TypeInfoFactory.FLOAT;
            case DOUBLE:
                return TypeInfoFactory.DOUBLE;
            case DATE:
                return TypeInfoFactory.DATE;
            case TIMESTAMP_WITHOUT_TIME_ZONE:
                return TypeInfoFactory.TIMESTAMP_NTZ;
            case TIMESTAMP_WITH_TIME_ZONE:
            case TIMESTAMP_WITH_LOCAL_TIME_ZONE:
                return TypeInfoFactory.TIMESTAMP;
            case ARRAY:
                ArrayType arrayType = (ArrayType) type;
                return TypeInfoFactory.getArrayTypeInfo(toMaxCompute(arrayType.getElementType()));
            case MAP:
                MapType mapType = (MapType) type;
                return TypeInfoFactory.getMapTypeInfo(
                        toMaxCompute(mapType.getKeyType()), toMaxCompute(mapType.getValueType()));
            case ROW:
                RowType rowType = (RowType) type;
                return TypeInfoFactory.getStructTypeInfo(
                        rowType.getFieldNames(),
                        rowType.getFieldTypes().stream()
                                .map(TypeConvertUtils::toMaxCompute)
                                .collect(Collectors.toList()));
            default:
                throw new UnsupportedOperationException("Unsupported type: " + type);
        }
    }