Hello, Calcite community.
Recently, I have been improving the adaptation of Arrow in Calcite and have
solved many problems.
But I am a little confused when adapting Arrow data types. For example, there
are some very strange types in Arrow, which make me unclear how to convert them
into the corresponding types in Calcite, such as LargeUtf8, LargeBinary, etc. I
don’t know whether these types need to be adapted.
I tried to look at the code of datafusion over the weekend, but it is clear
that datafusion’s adaptation of these special types is not necessarily suitable
for Calcite, but some seem to comply with datafusion standards, such as
timestamp and time types. I am trying to determine the standards with the
datafusion community
Does Calcite have any suggestions for the adaptation of these special types?
Should I adapt all Arrow data types later?
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}
Best wishes,
Cancai Cai