@@ -721,53 +721,57 @@ where
721721 let mut list_builder = ListBuilder :: new ( string_builder) ;
722722
723723 match null_value_array {
724- None => {
725- string_array. iter ( ) . zip ( delimiter_array. iter ( ) ) . for_each (
726- |( string, delimiter) | {
727- match ( string, delimiter) {
728- ( Some ( string) , Some ( "" ) ) => {
729- list_builder. values ( ) . append_value ( string) ;
730- list_builder. append ( true ) ;
731- }
732- ( Some ( string) , Some ( delimiter) ) => {
733- string. split ( delimiter) . for_each ( |s| {
734- list_builder. values ( ) . append_value ( s) ;
735- } ) ;
736- list_builder. append ( true ) ;
737- }
738- ( Some ( string) , None ) => {
739- string. chars ( ) . map ( |c| c. to_string ( ) ) . for_each ( |c| {
740- list_builder. values ( ) . append_value ( c. as_str ( ) ) ;
741- } ) ;
742- list_builder. append ( true ) ;
743- }
744- _ => list_builder. append ( false ) , // null value
724+ None => string_array. iter ( ) . zip ( delimiter_array. iter ( ) ) . for_each (
725+ |( string, delimiter) | match ( string, delimiter) {
726+ ( Some ( string) , Some ( "" ) ) => {
727+ if !string. is_empty ( ) {
728+ list_builder. values ( ) . append_value ( string) ;
745729 }
746- } ,
747- )
748- }
730+ list_builder. append ( true ) ;
731+ }
732+ ( Some ( string) , Some ( delimiter) ) => {
733+ if !string. is_empty ( ) {
734+ string. split ( delimiter) . for_each ( |s| {
735+ list_builder. values ( ) . append_value ( s) ;
736+ } ) ;
737+ }
738+ list_builder. append ( true ) ;
739+ }
740+ ( Some ( string) , None ) => {
741+ string. chars ( ) . map ( |c| c. to_string ( ) ) . for_each ( |c| {
742+ list_builder. values ( ) . append_value ( c. as_str ( ) ) ;
743+ } ) ;
744+ list_builder. append ( true ) ;
745+ }
746+ _ => list_builder. append ( false ) ,
747+ } ,
748+ ) ,
749749 Some ( null_value_array) => string_array
750750 . iter ( )
751751 . zip ( delimiter_array. iter ( ) )
752752 . zip ( null_value_array. iter ( ) )
753753 . for_each ( |( ( string, delimiter) , null_value) | {
754754 match ( string, delimiter) {
755755 ( Some ( string) , Some ( "" ) ) => {
756- if Some ( string) == null_value {
757- list_builder. values ( ) . append_null ( ) ;
758- } else {
759- list_builder. values ( ) . append_value ( string) ;
756+ if !string. is_empty ( ) {
757+ if Some ( string) == null_value {
758+ list_builder. values ( ) . append_null ( ) ;
759+ } else {
760+ list_builder. values ( ) . append_value ( string) ;
761+ }
760762 }
761763 list_builder. append ( true ) ;
762764 }
763765 ( Some ( string) , Some ( delimiter) ) => {
764- string. split ( delimiter) . for_each ( |s| {
765- if Some ( s) == null_value {
766- list_builder. values ( ) . append_null ( ) ;
767- } else {
768- list_builder. values ( ) . append_value ( s) ;
769- }
770- } ) ;
766+ if !string. is_empty ( ) {
767+ string. split ( delimiter) . for_each ( |s| {
768+ if Some ( s) == null_value {
769+ list_builder. values ( ) . append_null ( ) ;
770+ } else {
771+ list_builder. values ( ) . append_value ( s) ;
772+ }
773+ } ) ;
774+ }
771775 list_builder. append ( true ) ;
772776 }
773777 ( Some ( string) , None ) => {
0 commit comments