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

Function WriteBatch

cpp/src/arrow/adapters/orc/util.cc:863–957  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

861}
862
863Status WriteBatch(const Array& array, int64_t orc_offset,
864 liborc::ColumnVectorBatch* column_vector_batch) {
865 Type::type kind = array.type_id();
866 column_vector_batch->numElements = orc_offset;
867 switch (kind) {
868 case Type::type::BOOL:
869 return WriteGenericBatch<BooleanType, liborc::LongVectorBatch>(array, orc_offset,
870 column_vector_batch);
871 case Type::type::INT8:
872 return WriteGenericBatch<Int8Type, liborc::LongVectorBatch>(array, orc_offset,
873 column_vector_batch);
874 case Type::type::INT16:
875 return WriteGenericBatch<Int16Type, liborc::LongVectorBatch>(array, orc_offset,
876 column_vector_batch);
877 case Type::type::INT32:
878 return WriteGenericBatch<Int32Type, liborc::LongVectorBatch>(array, orc_offset,
879 column_vector_batch);
880 case Type::type::INT64:
881 return WriteGenericBatch<Int64Type, liborc::LongVectorBatch>(array, orc_offset,
882 column_vector_batch);
883 case Type::type::FLOAT:
884 return WriteGenericBatch<FloatType, liborc::DoubleVectorBatch>(array, orc_offset,
885 column_vector_batch);
886 case Type::type::DOUBLE:
887 return WriteGenericBatch<DoubleType, liborc::DoubleVectorBatch>(
888 array, orc_offset, column_vector_batch);
889 case Type::type::BINARY:
890 return WriteGenericBatch<BinaryType, liborc::StringVectorBatch>(
891 array, orc_offset, column_vector_batch);
892 case Type::type::LARGE_BINARY:
893 return WriteGenericBatch<LargeBinaryType, liborc::StringVectorBatch>(
894 array, orc_offset, column_vector_batch);
895 case Type::type::STRING:
896 return WriteGenericBatch<StringType, liborc::StringVectorBatch>(
897 array, orc_offset, column_vector_batch);
898 case Type::type::LARGE_STRING:
899 return WriteGenericBatch<LargeStringType, liborc::StringVectorBatch>(
900 array, orc_offset, column_vector_batch);
901 case Type::type::FIXED_SIZE_BINARY:
902 return WriteFixedSizeBinaryBatch(array, orc_offset, column_vector_batch);
903 case Type::type::DATE32:
904 return WriteGenericBatch<Date32Type, liborc::LongVectorBatch>(array, orc_offset,
905 column_vector_batch);
906 case Type::type::DATE64:
907 return WriteTimestampBatch<Date64Type>(array, orc_offset, column_vector_batch,
908 kOneSecondMillis, kOneMilliNanos);
909 case Type::type::TIMESTAMP: {
910 switch (internal::checked_pointer_cast<TimestampType>(array.type())->unit()) {
911 case TimeUnit::type::SECOND:
912 return WriteTimestampBatch<TimestampType>(
913 array, orc_offset, column_vector_batch, 1, kOneSecondNanos);
914 case TimeUnit::type::MILLI:
915 return WriteTimestampBatch<TimestampType>(
916 array, orc_offset, column_vector_batch, kOneSecondMillis, kOneMilliNanos);
917 case TimeUnit::type::MICRO:
918 return WriteTimestampBatch<TimestampType>(
919 array, orc_offset, column_vector_batch, kOneSecondMicros, kOneMicroNanos);
920 case TimeUnit::type::NANO:

Callers 6

TestUnionConversionFunction · 0.70
WriteMethod · 0.70
WriteStructBatchFunction · 0.70
WriteListBatchFunction · 0.70
WriteMapBatchFunction · 0.70
WriteUnionBatchFunction · 0.70

Calls 14

WriteStructBatchFunction · 0.85
WriteMapBatchFunction · 0.85
TypeErrorFunction · 0.50
NotImplementedFunction · 0.50
OKFunction · 0.50
type_idMethod · 0.45
unitMethod · 0.45
typeMethod · 0.45
ToStringMethod · 0.45
precisionMethod · 0.45
num_chunksMethod · 0.45

Tested by 1

TestUnionConversionFunction · 0.56