@@ -860,7 +860,9 @@ class _ColumnNameTranslator(BooleanExpressionVisitor[BooleanExpression]):
860860
861861 Args:
862862 file_schema (Schema): The schema of the file.
863+ projected_schema (Schema): The schema to project onto the data files.
863864 case_sensitive (bool): Whether to consider case when binding a reference to a field in a schema, defaults to True.
865+ projected_missing_fields(dict[str, Any]): Map of fields missing in file_schema, but present as partition values.
864866
865867 Raises:
866868 TypeError: In the case of an UnboundPredicate.
@@ -870,9 +872,13 @@ class _ColumnNameTranslator(BooleanExpressionVisitor[BooleanExpression]):
870872 file_schema : Schema
871873 case_sensitive : bool
872874
873- def __init__ (self , file_schema : Schema , case_sensitive : bool ) -> None :
875+ def __init__ (
876+ self , file_schema : Schema , projected_schema : Schema , case_sensitive : bool , projected_missing_fields : dict [str , Any ]
877+ ) -> None :
874878 self .file_schema = file_schema
879+ self .projected_schema = projected_schema
875880 self .case_sensitive = case_sensitive
881+ self .projected_missing_fields = projected_missing_fields
876882
877883 def visit_true (self ) -> BooleanExpression :
878884 return AlwaysTrue ()
@@ -913,8 +919,14 @@ def visit_bound_predicate(self, predicate: BoundPredicate[L]) -> BooleanExpressi
913919 raise ValueError (f"Unsupported predicate: { predicate } " )
914920
915921
916- def translate_column_names (expr : BooleanExpression , file_schema : Schema , case_sensitive : bool ) -> BooleanExpression :
917- return visit (expr , _ColumnNameTranslator (file_schema , case_sensitive ))
922+ def translate_column_names (
923+ expr : BooleanExpression ,
924+ file_schema : Schema ,
925+ projected_schema : Schema ,
926+ case_sensitive : bool ,
927+ projected_missing_fields : dict [str , Any ],
928+ ) -> BooleanExpression :
929+ return visit (expr , _ColumnNameTranslator (file_schema , projected_schema , case_sensitive , projected_missing_fields ))
918930
919931
920932class _ExpressionFieldIDs (BooleanExpressionVisitor [Set [int ]]):
0 commit comments