| 327 | } |
| 328 | |
| 329 | SerializationPtr DataTypeTuple::getSerialization(const String & column_name, const StreamExistenceCallback & callback) const |
| 330 | { |
| 331 | SerializationTuple::ElementSerializations serializations(elems.size()); |
| 332 | bool use_explicit_names = have_explicit_names && serialize_names; |
| 333 | for (size_t i = 0; i < elems.size(); ++i) |
| 334 | { |
| 335 | String elem_name = use_explicit_names ? names[i] : toString(i + 1); |
| 336 | auto subcolumn_name = Nested::concatenateName(column_name, elem_name); |
| 337 | auto serializaion = elems[i]->getSerialization(subcolumn_name, callback); |
| 338 | serializations[i] = std::make_shared<SerializationNamed>(serializaion, elem_name); |
| 339 | } |
| 340 | |
| 341 | return std::make_shared<SerializationTuple>(std::move(serializations), use_explicit_names); |
| 342 | } |
| 343 | |
| 344 | static DataTypePtr create(const ASTPtr & arguments) |
| 345 | { |
nothing calls this directly
no test coverage detected