@@ -104,8 +104,7 @@ use crate::bloom_filter::{
104
104
} ;
105
105
use crate :: column:: page:: { PageIterator , PageReader } ;
106
106
use crate :: errors:: { ParquetError , Result } ;
107
- use crate :: file:: footer:: { decode_footer, decode_metadata} ;
108
- use crate :: file:: metadata:: { ParquetMetaData , RowGroupMetaData } ;
107
+ use crate :: file:: metadata:: { ParquetMetaData , ParquetMetaDataReader , RowGroupMetaData } ;
109
108
use crate :: file:: page_index:: offset_index:: OffsetIndexMetaData ;
110
109
use crate :: file:: reader:: { ChunkReader , Length , SerializedPageReader } ;
111
110
use crate :: file:: FOOTER_SIZE ;
@@ -186,14 +185,14 @@ impl<T: AsyncRead + AsyncSeek + Unpin + Send> AsyncFileReader for T {
186
185
let mut buf = [ 0_u8 ; FOOTER_SIZE ] ;
187
186
self . read_exact ( & mut buf) . await ?;
188
187
189
- let metadata_len = decode_footer ( & buf) ?;
188
+ let metadata_len = ParquetMetaDataReader :: decode_footer ( & buf) ?;
190
189
self . seek ( SeekFrom :: End ( -FOOTER_SIZE_I64 - metadata_len as i64 ) )
191
190
. await ?;
192
191
193
192
let mut buf = Vec :: with_capacity ( metadata_len) ;
194
193
self . take ( metadata_len as _ ) . read_to_end ( & mut buf) . await ?;
195
194
196
- Ok ( Arc :: new ( decode_metadata ( & buf) ?) )
195
+ Ok ( Arc :: new ( ParquetMetaDataReader :: decode_metadata ( & buf) ?) )
197
196
}
198
197
. boxed ( )
199
198
}
@@ -909,7 +908,7 @@ mod tests {
909
908
} ;
910
909
use crate :: arrow:: schema:: parquet_to_arrow_schema_and_fields;
911
910
use crate :: arrow:: ArrowWriter ;
912
- use crate :: file:: footer :: parse_metadata ;
911
+ use crate :: file:: metadata :: ParquetMetaDataReader ;
913
912
use crate :: file:: page_index:: index_reader;
914
913
use crate :: file:: properties:: WriterProperties ;
915
914
use arrow:: compute:: kernels:: cmp:: eq;
@@ -952,7 +951,9 @@ mod tests {
952
951
let path = format ! ( "{testdata}/alltypes_plain.parquet" ) ;
953
952
let data = Bytes :: from ( std:: fs:: read ( path) . unwrap ( ) ) ;
954
953
955
- let metadata = parse_metadata ( & data) . unwrap ( ) ;
954
+ let metadata = ParquetMetaDataReader :: new ( )
955
+ . parse_and_finish ( & data)
956
+ . unwrap ( ) ;
956
957
let metadata = Arc :: new ( metadata) ;
957
958
958
959
assert_eq ! ( metadata. num_row_groups( ) , 1 ) ;
@@ -1007,7 +1008,9 @@ mod tests {
1007
1008
let path = format ! ( "{testdata}/alltypes_tiny_pages_plain.parquet" ) ;
1008
1009
let data = Bytes :: from ( std:: fs:: read ( path) . unwrap ( ) ) ;
1009
1010
1010
- let metadata = parse_metadata ( & data) . unwrap ( ) ;
1011
+ let metadata = ParquetMetaDataReader :: new ( )
1012
+ . parse_and_finish ( & data)
1013
+ . unwrap ( ) ;
1011
1014
let metadata = Arc :: new ( metadata) ;
1012
1015
1013
1016
assert_eq ! ( metadata. num_row_groups( ) , 1 ) ;
@@ -1073,7 +1076,9 @@ mod tests {
1073
1076
let path = format ! ( "{testdata}/alltypes_tiny_pages_plain.parquet" ) ;
1074
1077
let data = Bytes :: from ( std:: fs:: read ( path) . unwrap ( ) ) ;
1075
1078
1076
- let metadata = parse_metadata ( & data) . unwrap ( ) ;
1079
+ let metadata = ParquetMetaDataReader :: new ( )
1080
+ . parse_and_finish ( & data)
1081
+ . unwrap ( ) ;
1077
1082
let metadata = Arc :: new ( metadata) ;
1078
1083
1079
1084
assert_eq ! ( metadata. num_row_groups( ) , 1 ) ;
@@ -1117,7 +1122,9 @@ mod tests {
1117
1122
let path = format ! ( "{testdata}/alltypes_tiny_pages_plain.parquet" ) ;
1118
1123
let data = Bytes :: from ( std:: fs:: read ( path) . unwrap ( ) ) ;
1119
1124
1120
- let metadata = parse_metadata ( & data) . unwrap ( ) ;
1125
+ let metadata = ParquetMetaDataReader :: new ( )
1126
+ . parse_and_finish ( & data)
1127
+ . unwrap ( ) ;
1121
1128
let metadata = Arc :: new ( metadata) ;
1122
1129
1123
1130
assert_eq ! ( metadata. num_row_groups( ) , 1 ) ;
@@ -1173,7 +1180,9 @@ mod tests {
1173
1180
let path = format ! ( "{testdata}/alltypes_tiny_pages_plain.parquet" ) ;
1174
1181
let data = Bytes :: from ( std:: fs:: read ( path) . unwrap ( ) ) ;
1175
1182
1176
- let metadata = parse_metadata ( & data) . unwrap ( ) ;
1183
+ let metadata = ParquetMetaDataReader :: new ( )
1184
+ . parse_and_finish ( & data)
1185
+ . unwrap ( ) ;
1177
1186
let metadata = Arc :: new ( metadata) ;
1178
1187
1179
1188
assert_eq ! ( metadata. num_row_groups( ) , 1 ) ;
@@ -1238,7 +1247,9 @@ mod tests {
1238
1247
let path = format ! ( "{testdata}/alltypes_tiny_pages_plain.parquet" ) ;
1239
1248
let data = Bytes :: from ( std:: fs:: read ( path) . unwrap ( ) ) ;
1240
1249
1241
- let metadata = parse_metadata ( & data) . unwrap ( ) ;
1250
+ let metadata = ParquetMetaDataReader :: new ( )
1251
+ . parse_and_finish ( & data)
1252
+ . unwrap ( ) ;
1242
1253
let metadata = Arc :: new ( metadata) ;
1243
1254
1244
1255
assert_eq ! ( metadata. num_row_groups( ) , 1 ) ;
@@ -1317,7 +1328,9 @@ mod tests {
1317
1328
writer. close ( ) . unwrap ( ) ;
1318
1329
1319
1330
let data: Bytes = buf. into ( ) ;
1320
- let metadata = parse_metadata ( & data) . unwrap ( ) ;
1331
+ let metadata = ParquetMetaDataReader :: new ( )
1332
+ . parse_and_finish ( & data)
1333
+ . unwrap ( ) ;
1321
1334
let parquet_schema = metadata. file_metadata ( ) . schema_descr_ptr ( ) ;
1322
1335
1323
1336
let test = TestReader {
@@ -1391,7 +1404,9 @@ mod tests {
1391
1404
writer. close ( ) . unwrap ( ) ;
1392
1405
1393
1406
let data: Bytes = buf. into ( ) ;
1394
- let metadata = parse_metadata ( & data) . unwrap ( ) ;
1407
+ let metadata = ParquetMetaDataReader :: new ( )
1408
+ . parse_and_finish ( & data)
1409
+ . unwrap ( ) ;
1395
1410
1396
1411
assert_eq ! ( metadata. num_row_groups( ) , 2 ) ;
1397
1412
@@ -1479,7 +1494,9 @@ mod tests {
1479
1494
let path = format ! ( "{testdata}/alltypes_tiny_pages_plain.parquet" ) ;
1480
1495
let data = Bytes :: from ( std:: fs:: read ( path) . unwrap ( ) ) ;
1481
1496
1482
- let metadata = parse_metadata ( & data) . unwrap ( ) ;
1497
+ let metadata = ParquetMetaDataReader :: new ( )
1498
+ . parse_and_finish ( & data)
1499
+ . unwrap ( ) ;
1483
1500
let parquet_schema = metadata. file_metadata ( ) . schema_descr_ptr ( ) ;
1484
1501
let metadata = Arc :: new ( metadata) ;
1485
1502
@@ -1529,7 +1546,9 @@ mod tests {
1529
1546
let path = format ! ( "{testdata}/alltypes_tiny_pages.parquet" ) ;
1530
1547
let data = Bytes :: from ( std:: fs:: read ( path) . unwrap ( ) ) ;
1531
1548
1532
- let metadata = parse_metadata ( & data) . unwrap ( ) ;
1549
+ let metadata = ParquetMetaDataReader :: new ( )
1550
+ . parse_and_finish ( & data)
1551
+ . unwrap ( ) ;
1533
1552
1534
1553
let offset_index =
1535
1554
index_reader:: read_offset_indexes ( & data, metadata. row_group ( 0 ) . columns ( ) )
@@ -1619,7 +1638,9 @@ mod tests {
1619
1638
let path = format ! ( "{testdata}/alltypes_plain.parquet" ) ;
1620
1639
let data = Bytes :: from ( std:: fs:: read ( path) . unwrap ( ) ) ;
1621
1640
1622
- let metadata = parse_metadata ( & data) . unwrap ( ) ;
1641
+ let metadata = ParquetMetaDataReader :: new ( )
1642
+ . parse_and_finish ( & data)
1643
+ . unwrap ( ) ;
1623
1644
let file_rows = metadata. file_metadata ( ) . num_rows ( ) as usize ;
1624
1645
let metadata = Arc :: new ( metadata) ;
1625
1646
@@ -1764,7 +1785,9 @@ mod tests {
1764
1785
let testdata = arrow:: util:: test_util:: parquet_test_data ( ) ;
1765
1786
let path = format ! ( "{testdata}/data_index_bloom_encoding_stats.parquet" ) ;
1766
1787
let data = Bytes :: from ( std:: fs:: read ( path) . unwrap ( ) ) ;
1767
- let metadata = parse_metadata ( & data) . unwrap ( ) ;
1788
+ let metadata = ParquetMetaDataReader :: new ( )
1789
+ . parse_and_finish ( & data)
1790
+ . unwrap ( ) ;
1768
1791
let metadata = Arc :: new ( metadata) ;
1769
1792
let async_reader = TestReader {
1770
1793
data : data. clone ( ) ,
@@ -1793,7 +1816,9 @@ mod tests {
1793
1816
}
1794
1817
1795
1818
async fn test_get_row_group_column_bloom_filter ( data : Bytes , with_length : bool ) {
1796
- let metadata = parse_metadata ( & data) . unwrap ( ) ;
1819
+ let metadata = ParquetMetaDataReader :: new ( )
1820
+ . parse_and_finish ( & data)
1821
+ . unwrap ( ) ;
1797
1822
let metadata = Arc :: new ( metadata) ;
1798
1823
1799
1824
assert_eq ! ( metadata. num_row_groups( ) , 1 ) ;
@@ -1933,7 +1958,9 @@ mod tests {
1933
1958
writer. close ( ) . unwrap ( ) ;
1934
1959
1935
1960
let data: Bytes = buf. into ( ) ;
1936
- let metadata = parse_metadata ( & data) . unwrap ( ) ;
1961
+ let metadata = ParquetMetaDataReader :: new ( )
1962
+ . parse_and_finish ( & data)
1963
+ . unwrap ( ) ;
1937
1964
let parquet_schema = metadata. file_metadata ( ) . schema_descr_ptr ( ) ;
1938
1965
1939
1966
let test = TestReader {
0 commit comments