Skip to content

Commit 1c13a54

Browse files
authored
Merge pull request #2414 from serprex/master
pgtype numeric optimization: replace Cmp(big0) with Sign()
2 parents 8a264bb + 72640c0 commit 1c13a54

1 file changed

Lines changed: 5 additions & 6 deletions

File tree

pgtype/numeric.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ const (
2828
)
2929

3030
var (
31-
big0 *big.Int = big.NewInt(0)
3231
big1 *big.Int = big.NewInt(1)
3332
big10 *big.Int = big.NewInt(10)
3433
big100 *big.Int = big.NewInt(100)
@@ -166,7 +165,7 @@ func (n *Numeric) toBigInt() (*big.Int, error) {
166165
div.Exp(big10, big.NewInt(int64(-n.Exp)), nil)
167166
remainder := &big.Int{}
168167
num.DivMod(num, div, remainder)
169-
if remainder.Cmp(big0) != 0 {
168+
if remainder.Sign() != 0 {
170169
return nil, fmt.Errorf("cannot convert %v to integer", n)
171170
}
172171
return num, nil
@@ -409,7 +408,7 @@ func encodeNumericBinary(n Numeric, buf []byte) (newBuf []byte, err error) {
409408
}
410409

411410
var sign int16
412-
if n.Int.Cmp(big0) < 0 {
411+
if n.Int.Sign() < 0 {
413412
sign = 16384
414413
}
415414

@@ -447,12 +446,12 @@ func encodeNumericBinary(n Numeric, buf []byte) (newBuf []byte, err error) {
447446

448447
var wholeDigits, fracDigits []int16
449448

450-
for wholePart.Cmp(big0) != 0 {
449+
for wholePart.Sign() != 0 {
451450
wholePart.DivMod(wholePart, bigNBase, remainder)
452451
wholeDigits = append(wholeDigits, int16(remainder.Int64()))
453452
}
454453

455-
if fracPart.Cmp(big0) != 0 {
454+
if fracPart.Sign() != 0 {
456455
for fracPart.Cmp(big1) != 0 {
457456
fracPart.DivMod(fracPart, bigNBase, remainder)
458457
fracDigits = append(fracDigits, int16(remainder.Int64()))
@@ -681,7 +680,7 @@ func (scanPlanBinaryNumericToNumericScanner) Scan(src []byte, dst any) error {
681680
if exp >= 0 {
682681
for {
683682
reduced.DivMod(accum, big10, remainder)
684-
if remainder.Cmp(big0) != 0 {
683+
if remainder.Sign() != 0 {
685684
break
686685
}
687686
accum.Set(reduced)

0 commit comments

Comments
 (0)