| 2745 | { |
| 2746 | |
| 2747 | bool castType(const IDataType * type, auto && f) |
| 2748 | { |
| 2749 | using Types = TypeList< |
| 2750 | DataTypeUInt8, |
| 2751 | DataTypeUInt16, |
| 2752 | DataTypeUInt32, |
| 2753 | DataTypeUInt64, |
| 2754 | DataTypeUInt128, |
| 2755 | DataTypeUInt256, |
| 2756 | DataTypeInt8, |
| 2757 | DataTypeInt16, |
| 2758 | DataTypeInt32, |
| 2759 | DataTypeInt64, |
| 2760 | DataTypeInt128, |
| 2761 | DataTypeInt256, |
| 2762 | DataTypeFloat32, |
| 2763 | DataTypeFloat64, |
| 2764 | DataTypeDecimal32, |
| 2765 | DataTypeDecimal64, |
| 2766 | DataTypeDecimal128, |
| 2767 | DataTypeDecimal256, |
| 2768 | DataTypeDate, |
| 2769 | DataTypeDateTime, |
| 2770 | DataTypeFixedString, |
| 2771 | DataTypeString, |
| 2772 | DataTypeInterval>; |
| 2773 | return castTypeToEither(Types{}, type, std::forward<decltype(f)>(f)); |
| 2774 | } |
| 2775 | |
| 2776 | template <typename F> |
| 2777 | bool castBothTypes(const IDataType * left, const IDataType * right, F && f) |
no test coverage detected