internal static ArrayData Concatenate(IReadOnlyList <ArrayData> arrayDataList, MemoryAllocator allocator = default)
        {
            if (arrayDataList == null || arrayDataList.Count == 0)
            {
                return(null);
            }

            if (arrayDataList.Count == 1)
            {
                return(arrayDataList[0]);
            }

            var arrowArrayConcatenationVisitor = new ArrayDataConcatenationVisitor(arrayDataList, allocator);

            IArrowType type = arrayDataList[0].DataType;

            type.Accept(arrowArrayConcatenationVisitor);

            return(arrowArrayConcatenationVisitor.Result);
        }
示例#2
0
 private static ColumnDecoder ArrowTypeToDecoder(IArrowType arrowType, TypeDecoderVisitor typeDecoderVisitor)
 {
     arrowType.Accept(typeDecoderVisitor);
     return(typeDecoderVisitor.ColumnDecoder);
 }