You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Lift the metrics-mode counts/none eligibility restriction for native Iceberg writes #5642
Native Iceberg writes fall back when write.metadata.metrics.default or a per-column write.metadata.metrics.column.* is counts or none (CometIcebergNativeWrite trigger rules, pinned by CometIcebergWriteDetectionSuite). The restriction was introduced in #5298 because iceberg-rust could not produce those metrics modes, and iceberg-writes.md says it "remains only until that assembly lands".
#5361 moved manifest metrics assembly to the JVM: DataFile metrics are rebuilt at commit time from the written file's footer using Iceberg's own MetricsConfig / ParquetUtil code, with NaN counts supplied by the native writer. The parity tests in CometIcebergWriteActionSuite already cover mode none with a per-column full override and mode counts with WRITE ORDERED BY. That is the machinery the restriction was waiting for, so the restriction may now be liftable with no change to the writer.
Describe the potential solution
Confirm what the JVM rebuild produces for counts (counts only, no bounds) and none (no metrics) against iceberg-java output for the same data, including the sorted-column promotion that MetricsConfig applies under counts.
If identical, delete the counts / none trigger rules, update the allowlist table in iceberg-writes.md, and turn the existing detection-suite fall-back tests into parity tests.
If not identical, document the specific divergence and keep the rule.
Additional context
Part of the native Iceberg writes epic, #5649. Related: #5298 (detection), #5361 (native writer and JVM metrics assembly).
Filed on stale information: main already accepts every write.metadata.metrics.* value (CometIcebergNativeWrite has no metrics-mode gate since #5361, and CometIcebergWriteDetectionSuite pins "Compatible for every write.metadata.metrics mode"). Nothing to lift.
Activity
andygrove commentedon Sep 2, 2026
Filed on stale information:
mainalready accepts everywrite.metadata.metrics.*value (CometIcebergNativeWritehas no metrics-mode gate since #5361, andCometIcebergWriteDetectionSuitepins "Compatible for every write.metadata.metrics mode"). Nothing to lift.