fallintoplace opened a new pull request, #3708:
URL: https://github.com/apache/iceberg-python/pull/3708

   # Rationale for this change
   
   Manifest partition summaries encode string bounds as bytes. An empty string 
is represented by `b""`, but `InspectTable.manifests()` checked the encoded 
bounds by truthiness. As a result, valid empty-string lower and upper bounds 
were returned as null.
   
   This change checks whether each bound is absent instead, preserving empty 
values while continuing to return null for missing bounds. This matches Apache 
Iceberg Java's manifests metadata table.
   
   ## Are these changes tested?
   
   Yes. A regression test writes a table partitioned by an identity-transformed 
string containing an empty value and verifies that both manifest partition 
bounds remain empty strings.
   
   The following checks pass locally:
   
   - `PYTHONPATH=. uv run pytest tests/table/test_inspect.py -q` (5 passed)
   - `PYTHONPATH=. uv run --extra datafusion --extra pyiceberg-core pytest -p 
no:cacheprovider tests/table -q` (328 passed)
   - `make lint`
   
   ## Are there any user-facing changes?
   
   Yes. `table.inspect.manifests()` now reports empty-string partition bounds 
as empty strings instead of null. There are no API changes.
   


-- 
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