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

Function AppendStructBatch

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

Source from the content-addressed store, hash-verified

62constexpr int64_t kOneSecondNanos = 1000000000LL;
63
64Status AppendStructBatch(const liborc::Type* type,
65 liborc::ColumnVectorBatch* column_vector_batch, int64_t offset,
66 int64_t length, ArrayBuilder* abuilder) {
67 auto builder = checked_cast<StructBuilder*>(abuilder);
68 auto batch = checked_cast<liborc::StructVectorBatch*>(column_vector_batch);
69
70 const uint8_t* valid_bytes = nullptr;
71 if (batch->hasNulls) {
72 valid_bytes = reinterpret_cast<const uint8_t*>(batch->notNull.data()) + offset;
73 }
74 RETURN_NOT_OK(builder->AppendValues(length, valid_bytes));
75
76 for (int i = 0; i < builder->num_fields(); i++) {
77 RETURN_NOT_OK(AppendBatch(type->getSubtype(i), batch->fields[i], offset, length,
78 builder->field_builder(i)));
79 }
80 return Status::OK();
81}
82
83Status AppendListBatch(const liborc::Type* type,
84 liborc::ColumnVectorBatch* column_vector_batch, int64_t offset,

Callers 1

AppendBatchFunction · 0.85

Calls 6

AppendBatchFunction · 0.85
field_builderMethod · 0.80
OKFunction · 0.50
dataMethod · 0.45
AppendValuesMethod · 0.45
num_fieldsMethod · 0.45

Tested by

no test coverage detected