MCPcopy Create free account
hub / github.com/apache/arrow / TransferColumnData

Function TransferColumnData

cpp/src/parquet/arrow/reader_internal.cc:874–996  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

872 } break;
873
874Status TransferColumnData(RecordReader* reader,
875 std::unique_ptr<::parquet::ColumnChunkMetaData> metadata,
876 const std::shared_ptr<Field>& value_field,
877 const ColumnDescriptor* descr, const ReaderContext* ctx,
878 std::shared_ptr<ChunkedArray>* out) {
879 auto pool = ctx->pool;
880 Datum result;
881 std::shared_ptr<ChunkedArray> chunked_result;
882 switch (value_field->type()->id()) {
883 case ::arrow::Type::DICTIONARY: {
884 RETURN_NOT_OK(TransferDictionary(reader, pool, value_field->type(),
885 value_field->nullable(), &chunked_result));
886 result = chunked_result;
887 } break;
888 case ::arrow::Type::NA: {
889 result = std::make_shared<::arrow::NullArray>(reader->values_written());
890 break;
891 }
892 case ::arrow::Type::INT32:
893 result = TransferZeroCopy<::arrow::Int32Type, Int32Type>(
894 reader, std::move(metadata), ctx, value_field);
895 break;
896 case ::arrow::Type::INT64:
897 result = TransferZeroCopy<::arrow::Int64Type, Int64Type>(
898 reader, std::move(metadata), ctx, value_field);
899 break;
900 case ::arrow::Type::FLOAT:
901 result = TransferZeroCopy<::arrow::FloatType, FloatType>(
902 reader, std::move(metadata), ctx, value_field);
903 break;
904 case ::arrow::Type::DOUBLE:
905 result = TransferZeroCopy<::arrow::DoubleType, DoubleType>(
906 reader, std::move(metadata), ctx, value_field);
907 break;
908 case ::arrow::Type::BOOL:
909 RETURN_NOT_OK(TransferBool(reader, std::move(metadata), ctx,
910 value_field->nullable(), &result));
911 break;
912 TRANSFER_INT32(UINT8, ::arrow::UInt8Type);
913 TRANSFER_INT32(INT8, ::arrow::Int8Type);
914 TRANSFER_INT32(UINT16, ::arrow::UInt16Type);
915 TRANSFER_INT32(INT16, ::arrow::Int16Type);
916 TRANSFER_INT32(UINT32, ::arrow::UInt32Type);
917 TRANSFER_INT64(UINT64, ::arrow::UInt64Type);
918 TRANSFER_INT32(DATE32, ::arrow::Date32Type);
919 TRANSFER_INT32(TIME32, ::arrow::Time32Type);
920 TRANSFER_INT64(TIME64, ::arrow::Time64Type);
921 TRANSFER_INT64(DURATION, ::arrow::DurationType);
922 case ::arrow::Type::DATE64:
923 RETURN_NOT_OK(TransferDate64(reader, pool, value_field, &result));
924 break;
925 case ::arrow::Type::FIXED_SIZE_BINARY:
926 case ::arrow::Type::BINARY:
927 case ::arrow::Type::STRING:
928 case ::arrow::Type::BINARY_VIEW:
929 case ::arrow::Type::STRING_VIEW:
930 case ::arrow::Type::LARGE_BINARY:
931 case ::arrow::Type::LARGE_STRING: {

Callers 1

LoadBatchMethod · 0.85

Calls 15

TransferDictionaryFunction · 0.85
TransferBoolFunction · 0.85
TransferDate64Function · 0.85
TransferBinaryFunction · 0.85
TransferHalfFloatFunction · 0.85
TransferInt96Function · 0.85
nullableMethod · 0.80
physical_typeMethod · 0.80
type_lengthMethod · 0.80
make_arrayMethod · 0.80
chunked_arrayMethod · 0.80
InvalidFunction · 0.50

Tested by

no test coverage detected