cpp/src/gandiva/precompiled/decimal_ops.cc
// Multiply when the out_precision is 38.
Multiply when the out_precision is 38.
Multiply when the out_precision is 38 .
static BasicDecimal128 MultiplyMaxPrecision(const BasicDecimalScalar128& x,
                                            const BasicDecimalScalar128& y,
                                            int32_t out_scale, bool* overflow) {
  auto delta_scale = x.scale() + y.scale() - out_scale;
  DCHECK_GE(delta_scale, 0);
  if (delta_scale == 0) {
    return MultiplyMaxPrecisionNoScaleDown(x, y, out_scale, overflow);
  } else {
    return MultiplyMaxPrecisionAndScaleDown(x, y, out_scale, overflow);
  }
}
static BasicDecimal128 MultiplyMaxPrecision ( const BasicDecimalScalar128 & x , const BasicDecimalScalar128 & y , int32_t out_scale , bool * overflow ) { auto delta_scale = x . scale ( ) + y . scale ( ) - out_scale ; DCHECK_GE ( delta_scale , 0 ) ; if ( delta_scale == 0 ) { return MultiplyMaxPrecisionNoScaleDown ( x , y , out_scale , overflow ) ; } else { return MultiplyMaxPrecisionAndScaleDown ( x , y , out_scale , overflow ) ; } }
Multiply when the out_precision is 38.
Multiply when the out_precision is 38 .