| 1396 | public: |
| 1397 | template <typename PutValuesFunc> |
| 1398 | void DoEncode(PutValuesFunc&& put_values) { |
| 1399 | auto node = schema::ByteArray("name"); |
| 1400 | descr_ = std::make_unique<ColumnDescriptor>(node, 0, 0); |
| 1401 | |
| 1402 | auto encoder = MakeTypedEncoder<ByteArrayType>(Encoding::PLAIN, |
| 1403 | /*use_dictionary=*/true, descr_.get()); |
| 1404 | put_values(encoder.get()); |
| 1405 | buffer_ = encoder->FlushValues(); |
| 1406 | |
| 1407 | auto dict_encoder = dynamic_cast<DictEncoder<ByteArrayType>*>(encoder.get()); |
| 1408 | ASSERT_NE(dict_encoder, nullptr); |
| 1409 | dict_buffer_ = |
| 1410 | AllocateBuffer(default_memory_pool(), dict_encoder->dict_encoded_size()); |
| 1411 | dict_encoder->WriteDict(dict_buffer_->mutable_data()); |
| 1412 | num_dict_entries_ = dict_encoder->num_entries(); |
| 1413 | } |
| 1414 | |
| 1415 | template <typename IndexType> |
| 1416 | void EncodeDictBenchmark(benchmark::State& state) { |
nothing calls this directly
no test coverage detected