@@ -420,10 +420,6 @@ where
420
420
unsafe { values. extend_trusted_len_unchecked ( iter) } ;
421
421
self . builder . try_push_valid ( ) . unwrap ( ) ;
422
422
}
423
-
424
- pub fn append_null ( & mut self ) {
425
- self . builder . push_null ( ) ;
426
- }
427
423
}
428
424
429
425
impl < T > ListBuilderTrait for ListPrimitiveChunkedBuilder < T >
@@ -436,14 +432,13 @@ where
436
432
Some ( s) => {
437
433
self . append_series ( s) ;
438
434
}
439
- None => {
440
- self . builder . push_null ( ) ;
441
- }
435
+ None => self . append_null ( ) ,
442
436
}
443
437
}
444
438
445
439
#[ inline]
446
440
fn append_null ( & mut self ) {
441
+ self . fast_explode = false ;
447
442
self . builder . push_null ( ) ;
448
443
}
449
444
@@ -519,13 +514,14 @@ impl ListBuilderTrait for ListUtf8ChunkedBuilder {
519
514
match opt_s {
520
515
Some ( s) => self . append_series ( s) ,
521
516
None => {
522
- self . builder . push_null ( ) ;
517
+ self . append_null ( ) ;
523
518
}
524
519
}
525
520
}
526
521
527
522
#[ inline]
528
523
fn append_null ( & mut self ) {
524
+ self . fast_explode = false ;
529
525
self . builder . push_null ( ) ;
530
526
}
531
527
@@ -583,13 +579,14 @@ impl ListBuilderTrait for ListBooleanChunkedBuilder {
583
579
match opt_s {
584
580
Some ( s) => self . append_series ( s) ,
585
581
None => {
586
- self . builder . push_null ( ) ;
582
+ self . append_null ( ) ;
587
583
}
588
584
}
589
585
}
590
586
591
587
#[ inline]
592
588
fn append_null ( & mut self ) {
589
+ self . fast_explode = false ;
593
590
self . builder . push_null ( ) ;
594
591
}
595
592
@@ -684,6 +681,15 @@ mod test {
684
681
let out = [ & s1, & s2] . iter ( ) . copied ( ) . collect :: < ListChunked > ( ) ;
685
682
assert_eq ! ( out. get( 0 ) . unwrap( ) . len( ) , 6 ) ;
686
683
assert_eq ! ( out. get( 1 ) . unwrap( ) . len( ) , 3 ) ;
684
+
685
+ let mut builder = ListPrimitiveChunkedBuilder :: < Int32Type > :: new ( "a" , 10 , 5 ) ;
686
+ builder. append_series ( & s1) ;
687
+ builder. append_null ( ) ;
688
+
689
+ let out = builder. finish ( ) ;
690
+ let out = out. explode ( ) . unwrap ( ) ;
691
+ assert_eq ! ( out. len( ) , 7 ) ;
692
+ assert_eq ! ( out. get( 6 ) , AnyValue :: Null ) ;
687
693
}
688
694
689
695
#[ test]
0 commit comments