@@ -7,6 +7,7 @@ use crate::catalog::{PyCatalog, PyTable};
77use crate :: dataframe:: PyDataFrame ;
88use crate :: dataset:: Dataset ;
99use crate :: errors:: DataFusionError ;
10+ use crate :: expr:: sort_expr:: PySortExpr ;
1011use crate :: functions:: greatest:: GreatestFunc ;
1112use crate :: functions:: least:: LeastFunc ;
1213use crate :: ibis_table:: IbisTable ;
@@ -209,7 +210,8 @@ impl PySessionContext {
209210 file_extension=".parquet" ,
210211 skip_metadata=true ,
211212 schema=None ,
212- storage_options=None
213+ storage_options=None ,
214+ file_sort_order=None ,
213215 ) ) ]
214216 fn register_parquet (
215217 & mut self ,
@@ -221,6 +223,7 @@ impl PySessionContext {
221223 skip_metadata : bool ,
222224 schema : Option < PyArrowType < Schema > > ,
223225 storage_options : Option < HashMap < String , String > > ,
226+ file_sort_order : Option < Vec < Vec < PySortExpr > > > ,
224227 py : Python ,
225228 ) -> PyResult < ( ) > {
226229 let mut options = ParquetReadOptions :: default ( )
@@ -229,6 +232,12 @@ impl PySessionContext {
229232 . skip_metadata ( skip_metadata) ;
230233 options. file_extension = file_extension;
231234 options. schema = schema. as_ref ( ) . map ( |x| & x. 0 ) ;
235+ options. file_sort_order = file_sort_order
236+ . unwrap_or_default ( )
237+ . into_iter ( )
238+ . map ( |e| e. into_iter ( ) . map ( |f| f. into ( ) ) . collect ( ) )
239+ . collect ( ) ;
240+
232241 let storage_options = storage_options. unwrap_or_default ( ) ;
233242
234243 let result = async {
0 commit comments