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]

Reply via email to