DataFusion never reads a Parquet file row group by row group and hopes for the best: it builds an access plan, proves which row groups cannot match using footer statistics, the …
DataFusion’s push decoder interleaves byte-range fetches with decoding and re-checks a dynamic filter at every row-group boundary, so a filter that tightens mid-scan still prunes …
The filter is not a special case in the Parquet reader. Polars compiles the same expression tree a second time into a predicate over a synthetic frame of col_min / col_max / col_nc …
DataFusion pushes row filters into the Parquet decoder itself: the filter’s columns are decoded first, the surviving rows are known before the wide columns are touched, and …