[Bug] fix decimal arithmetic calculations (#10963)
This commit is contained in:
@ -745,14 +745,11 @@ private:
|
||||
OpTraits::is_division);
|
||||
typename ResultDataType::FieldType scale_a;
|
||||
typename ResultDataType::FieldType scale_b;
|
||||
if constexpr (OpTraits::is_division && IsDataTypeDecimal<RightDataType>) {
|
||||
scale_a = type_right.get_scale_multiplier();
|
||||
scale_b = 1;
|
||||
} else {
|
||||
scale_a = type.scale_factor_for(type_left, OpTraits::is_multiply);
|
||||
scale_b = type.scale_factor_for(type_right,
|
||||
OpTraits::is_multiply || OpTraits::is_division);
|
||||
}
|
||||
|
||||
// TODO(Gabriel): precision and scale need to be processed for decimalv3, now we just
|
||||
// keep the same behavior as before
|
||||
scale_a = type.scale_factor_for(type_left, OpTraits::is_multiply);
|
||||
scale_b = type.scale_factor_for(type_right, OpTraits::is_multiply || OpTraits::is_division);
|
||||
return std::make_tuple(type, scale_a, scale_b);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user