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

Method WriteColumn

cpp/src/parquet/arrow/reconstruct_internal_test.cc:104–128  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

102 // Write a leaf (primitive) column
103 template <ParquetType TYPE, typename C_TYPE = typename ParquetTraits<TYPE>::value_type>
104 Status WriteColumn(const LevelVector& def_levels, const LevelVector& rep_levels,
105 const std::vector<C_TYPE>& values) {
106 auto column_writer = row_group_writer_->NextColumn();
107 auto column_descr = column_writer->descr();
108 const int16_t max_def_level = column_descr->max_definition_level();
109 const int16_t max_rep_level = column_descr->max_repetition_level();
110 CheckTestedLevels(def_levels, max_def_level);
111 CheckTestedLevels(rep_levels, max_rep_level);
112
113 auto typed_writer =
114 checked_cast<TypedColumnWriter<PhysicalType<TYPE>>*>(column_writer);
115
116 const int64_t num_values =
117 static_cast<int64_t>((max_def_level > 0) ? def_levels.size()
118 : (max_rep_level > 0) ? rep_levels.size()
119 : values.size());
120 const int64_t values_written = typed_writer->WriteBatch(
121 num_values, LevelPointerOrNull(def_levels, max_def_level),
122 LevelPointerOrNull(rep_levels, max_rep_level), values.data());
123 DCHECK_EQ(values_written, static_cast<int64_t>(values.size())); // Sanity check
124
125 column_writer->Close();
126 ++column_index_;
127 return Status::OK();
128 }
129
130 protected:
131 Status Open(const NodePtr& group_node, int num_columns) {

Callers

nothing calls this directly

Calls 7

OKFunction · 0.50
NextColumnMethod · 0.45
descrMethod · 0.45
sizeMethod · 0.45
WriteBatchMethod · 0.45
dataMethod · 0.45
CloseMethod · 0.45

Tested by

no test coverage detected