hongyu guo created CALCITE-6292: ----------------------------------- Summary: Support more arrow type Key: CALCITE-6292 URL: https://issues.apache.org/jira/browse/CALCITE-6292 Project: Calcite Issue Type: Sub-task Reporter: hongyu guo
All arrow type: {code:java} public static enum ArrowTypeID { Null(Type.Null), Struct(Type.Struct_), List(Type.List), LargeList(Type.LargeList), FixedSizeList(Type.FixedSizeList), Union(Type.Union), Map(Type.Map), Int(Type.Int), FloatingPoint(Type.FloatingPoint), Utf8(Type.Utf8), LargeUtf8(Type.LargeUtf8), Binary(Type.Binary), LargeBinary(Type.LargeBinary), FixedSizeBinary(Type.FixedSizeBinary), Bool(Type.Bool), Decimal(Type.Decimal), Date(Type.Date), Time(Type.Time), Timestamp(Type.Timestamp), Interval(Type.Interval), Duration(Type.Duration), NONE(Type.NONE); } {code} we support now: {code:java} public static ArrowFieldType of(ArrowType arrowType) { switch (arrowType.getTypeID()) { case Int: int bitWidth = ((ArrowType.Int) arrowType).getBitWidth(); switch (bitWidth) { case 64: return LONG; case 32: return INT; case 16: return SHORT; case 8: return BYTE; default: throw new IllegalArgumentException("Unsupported Int bit width: " + bitWidth); } case Bool: return BOOLEAN; case Utf8: return STRING; case FloatingPoint: FloatingPointPrecision precision = ((ArrowType.FloatingPoint) arrowType).getPrecision(); switch (precision) { case SINGLE: return FLOAT; case DOUBLE: return DOUBLE; default: throw new IllegalArgumentException("Unsupported Floating point precision: " + precision); } case Date: return DATE; case Decimal: return DECIMAL; default: throw new IllegalArgumentException("Unsupported type: " + arrowType); } } {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)