mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-21 01:00:48 +00:00
another fix
This commit is contained in:
parent
e2556659e0
commit
985876b737
@ -348,6 +348,29 @@ struct DecimalBinaryOperation
|
||||
return;
|
||||
}
|
||||
}
|
||||
else if constexpr(is_multiply && (!is_decimal_a || !is_decimal_b)) // BUG very bad solution
|
||||
{
|
||||
if (scale_a != 1)
|
||||
{
|
||||
for (size_t i = 0; i < size; ++i)
|
||||
if constexpr(IsDecimalNumber<ResultType>)
|
||||
c[i] = apply(a, undec(a[i])) / DecimalUtils::scaleMultiplier<NativeResultType>(scale_a);
|
||||
else
|
||||
c[i] = apply(a, undec(a[i])) / DecimalUtils::scaleMultiplier<Int64>(scale_a);
|
||||
return;
|
||||
}
|
||||
else if (scale_b != 1)
|
||||
{
|
||||
for (size_t i = 0; i < size; ++i)
|
||||
if constexpr(IsDecimalNumber<ResultType>)
|
||||
c[i] = apply(a, undec(b[i])) / DecimalUtils::scaleMultiplier<NativeResultType>(scale_b);
|
||||
else
|
||||
c[i] = apply(a, undec(b[i])) / DecimalUtils::scaleMultiplier<Int64>(scale_b);
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
else if constexpr (is_division && is_decimal_b)
|
||||
{
|
||||
for (size_t i = 0; i < size; ++i)
|
||||
|
@ -3,10 +3,10 @@
|
||||
0.00012000000000000002
|
||||
150.16500000000002
|
||||
7.775900000000001
|
||||
56.622689999999995
|
||||
598.8376688440277
|
||||
56622.689999999995
|
||||
5.988376688440276
|
||||
2.9941884322906844
|
||||
1.641386318314034
|
||||
1.641386318314034
|
||||
1.6413863211679272
|
||||
1.6413863211679272
|
||||
1.6413863192433382
|
||||
1.6413863192433382
|
||||
|
@ -14,7 +14,9 @@ INSERT INTO test01603(f64) SELECT 1 / (number + 1) FROM system.numbers LIMIT 100
|
||||
SELECT sum(d * 1.1) FROM test01603;
|
||||
SELECT sum(8.01 * d) FROM test01603;
|
||||
SELECT sum(f64 * toDecimal64(80, 2)) FROM test01603;
|
||||
SELECT sum(toDecimal64(0.4, 2) * f32) FROM test01603;
|
||||
SELECT sum(toDecimal64(40, 2) * f32) FROM test01603;
|
||||
SELECT sum(f64 * toDecimal64(0.1, 2)) FROM test01603;
|
||||
SELECT sum(toDecimal64(0.3, 2) * f32) FROM test01603;
|
||||
|
||||
SELECT sum(f64 * d) FROM test01603;
|
||||
SELECT sum(d * f64) FROM test01603;
|
||||
|
Loading…
Reference in New Issue
Block a user