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

Method SetupEncoderDecoder

cpp/src/parquet/encoding_test.cc:1319–1348  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1317class DictEncoding : public TestArrowBuilderDecoding {
1318 public:
1319 void SetupEncoderDecoder() override {
1320 auto node = schema::ByteArray("name");
1321 descr_ = std::make_unique<ColumnDescriptor>(node, 0, 0);
1322 encoder_ = MakeTypedEncoder<ByteArrayType>(Encoding::PLAIN, /*use_dictionary=*/true,
1323 descr_.get());
1324 if (null_count_ == 0) {
1325 ASSERT_NO_THROW(encoder_->Put(input_data_.data(), num_values_));
1326 } else {
1327 ASSERT_NO_THROW(
1328 encoder_->PutSpaced(input_data_.data(), num_values_, valid_bits_, 0));
1329 }
1330 buffer_ = encoder_->FlushValues();
1331
1332 auto dict_encoder = dynamic_cast<DictEncoder<ByteArrayType>*>(encoder_.get());
1333 ASSERT_NE(dict_encoder, nullptr);
1334 dict_buffer_ =
1335 AllocateBuffer(default_memory_pool(), dict_encoder->dict_encoded_size());
1336 dict_encoder->WriteDict(dict_buffer_->mutable_data());
1337
1338 // Simulate reading the dictionary page followed by a data page
1339 plain_decoder_ = MakeTypedDecoder<ByteArrayType>(Encoding::PLAIN, descr_.get());
1340 plain_decoder_->SetData(dict_encoder->num_entries(), dict_buffer_->data(),
1341 static_cast<int>(dict_buffer_->size()));
1342
1343 dict_decoder_ = MakeDictDecoder<ByteArrayType>(descr_.get());
1344 dict_decoder_->SetDict(plain_decoder_.get());
1345 dict_decoder_->SetData(num_values_, buffer_->data(),
1346 static_cast<int>(buffer_->size()));
1347 decoder_ = dynamic_cast<ByteArrayDecoder*>(dict_decoder_.get());
1348 }
1349
1350 protected:
1351 std::unique_ptr<ColumnDescriptor> descr_;

Callers

nothing calls this directly

Calls 15

ByteArrayClass · 0.85
default_memory_poolFunction · 0.85
dict_encoded_sizeMethod · 0.80
num_entriesMethod · 0.80
SetDictMethod · 0.80
AllocateBufferFunction · 0.70
getMethod · 0.45
PutMethod · 0.45
dataMethod · 0.45
PutSpacedMethod · 0.45
FlushValuesMethod · 0.45
WriteDictMethod · 0.45

Tested by

no test coverage detected