Multiply when the out_precision is 38.
| 317 | |
| 318 | // Multiply when the out_precision is 38. |
| 319 | static BasicDecimal128 MultiplyMaxPrecision(const BasicDecimalScalar128& x, |
| 320 | const BasicDecimalScalar128& y, |
| 321 | int32_t out_scale, bool* overflow) { |
| 322 | auto delta_scale = x.scale() + y.scale() - out_scale; |
| 323 | DCHECK_GE(delta_scale, 0); |
| 324 | if (delta_scale == 0) { |
| 325 | return MultiplyMaxPrecisionNoScaleDown(x, y, out_scale, overflow); |
| 326 | } else { |
| 327 | return MultiplyMaxPrecisionAndScaleDown(x, y, out_scale, overflow); |
| 328 | } |
| 329 | } |
| 330 | |
| 331 | BasicDecimal128 Multiply(const BasicDecimalScalar128& x, const BasicDecimalScalar128& y, |
| 332 | int32_t out_precision, int32_t out_scale, bool* overflow) { |
no test coverage detected