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

Function unflattenObjectToTuple

src/DataTypes/ObjectUtils.cpp:786–815  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

784}
785
786std::pair<ColumnPtr, DataTypePtr> unflattenObjectToTuple(const ColumnObject & column)
787{
788 const auto & subcolumns = column.getSubcolumns();
789
790 if (subcolumns.empty())
791 {
792 auto type = std::make_shared<DataTypeTuple>(
793 DataTypes{std::make_shared<DataTypeUInt8>()},
794 Names{ColumnObject::COLUMN_NAME_DUMMY});
795
796 return {type->createColumn()->cloneResized(column.size()), type};
797 }
798
799 PathsInData paths;
800 DataTypes types;
801 Columns columns;
802
803 paths.reserve(subcolumns.size());
804 types.reserve(subcolumns.size());
805 columns.reserve(subcolumns.size());
806
807 for (const auto & entry : subcolumns)
808 {
809 paths.emplace_back(entry->path);
810 types.emplace_back(entry->data.getLeastCommonType());
811 columns.emplace_back(entry->data.getFinalizedColumnPtr());
812 }
813
814 return unflattenTuple(paths, types, columns);
815}
816
817std::pair<ColumnPtr, DataTypePtr> unflattenTuple(
818 const PathsInData & paths,

Callers 7

runMethod · 0.85
insertResultToColumnMethod · 0.85
executeImplMethod · 0.85
executeImplMethod · 0.85
runMethod · 0.85

Calls 8

unflattenTupleFunction · 0.85
getSubcolumnsMethod · 0.80
emptyMethod · 0.45
cloneResizedMethod · 0.45
createColumnMethod · 0.45
sizeMethod · 0.45
reserveMethod · 0.45
emplace_backMethod · 0.45

Tested by

no test coverage detected