private static TypeInfo convertPrimitiveType()

in flink-connector-hive/src/main/java/org/apache/flink/table/planner/delegation/hive/copy/HiveParserTypeConverter.java [263:322]


    private static TypeInfo convertPrimitiveType(RelDataType rType) {
        HiveShim hiveShim = HiveParserUtils.getSessionHiveShim();
        switch (rType.getSqlTypeName()) {
            case BOOLEAN:
                return TypeInfoFactory.booleanTypeInfo;
            case TINYINT:
                return TypeInfoFactory.byteTypeInfo;
            case SMALLINT:
                return TypeInfoFactory.shortTypeInfo;
            case INTEGER:
                return TypeInfoFactory.intTypeInfo;
            case BIGINT:
                return TypeInfoFactory.longTypeInfo;
            case FLOAT:
                return TypeInfoFactory.floatTypeInfo;
            case DOUBLE:
                return TypeInfoFactory.doubleTypeInfo;
            case DATE:
                return TypeInfoFactory.dateTypeInfo;
            case TIMESTAMP:
                return TypeInfoFactory.timestampTypeInfo;
            case INTERVAL_YEAR:
            case INTERVAL_MONTH:
            case INTERVAL_YEAR_MONTH:
                return hiveShim.getIntervalYearMonthTypeInfo();
            case INTERVAL_DAY:
            case INTERVAL_DAY_HOUR:
            case INTERVAL_DAY_MINUTE:
            case INTERVAL_DAY_SECOND:
            case INTERVAL_HOUR:
            case INTERVAL_HOUR_MINUTE:
            case INTERVAL_HOUR_SECOND:
            case INTERVAL_MINUTE:
            case INTERVAL_MINUTE_SECOND:
            case INTERVAL_SECOND:
                return hiveShim.getIntervalDayTimeTypeInfo();
            case BINARY:
            case VARBINARY:
                return TypeInfoFactory.binaryTypeInfo;
            case DECIMAL:
                return TypeInfoFactory.getDecimalTypeInfo(rType.getPrecision(), rType.getScale());
            case VARCHAR:
                int varcharLength = rType.getPrecision();
                if (varcharLength < 1 || varcharLength > HiveVarchar.MAX_VARCHAR_LENGTH) {
                    return TypeInfoFactory.getPrimitiveTypeInfo(serdeConstants.STRING_TYPE_NAME);
                } else {
                    return TypeInfoFactory.getVarcharTypeInfo(varcharLength);
                }
            case CHAR:
                int charLength = rType.getPrecision();
                if (charLength < 1 || charLength > HiveChar.MAX_CHAR_LENGTH) {
                    return TypeInfoFactory.getPrimitiveTypeInfo(serdeConstants.STRING_TYPE_NAME);
                } else {
                    return TypeInfoFactory.getCharTypeInfo(charLength);
                }
            case OTHER:
            default:
                return TypeInfoFactory.voidTypeInfo;
        }
    }