sungwy opened a new pull request, #4083: URL: https://github.com/apache/iceberg-python/pull/4083
# Rationale for this change The spec's Column Projection rules say that when a field isn't present in a data file, we resolve its value in order: 1. the identity partition value from the manifest's partition struct, if present 2. the column found via schema.name-mapping.default 3. the field's initial-default 4. null Today _get_column_projection_values only records the identity partition value when it's non-null. So when a file's partition value is null, we skip rule 1 and fall through to rule 3, as if the partition metadata had nothing to say. This was harmless before v3 because initial-default was always null anyway, but with a non-null initial-default we now read the default instead of null. This came up while reviewing #4082 ## Are these changes tested? Yes ## Are there any user-facing changes? Only for v3 tables with a non-null initial-default on an identity-partitioned column on null partition. This is a bug fix that conforms to the spec: https://iceberg.apache.org/spec/#column-projection <!-- In the case of user-facing changes, please add the changelog label. --> -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
