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

Method PutBinaryArray

cpp/src/parquet/encoder.cc:1324–1343  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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