From 0ab198238a7c9f986b0600518e83eedd7d4ded3d Mon Sep 17 00:00:00 2001 From: myrrc Date: Wed, 23 Dec 2020 17:21:12 +0300 Subject: [PATCH] fix the compile error --- src/Functions/FunctionBinaryArithmetic.h | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/Functions/FunctionBinaryArithmetic.h b/src/Functions/FunctionBinaryArithmetic.h index bbc84f91dc4..723f06be468 100644 --- a/src/Functions/FunctionBinaryArithmetic.h +++ b/src/Functions/FunctionBinaryArithmetic.h @@ -802,8 +802,12 @@ class FunctionBinaryArithmetic : public IFunction if constexpr (IsDataTypeDecimal && is_division) return right.getScaleMultiplier(); // the division impl uses only the scale_a else if constexpr (result_is_decimal) - // scale_a = 1 is result is decimal - return is_multiply ? 1 : type.scaleFactorFor(left, false); + { + if constexpr (is_multiply) + return 1; + else + return type.scaleFactorFor(left, false); + } else if constexpr (left_is_decimal) { const ResultType scale = DecimalUtils::convertTo(left.getScaleMultiplier(), 0); @@ -816,7 +820,12 @@ class FunctionBinaryArithmetic : public IFunction const ResultType scale_b = [&] { if constexpr (result_is_decimal) - return is_multiply ? 1 : type.scaleFactorFor(right, true); + { + if constexpr (is_multiply) + return 1; + else + return type.scaleFactorFor(right, is_division); + } else if constexpr (right_is_decimal) { const ResultType scale = DecimalUtils::convertTo(right.getScaleMultiplier(), 0);