public static DataType convertCalciteRelDataTypeToDataType()

in flink-cdc-runtime/src/main/java/org/apache/flink/cdc/runtime/typeutils/DataTypeConverter.java [370:418]


    public static DataType convertCalciteRelDataTypeToDataType(RelDataType relDataType) {
        switch (relDataType.getSqlTypeName()) {
            case BOOLEAN:
                return DataTypes.BOOLEAN();
            case TINYINT:
                return DataTypes.TINYINT();
            case SMALLINT:
                return DataTypes.SMALLINT();
            case INTEGER:
                return DataTypes.INT();
            case BIGINT:
                return DataTypes.BIGINT();
            case DATE:
                return DataTypes.DATE();
            case TIME:
            case TIME_WITH_LOCAL_TIME_ZONE:
                return DataTypes.TIME(relDataType.getPrecision());
            case TIMESTAMP:
                return DataTypes.TIMESTAMP(relDataType.getPrecision());
            case TIMESTAMP_WITH_LOCAL_TIME_ZONE:
                return DataTypes.TIMESTAMP_LTZ(relDataType.getPrecision());
            case FLOAT:
                return DataTypes.FLOAT();
            case DOUBLE:
                return DataTypes.DOUBLE();
            case CHAR:
            case VARCHAR:
                return DataTypes.STRING();
            case BINARY:
                return DataTypes.BINARY(relDataType.getPrecision());
            case VARBINARY:
                return DataTypes.VARBINARY(relDataType.getPrecision());
            case DECIMAL:
                return DataTypes.DECIMAL(relDataType.getPrecision(), relDataType.getScale());
            case ARRAY:
                RelDataType componentType = relDataType.getComponentType();
                return DataTypes.ARRAY(convertCalciteRelDataTypeToDataType(componentType));
            case MAP:
                RelDataType keyType = relDataType.getKeyType();
                RelDataType valueType = relDataType.getValueType();
                return DataTypes.MAP(
                        convertCalciteRelDataTypeToDataType(keyType),
                        convertCalciteRelDataTypeToDataType(valueType));
            case ROW:
            default:
                throw new UnsupportedOperationException(
                        "Unsupported type: " + relDataType.getSqlTypeName());
        }
    }