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

Method CreateColumnWriterForColumn

cpp/src/parquet/file_writer.cc:291–325  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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.

Callers

nothing calls this directly

Calls 12

ToDotStringMethod · 0.80
GetColumnIndexBuilderMethod · 0.80
GetOffsetIndexBuilderMethod · 0.80
CreateBloomFilterMethod · 0.80
MakeFunction · 0.70
pathMethod · 0.45
descrMethod · 0.45
getMethod · 0.45
compressionMethod · 0.45
memory_poolMethod · 0.45

Tested by

no test coverage detected