mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-24 00:22:29 +00:00
fix due to review
This commit is contained in:
parent
1ab29bef62
commit
0557cdb8a9
@ -156,14 +156,18 @@ public:
|
||||
only_integer && (IsDataTypeDecimal<LeftDataType> || IsDataTypeDecimal<RightDataType>),
|
||||
Switch<
|
||||
Case<
|
||||
IsDataTypeDecimal<LeftDataType> || IsDataTypeDecimal<RightDataType>,
|
||||
IsDataTypeDecimal<LeftDataType>,
|
||||
Switch<
|
||||
Case<std::is_same_v<LeftDataType, DataTypeDecimal256>, DataTypeInt256>,
|
||||
Case<std::is_same_v<LeftDataType, DataTypeDecimal128>, DataTypeInt128>,
|
||||
Case<std::is_same_v<LeftDataType, DataTypeDecimal64>, DataTypeInt64>,
|
||||
Case<std::is_same_v<LeftDataType, DataTypeDecimal32>, DataTypeInt32>>>,
|
||||
Case<
|
||||
IsDataTypeDecimal<RightDataType>,
|
||||
Switch<
|
||||
Case<IsIntegralOrExtended<LeftDataType>, LeftDataType>,
|
||||
Case<IsIntegralOrExtended<RightDataType>, RightDataType>,
|
||||
Case<std::is_same_v<LeftDataType, DataTypeDecimal256> || std::is_same_v<RightDataType, DataTypeDecimal256>, DataTypeInt256>,
|
||||
Case<std::is_same_v<LeftDataType, DataTypeDecimal128> || std::is_same_v<RightDataType, DataTypeDecimal128>, DataTypeInt128>,
|
||||
Case<std::is_same_v<LeftDataType, DataTypeDecimal64> || std::is_same_v<RightDataType, DataTypeDecimal64>, DataTypeInt64>,
|
||||
Case<std::is_same_v<LeftDataType, DataTypeDecimal32> || std::is_same_v<RightDataType, DataTypeDecimal32>, DataTypeInt32>>>>>,
|
||||
Case<std::is_same_v<LeftDataType, DataTypeFloat64>, DataTypeInt64>,
|
||||
Case<std::is_same_v<LeftDataType, DataTypeFloat32>, DataTypeInt32>>>>>,
|
||||
|
||||
/// Decimal cases
|
||||
Case<!allow_decimal && (IsDataTypeDecimal<LeftDataType> || IsDataTypeDecimal<RightDataType>), InvalidType>,
|
||||
@ -1684,11 +1688,11 @@ public:
|
||||
{
|
||||
if constexpr (is_div_int || is_div_int_or_zero)
|
||||
{
|
||||
if constexpr (std::is_same_v<LeftDataType, DataTypeDecimal256> || std::is_same_v<RightDataType, DataTypeDecimal256>)
|
||||
if constexpr (std::is_same_v<LeftDataType, DataTypeDecimal256>)
|
||||
type_res = std::make_shared<DataTypeInt256>();
|
||||
else if constexpr (std::is_same_v<LeftDataType, DataTypeDecimal128> || std::is_same_v<RightDataType, DataTypeDecimal128>)
|
||||
else if constexpr (std::is_same_v<LeftDataType, DataTypeDecimal128>)
|
||||
type_res = std::make_shared<DataTypeInt128>();
|
||||
else if constexpr (std::is_same_v<LeftDataType, DataTypeDecimal64> || std::is_same_v<RightDataType, DataTypeDecimal64>)
|
||||
else if constexpr (std::is_same_v<LeftDataType, DataTypeDecimal64>)
|
||||
type_res = std::make_shared<DataTypeInt64>();
|
||||
else
|
||||
type_res = std::make_shared<DataTypeInt32>();
|
||||
@ -1723,18 +1727,14 @@ public:
|
||||
type_res = std::make_shared<DataTypeInt256>();
|
||||
else if constexpr (std::is_same_v<LeftDataType, DataTypeDecimal128>)
|
||||
type_res = std::make_shared<DataTypeInt128>();
|
||||
else if constexpr (std::is_same_v<LeftDataType, DataTypeDecimal64> || std::is_same_v<RightDataType, DataTypeFloat64>)
|
||||
else if constexpr (std::is_same_v<LeftDataType, DataTypeDecimal64>)
|
||||
type_res = std::make_shared<DataTypeInt64>();
|
||||
else
|
||||
type_res = std::make_shared<DataTypeInt32>();
|
||||
}
|
||||
else if constexpr (is_div_int || is_div_int_or_zero)
|
||||
{
|
||||
if constexpr (std::is_same_v<RightDataType, DataTypeDecimal256>)
|
||||
type_res = std::make_shared<DataTypeInt256>();
|
||||
else if constexpr (std::is_same_v<RightDataType, DataTypeDecimal128>)
|
||||
type_res = std::make_shared<DataTypeInt128>();
|
||||
else if constexpr (std::is_same_v<RightDataType, DataTypeDecimal64> || std::is_same_v<LeftDataType, DataTypeFloat64>)
|
||||
if constexpr (std::is_same_v<LeftDataType, DataTypeFloat64>)
|
||||
type_res = std::make_shared<DataTypeInt64>();
|
||||
else
|
||||
type_res = std::make_shared<DataTypeInt32>();
|
||||
@ -1744,9 +1744,7 @@ public:
|
||||
}
|
||||
else if constexpr (IsDataTypeDecimal<LeftDataType>)
|
||||
{
|
||||
if constexpr ((is_div_int || is_div_int_or_zero) && IsIntegralOrExtended<RightDataType>)
|
||||
type_res = std::make_shared<RightDataType>();
|
||||
else if constexpr (is_div_int || is_div_int_or_zero)
|
||||
if constexpr (is_div_int || is_div_int_or_zero)
|
||||
{
|
||||
if constexpr (std::is_same_v<LeftDataType, DataTypeDecimal256>)
|
||||
type_res = std::make_shared<DataTypeInt256>();
|
||||
@ -1766,11 +1764,7 @@ public:
|
||||
type_res = std::make_shared<LeftDataType>();
|
||||
else if constexpr (is_div_int || is_div_int_or_zero)
|
||||
{
|
||||
if constexpr (std::is_same_v<RightDataType, DataTypeDecimal256>)
|
||||
type_res = std::make_shared<DataTypeInt256>();
|
||||
else if constexpr (std::is_same_v<RightDataType, DataTypeDecimal128>)
|
||||
type_res = std::make_shared<DataTypeInt128>();
|
||||
else if constexpr (std::is_same_v<RightDataType, DataTypeDecimal64>)
|
||||
if constexpr (std::is_same_v<LeftDataType, DataTypeFloat64>)
|
||||
type_res = std::make_shared<DataTypeInt64>();
|
||||
else
|
||||
type_res = std::make_shared<DataTypeInt32>();
|
||||
|
Loading…
Reference in New Issue
Block a user