Skip to content

Commit b0ab723

Browse files
committed
Core: Preserve empty bounds in inspect.manifests
1 parent c789a01 commit b0ab723

2 files changed

Lines changed: 15 additions & 2 deletions

File tree

‎pyiceberg/table/inspect.py‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -423,7 +423,7 @@ def _partition_summaries_to_rows(
423423
partition_field_type, from_bytes(partition_field_type, field_summary.lower_bound)
424424
)
425425
)
426-
if field_summary.lower_bound
426+
if field_summary.lower_bound is not None
427427
else None
428428
)
429429
upper_bound = (
@@ -432,7 +432,7 @@ def _partition_summaries_to_rows(
432432
partition_field_type, from_bytes(partition_field_type, field_summary.upper_bound)
433433
)
434434
)
435-
if field_summary.upper_bound
435+
if field_summary.upper_bound is not None
436436
else None
437437
)
438438
rows.append(

‎tests/table/test_inspect.py‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,10 @@
2121
import pytest
2222

2323
from pyiceberg.conversions import to_bytes
24+
from pyiceberg.partitioning import PartitionField, PartitionSpec
2425
from pyiceberg.schema import Schema
2526
from pyiceberg.table.inspect import _readable_bound
27+
from pyiceberg.transforms import IdentityTransform
2628
from pyiceberg.types import NestedField, StringType
2729
from tests.catalog.test_base import InMemoryCatalog
2830

@@ -68,3 +70,14 @@ def test_inspect_entries_and_files_render_null_bound(catalog: InMemoryCatalog) -
6870
files_metrics = tbl.inspect.files().to_pydict()["readable_metrics"][0]["s"]
6971
assert files_metrics["lower_bound"] is None
7072
assert files_metrics["upper_bound"] is None
73+
74+
75+
def test_inspect_manifests_preserves_empty_string_bounds(catalog: InMemoryCatalog) -> None:
76+
schema = Schema(NestedField(1, "s", StringType()))
77+
spec = PartitionSpec(PartitionField(1, 1000, IdentityTransform(), "s"))
78+
tbl = catalog.create_table("default.empty_string_partition", schema, partition_spec=spec)
79+
tbl.append(pa.table({"s": [""]}, schema=pa.schema([pa.field("s", pa.large_string())])))
80+
81+
partition_summary = tbl.inspect.manifests().to_pydict()["partition_summaries"][0][0]
82+
assert partition_summary["lower_bound"] == ""
83+
assert partition_summary["upper_bound"] == ""

0 commit comments

Comments
 (0)