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
Decide keep-or-lift for each remaining native Iceberg write eligibility restriction #5643
The native Iceberg write eligibility gate (CometIcebergNativeWrite, documented in iceberg-writes.md) is an allowlist, and each restriction it enforces was added conservatively in #5298 so the writer could land incrementally. None of the restrictions has an issue saying whether it is permanent or what would lift it, so there is no way to tell how much of the fallback surface is intended.
Current restrictions, each of which makes a write fall back to iceberg-java:
format version 3 or newer (MinUnsupportedFormatVersion)
any encryption.* property
write.parquet.bloom-filter-max-bytes and per-column bloom filter enablement
For each restriction, record one of three decisions in this issue and in iceberg-writes.md:
Lift: the native path already reproduces iceberg-java's outcome, or can with a bounded change; file a follow-up and link it.
Keep, pending upstream: needs an iceberg-rust or parquet-rs feature; link the upstream issue.
Keep, permanent: intentionally out of scope (for example encryption); say why.
The ordering should follow how often the setting appears in real tables. Object-storage layout (write.object-storage.enabled) and bloom filters are the two most likely to be hit by production tables and should be decided first.
Additional context
Part of the native Iceberg writes epic, #5649. Related: #5298 (introduced the allowlist), #5361 (native writer).
Activity
NikitaMatskevich commentedon Sep 7, 2026
Hello everyone, I think we might lift this restriction:
I'd love to help with that. I believe we don't even need upstream changes. Here is the PR ready to be reviewed: #5724
zhangfengcdt commentedon Oct 2, 2026
The following is a new checklist introduced and addressed by #6138.
floatordoublecolumn, including a nested one. Pending FanoutWriter and ClusteredWriter merge -0.0 and 0.0 identity partitions of float and double columns iceberg-rust#3325 and its fix fix(spec): treat -0.0 and 0.0 as distinct float literals iceberg-rust#3327: the rulerequireNoFloatingPointPartitionFieldcan be removed once the iceberg-rust pin carries that fix. When it is removed, the twoassertNativeWriteDoesNotEngagecalls inCometIcebergWriteActionSuite("signed-zero float and double identity partitions match iceberg-java" and "float and double partition paths match iceberg-java") should go back toassertNativeWriteEngages.@andygrove Please feel free to add this to the restriction list above.