Skip to content

Commit a7f4c07

Browse files
committed
fix: handle null decimals in DecimalColumn methods to prevent writing null values
1 parent d2b6670 commit a7f4c07

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

buffer.go

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -574,6 +574,10 @@ func (b *buffer) Float64Column(name string, val float64) *buffer {
574574
}
575575

576576
func (b *buffer) DecimalColumnScaled(name string, val ScaledDecimal) *buffer {
577+
if val.IsNull() {
578+
// Don't write null decimals
579+
return b
580+
}
577581
if !b.prepareForField() {
578582
return b
579583
}
@@ -585,10 +589,6 @@ func (b *buffer) decimalColumnScaled(name string, val ScaledDecimal) *buffer {
585589
b.lastErr = err
586590
return b
587591
}
588-
if val.IsNull() {
589-
// Don't write null decimals
590-
return b
591-
}
592592
b.lastErr = b.writeColumnName(name)
593593
if b.lastErr != nil {
594594
return b
@@ -623,17 +623,24 @@ func (b *buffer) DecimalColumnString(name string, val string) *buffer {
623623
}
624624

625625
func (b *buffer) DecimalColumnShopspring(name string, val ShopspringDecimal) *buffer {
626-
if !b.prepareForField() {
626+
if val == nil {
627627
return b
628628
}
629-
if val == nil {
629+
if b.lastErr != nil {
630630
return b
631631
}
632632
dec, err := convertShopspringDecimal(val)
633633
if err != nil {
634634
b.lastErr = err
635635
return b
636636
}
637+
if dec.IsNull() {
638+
// Don't write null decimals
639+
return b
640+
}
641+
if !b.prepareForField() {
642+
return b
643+
}
637644
return b.decimalColumnScaled(name, dec)
638645
}
639646

0 commit comments

Comments
 (0)