More on the topic…
Apache Iceberg Python hit 0.12.0 after pulling in 470 pull requests from 58 contributors between February and August 2026. The release adds REST catalog support for views—you can now create, load, list, and drop Iceberg views through the REST API using a clean View object interface. Beyond views, the update brings incremental append scans for reading only the rows added within a snapshot range, support for geometry and geography types (v3 primitives with Avro and Parquet integration), and a new File Format Writer API for handling Parquet files. The team also shipped pagination support for listing views, namespaces, and tables, plus REST credential loading with longest-prefix resolution.
On the reliability front, writes now retry automatically when concurrent commits collide—the Transaction.commit_transaction() method refreshes the table, checks for conflicts, and tries again if a CommitFailedException occurs. The bug fix list is substantial: correctness issues around NotEqualTo/NotIn pruning with nulls and NaNs, NOT STARTS WITH projection for truncated partitions, manifest entry snapshot_id setters writing to the wrong index, decimal precision loss in string conversions, and nanosecond timestamp parsing all got patched. The team also fixed deletion vector blob framing, deepcopy for boolean expressions, and several edge cases in partitioned table deletes and fsspec zero-byte file handling.
Breaking changes include bumping PyArrow from 17.0.0 to 18.0.0 for native UUID support and updating pyiceberg-core requirements to >=0.10.1,<0.11.0. NoopCatalog.table_exists() now returns False instead of raising an exception, and explicitly deleting a missing data file now raises rather than silently failing. The infrastructure side got serious: Python 3.14 support landed, Windows unit tests joined CI, CodeQL security scanning activated, and the project moved to uv-pre-commit lockfile management with freshness checks enforced in CI.
Questions about this article
No questions yet.