@@ -13,7 +13,7 @@ import (
1313 "math/big"
1414 "time"
1515
16- "github.com/cockroachdb/apd/v2 "
16+ "github.com/cockroachdb/apd/v3 "
1717 "github.com/cockroachdb/cockroach/pkg/geo"
1818 "github.com/cockroachdb/cockroach/pkg/geo/geopb"
1919 "github.com/cockroachdb/cockroach/pkg/sql/catalog"
@@ -1015,12 +1015,13 @@ func decimalToRat(dec apd.Decimal, scale int32) (big.Rat, error) {
10151015 if dec .Exponent >= 0 {
10161016 exp := big .NewInt (10 )
10171017 exp = exp .Exp (exp , big .NewInt (int64 (dec .Exponent )), nil )
1018- var coeff big. Int
1019- r .SetFrac (coeff .Mul (& dec . Coeff , exp ), big .NewInt (1 ))
1018+ coeff := dec . Coeff . MathBigInt ()
1019+ r .SetFrac (coeff .Mul (coeff , exp ), big .NewInt (1 ))
10201020 } else {
10211021 exp := big .NewInt (10 )
10221022 exp = exp .Exp (exp , big .NewInt (int64 (- dec .Exponent )), nil )
1023- r .SetFrac (& dec .Coeff , exp )
1023+ coeff := dec .Coeff .MathBigInt ()
1024+ r .SetFrac (coeff , exp )
10241025 }
10251026 if dec .Negative {
10261027 r .Mul (& r , big .NewRat (- 1 , 1 ))
@@ -1036,7 +1037,8 @@ func ratToDecimal(rat big.Rat, scale int32) apd.Decimal {
10361037 exp := big .NewInt (10 )
10371038 exp = exp .Exp (exp , big .NewInt (int64 (scale )), nil )
10381039 sf := denom .Div (exp , denom )
1039- coeff := num .Mul (num , sf )
1040- dec := apd .NewWithBigInt (coeff , - scale )
1040+ var coeff apd.BigInt
1041+ coeff .SetMathBigInt (num .Mul (num , sf ))
1042+ dec := apd .NewWithBigInt (& coeff , - scale )
10411043 return * dec
10421044}
0 commit comments