Skip to content

Commit 60fb338

Browse files
committed
Remove null array serialization and skip the column instead
1 parent 187208f commit 60fb338

File tree

1 file changed

+16
-28
lines changed

1 file changed

+16
-28
lines changed

buffer.go

Lines changed: 16 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,6 @@ type arrayElemType byte
8686

8787
const (
8888
arrayElemDouble arrayElemType = 10
89-
arrayElemNull arrayElemType = 40
9089
)
9190

9291
// buffer is a wrapper on top of bytes.Buffer. It extends the
@@ -671,12 +670,12 @@ func (b *buffer) Float64Array1DColumn(name string, values []float64) *buffer {
671670
if !b.prepareForField() {
672671
return b
673672
}
674-
b.lastErr = b.writeColumnName(name)
675-
if b.lastErr != nil {
673+
if values == nil {
674+
// Don't write null arrays
676675
return b
677676
}
678-
if values == nil {
679-
b.writeNullArray()
677+
b.lastErr = b.writeColumnName(name)
678+
if b.lastErr != nil {
680679
return b
681680
}
682681

@@ -703,13 +702,12 @@ func (b *buffer) Float64Array2DColumn(name string, values [][]float64) *buffer {
703702
if !b.prepareForField() {
704703
return b
705704
}
706-
b.lastErr = b.writeColumnName(name)
707-
if b.lastErr != nil {
705+
if values == nil {
706+
// Don't write null arrays
708707
return b
709708
}
710-
711-
if values == nil {
712-
b.writeNullArray()
709+
b.lastErr = b.writeColumnName(name)
710+
if b.lastErr != nil {
713711
return b
714712
}
715713

@@ -752,13 +750,12 @@ func (b *buffer) Float64Array3DColumn(name string, values [][][]float64) *buffer
752750
if !b.prepareForField() {
753751
return b
754752
}
755-
b.lastErr = b.writeColumnName(name)
756-
if b.lastErr != nil {
753+
if values == nil {
754+
// Don't write null arrays
757755
return b
758756
}
759-
760-
if values == nil {
761-
b.writeNullArray()
757+
b.lastErr = b.writeColumnName(name)
758+
if b.lastErr != nil {
762759
return b
763760
}
764761

@@ -814,13 +811,12 @@ func (b *buffer) Float64ArrayNDColumn(name string, value *NdArray[float64]) *buf
814811
if !b.prepareForField() {
815812
return b
816813
}
817-
b.lastErr = b.writeColumnName(name)
818-
if b.lastErr != nil {
814+
if value == nil {
815+
// Don't write null arrays
819816
return b
820817
}
821-
822-
if value == nil {
823-
b.writeNullArray()
818+
b.lastErr = b.writeColumnName(name)
819+
if b.lastErr != nil {
824820
return b
825821
}
826822

@@ -926,11 +922,3 @@ func (b *buffer) writeFloat64ArrayHeader(dims byte) {
926922
b.WriteByte(byte(arrayElemDouble))
927923
b.WriteByte(dims)
928924
}
929-
930-
func (b *buffer) writeNullArray() {
931-
b.WriteByte('=')
932-
b.WriteByte('=')
933-
b.WriteByte(byte(arrayCode))
934-
b.WriteByte(byte(arrayElemNull))
935-
b.hasFields = true
936-
}

0 commit comments

Comments
 (0)