@@ -383,13 +383,12 @@ mod tests {
383
383
use arrow:: datatypes:: Int64Type ;
384
384
use arrow_array:: { ArrayRef , Float64Array , Int64Array , ListArray , StringArray } ;
385
385
use arrow_schema:: { DataType , Field } ;
386
- use serde_json:: json;
386
+ use serde_json:: { json, Value } ;
387
387
use std:: { collections:: HashMap , sync:: Arc } ;
388
388
389
389
use crate :: {
390
- handlers:: http:: modal:: utils:: ingest_utils:: into_event_batch,
391
- metadata:: SchemaVersion ,
392
- utils:: json:: { convert_array_to_object, flatten:: convert_to_array} ,
390
+ handlers:: http:: modal:: utils:: ingest_utils:: into_event_batch, metadata:: SchemaVersion ,
391
+ utils:: json:: flatten_json_body,
393
392
} ;
394
393
395
394
trait TestExt {
@@ -534,21 +533,6 @@ mod tests {
534
533
assert_eq ! ( rb. num_columns( ) , 1 ) ;
535
534
}
536
535
537
- #[ test]
538
- fn non_object_arr_is_err ( ) {
539
- let json = json ! ( [ 1 ] ) ;
540
-
541
- assert ! ( convert_array_to_object(
542
- json,
543
- None ,
544
- None ,
545
- None ,
546
- SchemaVersion :: V0 ,
547
- & crate :: event:: format:: LogSource :: default ( )
548
- )
549
- . is_err( ) )
550
- }
551
-
552
536
#[ test]
553
537
fn array_into_recordbatch_inffered_schema ( ) {
554
538
let json = json ! ( [
@@ -717,11 +701,11 @@ mod tests {
717
701
let json = json ! ( [
718
702
{
719
703
"a" : 1 ,
720
- "b" : "hello" ,
704
+ "b" : "hello"
721
705
} ,
722
706
{
723
707
"a" : 1 ,
724
- "b" : "hello" ,
708
+ "b" : "hello"
725
709
} ,
726
710
{
727
711
"a" : 1 ,
@@ -732,72 +716,66 @@ mod tests {
732
716
"a" : 1 ,
733
717
"b" : "hello" ,
734
718
"c" : [ { "a" : 1 , "b" : 2 } ]
735
- } ,
719
+ }
736
720
] ) ;
737
- let flattened_json = convert_to_array (
738
- convert_array_to_object (
739
- json,
740
- None ,
741
- None ,
742
- None ,
743
- SchemaVersion :: V0 ,
744
- & crate :: event:: format:: LogSource :: default ( ) ,
745
- )
746
- . unwrap ( ) ,
747
- )
748
- . unwrap ( ) ;
749
-
750
- let ( rb, _) = into_event_batch (
751
- flattened_json,
752
- HashMap :: default ( ) ,
753
- false ,
721
+ let data = flatten_json_body (
722
+ json,
723
+ None ,
724
+ None ,
754
725
None ,
755
726
SchemaVersion :: V0 ,
727
+ & crate :: event:: format:: LogSource :: default ( ) ,
728
+ 3 ,
756
729
)
757
730
. unwrap ( ) ;
758
- assert_eq ! ( rb. num_rows( ) , 4 ) ;
759
- assert_eq ! ( rb. num_columns( ) , 5 ) ;
760
- assert_eq ! (
761
- rb. column_by_name( "a" ) . unwrap( ) . as_int64_arr( ) . unwrap( ) ,
762
- & Int64Array :: from( vec![ Some ( 1 ) , Some ( 1 ) , Some ( 1 ) , Some ( 1 ) ] )
763
- ) ;
764
- assert_eq ! (
765
- rb. column_by_name( "b" ) . unwrap( ) . as_utf8_arr( ) . unwrap( ) ,
766
- & StringArray :: from( vec![
767
- Some ( "hello" ) ,
768
- Some ( "hello" ) ,
769
- Some ( "hello" ) ,
770
- Some ( "hello" )
771
- ] )
772
- ) ;
773
-
774
- assert_eq ! (
775
- rb. column_by_name( "c_a" )
776
- . unwrap( )
777
- . as_any( )
778
- . downcast_ref:: <ListArray >( )
779
- . unwrap( ) ,
780
- & ListArray :: from_iter_primitive:: <Int64Type , _, _>( vec![
781
- None ,
782
- None ,
783
- Some ( vec![ Some ( 1i64 ) ] ) ,
784
- Some ( vec![ Some ( 1 ) ] )
785
- ] )
786
- ) ;
787
-
788
- assert_eq ! (
789
- rb. column_by_name( "c_b" )
790
- . unwrap( )
791
- . as_any( )
792
- . downcast_ref:: <ListArray >( )
793
- . unwrap( ) ,
794
- & ListArray :: from_iter_primitive:: <Int64Type , _, _>( vec![
795
- None ,
796
- None ,
797
- None ,
798
- Some ( vec![ Some ( 2i64 ) ] )
799
- ] )
800
- ) ;
731
+ for value in data {
732
+ let ( rb, _) =
733
+ into_event_batch ( value, HashMap :: default ( ) , false , None , SchemaVersion :: V0 )
734
+ . unwrap ( ) ;
735
+ assert_eq ! ( rb. num_rows( ) , 4 ) ;
736
+ assert_eq ! ( rb. num_columns( ) , 5 ) ;
737
+ assert_eq ! (
738
+ rb. column_by_name( "a" ) . unwrap( ) . as_int64_arr( ) . unwrap( ) ,
739
+ & Int64Array :: from( vec![ Some ( 1 ) , Some ( 1 ) , Some ( 1 ) , Some ( 1 ) ] )
740
+ ) ;
741
+ assert_eq ! (
742
+ rb. column_by_name( "b" ) . unwrap( ) . as_utf8_arr( ) . unwrap( ) ,
743
+ & StringArray :: from( vec![
744
+ Some ( "hello" ) ,
745
+ Some ( "hello" ) ,
746
+ Some ( "hello" ) ,
747
+ Some ( "hello" )
748
+ ] )
749
+ ) ;
750
+
751
+ assert_eq ! (
752
+ rb. column_by_name( "c_a" )
753
+ . unwrap( )
754
+ . as_any( )
755
+ . downcast_ref:: <ListArray >( )
756
+ . unwrap( ) ,
757
+ & ListArray :: from_iter_primitive:: <Int64Type , _, _>( vec![
758
+ None ,
759
+ None ,
760
+ Some ( vec![ Some ( 1i64 ) ] ) ,
761
+ Some ( vec![ Some ( 1 ) ] )
762
+ ] )
763
+ ) ;
764
+
765
+ assert_eq ! (
766
+ rb. column_by_name( "c_b" )
767
+ . unwrap( )
768
+ . as_any( )
769
+ . downcast_ref:: <ListArray >( )
770
+ . unwrap( ) ,
771
+ & ListArray :: from_iter_primitive:: <Int64Type , _, _>( vec![
772
+ None ,
773
+ None ,
774
+ None ,
775
+ Some ( vec![ Some ( 2i64 ) ] )
776
+ ] )
777
+ ) ;
778
+ }
801
779
}
802
780
803
781
#[ test]
@@ -822,52 +800,52 @@ mod tests {
822
800
"c" : [ { "a" : 1 , "b" : 2 } ]
823
801
} ,
824
802
] ) ;
825
- let flattened_json = convert_to_array (
826
- convert_array_to_object (
827
- json,
828
- None ,
829
- None ,
830
- None ,
831
- SchemaVersion :: V1 ,
832
- & crate :: event:: format:: LogSource :: default ( ) ,
833
- )
834
- . unwrap ( ) ,
803
+ let flattened_json = flatten_json_body (
804
+ json,
805
+ None ,
806
+ None ,
807
+ None ,
808
+ SchemaVersion :: V1 ,
809
+ & crate :: event:: format:: LogSource :: default ( ) ,
810
+ 3 ,
835
811
)
836
812
. unwrap ( ) ;
813
+ let arr_flattened_json = Value :: Array ( flattened_json) ;
837
814
838
815
let ( rb, _) = into_event_batch (
839
- flattened_json ,
816
+ arr_flattened_json ,
840
817
HashMap :: default ( ) ,
841
818
false ,
842
819
None ,
843
820
SchemaVersion :: V1 ,
844
821
)
845
822
. unwrap ( ) ;
846
823
847
- assert_eq ! ( rb. num_rows( ) , 4 ) ;
824
+ assert_eq ! ( rb. num_rows( ) , 5 ) ;
848
825
assert_eq ! ( rb. num_columns( ) , 5 ) ;
849
826
assert_eq ! (
850
827
rb. column_by_name( "a" ) . unwrap( ) . as_float64_arr( ) . unwrap( ) ,
851
- & Float64Array :: from( vec![ Some ( 1.0 ) , Some ( 1.0 ) , Some ( 1.0 ) , Some ( 1.0 ) ] )
828
+ & Float64Array :: from( vec![ Some ( 1.0 ) , Some ( 1.0 ) , Some ( 1.0 ) , Some ( 1.0 ) , Some ( 1.0 ) ] )
852
829
) ;
853
830
assert_eq ! (
854
831
rb. column_by_name( "b" ) . unwrap( ) . as_utf8_arr( ) . unwrap( ) ,
855
832
& StringArray :: from( vec![
856
833
Some ( "hello" ) ,
857
834
Some ( "hello" ) ,
858
835
Some ( "hello" ) ,
836
+ Some ( "hello" ) ,
859
837
Some ( "hello" )
860
838
] )
861
839
) ;
862
840
863
841
assert_eq ! (
864
842
rb. column_by_name( "c_a" ) . unwrap( ) . as_float64_arr( ) . unwrap( ) ,
865
- & Float64Array :: from( vec![ None , None , Some ( 1.0 ) , Some ( 1.0 ) ] )
843
+ & Float64Array :: from( vec![ None , None , Some ( 1.0 ) , Some ( 1.0 ) , None ] )
866
844
) ;
867
845
868
846
assert_eq ! (
869
847
rb. column_by_name( "c_b" ) . unwrap( ) . as_float64_arr( ) . unwrap( ) ,
870
- & Float64Array :: from( vec![ None , None , None , Some ( 2.0 ) ] )
848
+ & Float64Array :: from( vec![ None , None , None , None , Some ( 2.0 ) ] )
871
849
) ;
872
850
}
873
851
}
0 commit comments