MCPcopy Create free account
hub / github.com/ClickHouse/ClickHouse / getSerialization

Method getSerialization

src/DataTypes/DataTypeTuple.cpp:382–398  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

380}
381
382SerializationPtr DataTypeTuple::getSerialization(const SerializationInfo & info) const
383{
384 SerializationTuple::ElementSerializations serializations(elems.size());
385 const auto & info_tuple = assert_cast<const SerializationInfoTuple &>(info);
386
387 for (size_t i = 0; i < elems.size(); ++i)
388 {
389 String elem_name = has_explicit_names ? names[i] : toString(i + 1);
390 auto serialization = elems[i]->getSerialization(*info_tuple.getElementInfo(i));
391 serializations[i] = std::static_pointer_cast<const SerializationNamed>(SerializationNamed::create(serialization, elem_name, SubstreamType::TupleElement));
392 }
393
394 auto kinds = info.getKindStack();
395 /// Compatibility with older version that may propagate Sparse serialization for Tuple itself (in serialization.json)
396 std::erase(kinds, ISerialization::Kind::SPARSE);
397 return wrapSerializationBasedOnKindStack(SerializationTuple::create(std::move(serializations), has_explicit_names), kinds, info.getSettings());
398}
399
400MutableSerializationInfoPtr DataTypeTuple::createSerializationInfo(const SerializationInfoSettings & settings) const
401{

Callers 1

doGetSerializationMethod · 0.45

Calls 6

createFunction · 0.70
toStringFunction · 0.50
eraseFunction · 0.50
sizeMethod · 0.45
getKindStackMethod · 0.45
getSettingsMethod · 0.45

Tested by

no test coverage detected