| 289 | } |
| 290 | |
| 291 | std::shared_ptr<ColumnWriter> CreateColumnWriterForColumn( |
| 292 | ColumnChunkMetaDataBuilder* col_meta, int32_t column_ordinal) const { |
| 293 | const auto& path = col_meta->descr()->path(); |
| 294 | const ColumnProperties& column_properties = properties_->column_properties(path); |
| 295 | auto meta_encryptor = |
| 296 | file_encryptor_ ? file_encryptor_->GetColumnMetaEncryptor(path->ToDotString()) |
| 297 | : nullptr; |
| 298 | auto data_encryptor = |
| 299 | file_encryptor_ ? file_encryptor_->GetColumnDataEncryptor(path->ToDotString()) |
| 300 | : nullptr; |
| 301 | auto ci_builder = page_index_builder_ && column_properties.page_index_enabled() |
| 302 | ? page_index_builder_->GetColumnIndexBuilder(column_ordinal) |
| 303 | : nullptr; |
| 304 | auto oi_builder = page_index_builder_ && column_properties.page_index_enabled() |
| 305 | ? page_index_builder_->GetOffsetIndexBuilder(column_ordinal) |
| 306 | : nullptr; |
| 307 | BloomFilter* bloom_filter = nullptr; |
| 308 | if (bloom_filter_builder_) { |
| 309 | bloom_filter = bloom_filter_builder_->CreateBloomFilter(column_ordinal); |
| 310 | } |
| 311 | const CodecOptions* codec_options = column_properties.codec_options() |
| 312 | ? column_properties.codec_options().get() |
| 313 | : nullptr; |
| 314 | CodecOptions default_codec_options; |
| 315 | if (!codec_options) { |
| 316 | codec_options = &default_codec_options; |
| 317 | } |
| 318 | DCHECK_NE(nullptr, codec_options); |
| 319 | std::unique_ptr<PageWriter> pager = PageWriter::Open( |
| 320 | sink_, column_properties.compression(), col_meta, row_group_ordinal_, |
| 321 | static_cast<int16_t>(column_ordinal), properties_->memory_pool(), |
| 322 | buffered_row_group_, meta_encryptor, data_encryptor, |
| 323 | properties_->page_checksum_enabled(), ci_builder, oi_builder, *codec_options); |
| 324 | return ColumnWriter::Make(col_meta, std::move(pager), properties_, bloom_filter); |
| 325 | } |
| 326 | |
| 327 | // If buffered_row_group_ is false, only column_writers_[0] is used as current writer. |
| 328 | // If buffered_row_group_ is true, multiple column writers are used. |
nothing calls this directly
no test coverage detected