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

Method PutBinaryArray

cpp/src/parquet/encoder.cc:1326–1345  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1324 protected:
1325 template <typename ArrayType>
1326 void PutBinaryArray(const ArrayType& array) {
1327 PARQUET_THROW_NOT_OK(::arrow::VisitArraySpanInline<typename ArrayType::TypeClass>(
1328 *array.data(),
1329 [&](::std::string_view view) {
1330 if (ARROW_PREDICT_FALSE(view.size() > kMaxByteArraySize)) {
1331 return Status::Invalid(
1332 "Parquet cannot store strings with size 2GB or more, got: ", view.size());
1333 }
1334 if (ARROW_PREDICT_FALSE(
1335 view.size() + sink_.length() >
1336 static_cast<size_t>(std::numeric_limits<int32_t>::max()))) {
1337 return Status::Invalid("excess expansion in DELTA_LENGTH_BYTE_ARRAY");
1338 }
1339 length_encoder_.Put({static_cast<int32_t>(view.length())}, 1);
1340 PARQUET_THROW_NOT_OK(sink_.Append(view.data(), view.length()));
1341 unencoded_byte_array_data_bytes_ += view.size();
1342 return Status::OK();
1343 },
1344 []() { return Status::OK(); }));
1345 }
1346
1347 ::arrow::BufferBuilder sink_;
1348 DeltaBitPackEncoder<Int32Type> length_encoder_;

Callers

nothing calls this directly

Calls 7

InvalidFunction · 0.50
OKFunction · 0.50
dataMethod · 0.45
sizeMethod · 0.45
lengthMethod · 0.45
PutMethod · 0.45
AppendMethod · 0.45

Tested by

no test coverage detected