public static ArrowFieldWriter createArrowFieldWriterForRecord()

in odps-sdk/odps-sdk-table-api/src/main/java/com/aliyun/odps/table/record/constructor/RecordToArrowConverter.java [65:108]


    public static ArrowFieldWriter<ArrayRecord> createArrowFieldWriterForRecord(
            ValueVector vector,
            TypeInfo typeInfo) {
        switch (typeInfo.getOdpsType()) {
            case BOOLEAN:
                return new ArrowBitWriterImpl.RecordBitWriter((BitVector) vector);
            case TINYINT:
                return new ArrowTinyIntWriterImpl.RecordTinyIntWriter((TinyIntVector) vector);
            case SMALLINT:
                return new ArrowSmallIntWriterImpl.RecordSmallIntWriter((SmallIntVector) vector);
            case INT:
                return new ArrowIntWriterImpl.RecordIntWriter((IntVector) vector);
            case BIGINT:
                return new ArrowBigIntWriterImpl.RecordBigIntWriter((BigIntVector) vector);
            case FLOAT:
                return new ArrowFloat4WriterImpl.RecordFloat4Writer((Float4Vector) vector);
            case DOUBLE:
                return new ArrowFloat8WriterImpl.RecordFloat8Writer((Float8Vector) vector);
            case DECIMAL:
                return new ArrowDecimalWriterImpl.RecordDecimalWriter((DecimalVector) vector, typeInfo);
            case STRING:
            case VARCHAR:
            case CHAR:
            case JSON:
                return new ArrowVarCharWriterImpl.RecordVarCharWriter((VarCharVector) vector);
            case BINARY:
                return new ArrowVarBinaryWriterImpl.RecordVarBinaryWriter((VarBinaryVector) vector);
            case DATE:
                return new ArrowDateDayWriterImpl.RecordDateWriter((DateDayVector) vector);
            case DATETIME:
                return new ArrowDateTimeWriterImpl.RecordDateTimeWriter((TimeStampVector) vector);
            case TIMESTAMP:
            case TIMESTAMP_NTZ:
                return new ArrowTimeStampWriterImpl.RecordTimeStampWriter((TimeStampVector) vector, typeInfo);
            case ARRAY:
                return new ArrowArrayWriterImpl.RecordArrayWriter((ListVector) vector, typeInfo);
            case MAP:
                return new ArrowMapWriterImpl.RecordMapWriter((MapVector) vector, typeInfo);
            case STRUCT:
                return new ArrowStructWriterImpl.RecordStructWriter((StructVector) vector, typeInfo);
            default:
                throw new UnsupportedOperationException("Datatype not supported: " + typeInfo.getTypeName());
        }
    }