| 441 | } |
| 442 | |
| 443 | DataTypePtr getLeastCommonTypeForDynamicColumns( |
| 444 | const DataTypePtr & type_in_storage, const DataTypes & concrete_types, bool check_ambiguos_paths) |
| 445 | { |
| 446 | if (concrete_types.empty()) |
| 447 | return nullptr; |
| 448 | |
| 449 | bool all_equal = true; |
| 450 | for (size_t i = 1; i < concrete_types.size(); ++i) |
| 451 | { |
| 452 | if (!concrete_types[i]->equals(*concrete_types[0])) |
| 453 | { |
| 454 | all_equal = false; |
| 455 | break; |
| 456 | } |
| 457 | } |
| 458 | |
| 459 | if (all_equal) |
| 460 | return concrete_types[0]; |
| 461 | |
| 462 | return getLeastCommonTypeForDynamicColumnsImpl(type_in_storage, concrete_types, check_ambiguos_paths); |
| 463 | } |
| 464 | |
| 465 | DataTypePtr createConcreteEmptyDynamicColumn(const DataTypePtr & type_in_storage) |
| 466 | { |
no test coverage detected