@@ -169,3 +169,70 @@ func TestOptBinaryBuilder_Value(t *testing.T) {
169
169
require .Equal (t , value , string (b .Value (i )))
170
170
}
171
171
}
172
+
173
+ func TestAppendEmptyValue (t * testing.T ) {
174
+ t .Run ("OptBinaryBuilder" , func (t * testing.T ) {
175
+ b := builder .NewOptBinaryBuilder (arrow .BinaryTypes .Binary )
176
+ b .AppendEmptyValue ()
177
+ require .Equal (t , 1 , b .Len ())
178
+ require .True (t , b .IsValid (0 ))
179
+ require .Len (t , b .Value (0 ), 0 ) // Empty value should have length 0
180
+
181
+ arr := b .NewArray ().(* array.Binary )
182
+ require .Equal (t , 1 , arr .Len ())
183
+ require .False (t , arr .IsNull (0 ))
184
+ require .Len (t , arr .Value (0 ), 0 ) // Empty value should have length 0
185
+ })
186
+
187
+ t .Run ("OptInt64Builder" , func (t * testing.T ) {
188
+ b := builder .NewOptInt64Builder (arrow .PrimitiveTypes .Int64 )
189
+ b .AppendEmptyValue ()
190
+ require .Equal (t , 1 , b .Len ())
191
+ require .True (t , b .IsValid (0 ))
192
+ require .Equal (t , int64 (0 ), b .Value (0 ))
193
+
194
+ arr := b .NewArray ().(* array.Int64 )
195
+ require .Equal (t , 1 , arr .Len ())
196
+ require .False (t , arr .IsNull (0 ))
197
+ require .Equal (t , int64 (0 ), arr .Value (0 ))
198
+ })
199
+
200
+ t .Run ("OptInt32Builder" , func (t * testing.T ) {
201
+ b := builder .NewOptInt32Builder (arrow .PrimitiveTypes .Int32 )
202
+ b .AppendEmptyValue ()
203
+ require .Equal (t , 1 , b .Len ())
204
+ require .True (t , b .IsValid (0 ))
205
+ require .Equal (t , int32 (0 ), b .Value (0 ))
206
+
207
+ arr := b .NewArray ().(* array.Int32 )
208
+ require .Equal (t , 1 , arr .Len ())
209
+ require .False (t , arr .IsNull (0 ))
210
+ require .Equal (t , int32 (0 ), arr .Value (0 ))
211
+ })
212
+
213
+ t .Run ("OptFloat64Builder" , func (t * testing.T ) {
214
+ b := builder .NewOptFloat64Builder (arrow .PrimitiveTypes .Float64 )
215
+ b .AppendEmptyValue ()
216
+ require .Equal (t , 1 , b .Len ())
217
+ require .True (t , b .IsValid (0 ))
218
+ require .Equal (t , 0.0 , b .Value (0 ))
219
+
220
+ arr := b .NewArray ().(* array.Float64 )
221
+ require .Equal (t , 1 , arr .Len ())
222
+ require .False (t , arr .IsNull (0 ))
223
+ require .Equal (t , 0.0 , arr .Value (0 ))
224
+ })
225
+
226
+ t .Run ("OptBooleanBuilder" , func (t * testing.T ) {
227
+ b := builder .NewOptBooleanBuilder (arrow .FixedWidthTypes .Boolean )
228
+ b .AppendEmptyValue ()
229
+ require .Equal (t , 1 , b .Len ())
230
+ require .True (t , b .IsValid (0 ))
231
+ require .Equal (t , false , b .Value (0 ))
232
+
233
+ arr := b .NewArray ().(* array.Boolean )
234
+ require .Equal (t , 1 , arr .Len ())
235
+ require .False (t , arr .IsNull (0 ))
236
+ require .Equal (t , false , arr .Value (0 ))
237
+ })
238
+ }
0 commit comments