MCPcopy Create free account
hub / github.com/ByConity/ByConity / convertObjectColumnToTuple

Function convertObjectColumnToTuple

src/DataTypes/ObjectUtils.cpp:149–173  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

147}
148
149static std::pair<ColumnPtr, DataTypePtr> convertObjectColumnToTuple(
150 const ColumnObject & column_object, const DataTypeObject & type_object)
151{
152 if (!column_object.isFinalized())
153 {
154 auto finalized = column_object.cloneFinalized();
155 const auto & finalized_object = assert_cast<const ColumnObject &>(*finalized);
156 return convertObjectColumnToTuple(finalized_object, type_object);
157 }
158
159 const auto & subcolumns = column_object.getSubcolumns();
160
161 PathsInData tuple_paths;
162 DataTypes tuple_types;
163 Columns tuple_columns;
164
165 for (const auto & entry : subcolumns)
166 {
167 tuple_paths.emplace_back(entry->path);
168 tuple_types.emplace_back(entry->data.getLeastCommonType());
169 tuple_columns.emplace_back(entry->data.getFinalizedColumnPtr());
170 }
171
172 return unflattenTuple(tuple_paths, tuple_types, tuple_columns);
173}
174
175static std::pair<ColumnPtr, DataTypePtr> recursivelyConvertDynamicColumnToTuple(
176 const ColumnPtr & column, const DataTypePtr & type)

Calls 5

unflattenTupleFunction · 0.85
cloneFinalizedMethod · 0.80
getSubcolumnsMethod · 0.80
isFinalizedMethod · 0.45
emplace_backMethod · 0.45

Tested by

no test coverage detected