kevinjqliu commented on code in PR #1443: URL: https://github.com/apache/iceberg-python/pull/1443#discussion_r1906149085
########## pyiceberg/io/pyarrow.py: ########## @@ -1216,6 +1216,25 @@ def _field_id(self, field: pa.Field) -> int: return -1 +def _get_column_projection_values( + file: DataFile, + projected_schema: Schema, + projected_field_ids: Set[int], + file_project_schema: Schema, + partition_spec: Optional[PartitionSpec] = None, +) -> Dict[str, object]: + """Apply Column Projection rules to File Schema.""" + projected_missing_fields = {} + + for field_id in projected_field_ids.difference(file_project_schema.field_ids): + if partition_spec is not None: + for partition_field in partition_spec.fields_by_source_id(field_id): + if isinstance(partition_field.transform, IdentityTransform) and partition_field.name in file.partition.__dict__: + projected_missing_fields[partition_field.name] = file.partition.__dict__[partition_field.name] Review Comment: i think fokko might be ooo/on vacation, i'll defer to him when hes back But for context, here is how the partition records (`DataFile.partition`) is written https://github.com/apache/iceberg-python/blob/3b580111760f0749922ea593dbe0b1d602952438/pyiceberg/io/pyarrow.py#L2344 https://github.com/apache/iceberg-python/blob/3b580111760f0749922ea593dbe0b1d602952438/pyiceberg/partitioning.py#L389-L402 seems like partition records are written in the order of the partition spec fields -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org For additional commands, e-mail: issues-h...@iceberg.apache.org