@@ -755,7 +755,26 @@ pub fn test_row_group_statistics_plaintext_encrypted_write() {
755755 for batch in record_batches. clone ( ) {
756756 writer. write ( & batch) . unwrap ( ) ;
757757 }
758- let _file_metadata = writer. close ( ) . unwrap ( ) ;
758+ let metadata = writer. close ( ) . unwrap ( ) ;
759+
760+ // Check column statistics that are produced on write are complete
761+ assert_eq ! ( metadata. num_row_groups( ) , 1 ) ;
762+ let row_group = & metadata. row_group ( 0 ) ;
763+ assert_eq ! ( row_group. columns( ) . len( ) , 2 ) ;
764+
765+ for column in row_group. columns ( ) {
766+ assert ! ( column. page_encoding_stats( ) . is_some( ) ) ;
767+ assert ! ( column. statistics( ) . is_some( ) ) ;
768+ let column_stats = column. statistics ( ) . unwrap ( ) ;
769+ assert_eq ! (
770+ column_stats. min_bytes_opt( ) ,
771+ Some ( 3i32 . to_le_bytes( ) . as_slice( ) )
772+ ) ;
773+ assert_eq ! (
774+ column_stats. max_bytes_opt( ) ,
775+ Some ( 19i32 . to_le_bytes( ) . as_slice( ) )
776+ ) ;
777+ }
759778
760779 // Check column statistics are read given plaintext footer and available decryption properties
761780 let options =
@@ -765,13 +784,12 @@ pub fn test_row_group_statistics_plaintext_encrypted_write() {
765784
766785 assert_eq ! ( metadata. num_row_groups( ) , 1 ) ;
767786
768- let row_group = & metadata. row_groups ( ) [ 0 ] ;
787+ let row_group = & metadata. row_group ( 0 ) ;
769788 assert_eq ! ( row_group. columns( ) . len( ) , 2 ) ;
770789
771790 // Statistics should be available from decrypted data
772- assert ! ( & row_group. column( 0 ) . statistics( ) . is_some( ) ) ;
773- assert ! ( & row_group. column( 1 ) . statistics( ) . is_some( ) ) ;
774791 for column in row_group. columns ( ) {
792+ assert ! ( column. page_encoding_stats( ) . is_some( ) ) ;
775793 assert ! ( column. statistics( ) . is_some( ) ) ;
776794 let column_stats = column. statistics ( ) . unwrap ( ) ;
777795 assert_eq ! (
@@ -791,12 +809,14 @@ pub fn test_row_group_statistics_plaintext_encrypted_write() {
791809
792810 assert_eq ! ( metadata. num_row_groups( ) , 1 ) ;
793811
794- let row_group = & metadata. row_groups ( ) [ 0 ] ;
812+ let row_group = & metadata. row_group ( 0 ) ;
795813 assert_eq ! ( row_group. columns( ) . len( ) , 2 ) ;
796814 assert ! ( & row_group. column( 0 ) . statistics( ) . is_none( ) ) ;
797815 assert ! ( & row_group. column( 1 ) . statistics( ) . is_some( ) ) ;
816+ assert ! ( & row_group. column( 0 ) . page_encoding_stats( ) . is_none( ) ) ;
817+ assert ! ( & row_group. column( 1 ) . page_encoding_stats( ) . is_some( ) ) ;
798818
799- let column_stats = & row_group. columns ( ) [ 1 ] . statistics ( ) . unwrap ( ) ;
819+ let column_stats = & row_group. column ( 1 ) . statistics ( ) . unwrap ( ) ;
800820 assert_eq ! (
801821 column_stats. min_bytes_opt( ) ,
802822 Some ( 3i32 . to_le_bytes( ) . as_slice( ) )
0 commit comments