pypi / pyiceberg
pyiceberg
What changed in pyiceberg 0.11 to 0.12, from its official release notes, upgrade guides and advisories. Sources checked 2026-11-12.
6 breaking1 deprecations48 new APIs and options6 behavior and defaults20 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli initpyiceberg 0.1238 changes
Breaking changes 5
Rejects empty source-ids in PartitionField.
PyArrow 18.0.0 or newer is required for native UUID type support.
Adds --warehouse to the REST catalog CLI in place of --prefix.
Renames REST rest-scan-planning-enabled to scan-planning-mode.
Rejects empty source-ids in SortField.
Deprecations 1
The version command is deprecated in favor of the --version flag.
New APIs and options 25
The REST catalog can create views.
Adds dictionary_columns to to_arrow() and to_arrow_batch_reader() for memory-efficient reads.
Adds a --purge option to the drop table CLI.
drop_view accepts an Identifier type.
Adds S3 server-side encryption configuration support for FsspecFileIO.
Adds the Geography type.
Adds the Geometry type.
Adds support for incremental append scans.
REST list_namespaces supports pagination and page-size.
REST list_tables supports pagination and page-size.
REST list_views supports pagination and page-size.
Adds REST catalog support for loading views.
Makes manifest cache size configurable.
OutputStream writers now provide tell().
Puffin supports zstd blob decompression.
Supports pyarrow float16 by widening to float on read and write.
Adds support for an overwrite option in register_table.
Adds support for registering views.
REST catalog LoadTableResult supports storage-credentials.
Adds REST loadCredentials support.
Adds defaults for REST SigV4 retry configuration.
Table.append supports pa.RecordBatchReader input.
Table.overwrite supports pa.RecordBatchReader input.
The too many requests exception is now surfaced to callers.
Adds a View object API.
Behavior and default changes 1
Adds commit retry and concurrency validation for writes.
Fixes and other changes 6
The CLI preserves empty property values.
Extracts the ADLS account_name from the URI hostname.
NoopCatalog returns False instead of throwing an error.
Preserves dictionary encoding in to_arrow_batch_reader.
View.sql_for is case-insensitive and returns None for unknown dialects.
View.version returns None for an unknown id.
pyiceberg 0.1143 changes
Breaking changes 1
Python 3.9 is no longer supported.
New APIs and options 23
Adds a field alias for partition statistics updates.
Supports adding files to branches.
Makes AND expressions JSON serializable.
Adds an anon property to fsspec ADLS FileIO configuration to ease use of the DefaultCredential pipeline.
Adds AWS profile support to Glue and fsspec S3 FileIO.
Adds a log level parameter to the CLI.
Allows servers to express which endpoints they support.
Adds an Entra ID authentication manager.
Adds conversion from JSON to expressions.
Adds the ability to set the current snapshot through the ManageSnapshots API.
Adds the namespace_exists method.
Makes OR expressions JSON serializable.
Adds comprehensive ORC read support.
Adds the RemovePartitionSpecsUpdate event.
Adds the RemoveSchemasUpdate event.
Makes the namespace separator configurable for REST catalogs.
Adds REST scan-planning support, including planning endpoints, configuration, and models.
Adds support for rolling back to a snapshot.
Adds support for rolling back to a timestamp.
Adds row lineage fields for format version 3.
Supports fsspec s3 addressing_style properties.
Adds a filter expression parameter to partition inspection.
Adds snapshot_properties support to the upsert operation.
Behavior and default changes 5
Removes the field ID constraint when adding files.
Supports arbitrary literal comparisons in the BETWEEN operator.
Makes LiteralPredicate serializable through IcebergBaseModel.
Makes SetPredicate and its subclasses JSON serializable with Pydantic.
Makes UnaryPredicate JSON serializable.
Fixes and other changes 14
Extracts the ADLS account name from the URI hostname.
PyIceberg now accepts all valid HTTP methods for IRC ConfigResponse.
Fixes SSL deactivation from catalog properties.
Blocks dropping a schema field when it is referenced by an active partition or sort field.
Prefix matching for ADLS_SAS_TOKEN is corrected, so the setting is matched properly.
Makes ExecutorFactory safe for use across multiple processes.
Fixes thread safety in FsspecFileIO.get_fs.
Makes Literal serializable by Pydantic.
Makes Not expressions JSON serializable.
Allows writing data when optional map fields are missing.
Fixes partition column projection when schemas have evolved.
Allows reading PyArrow timestamptz values as Iceberg timestamp.
Supports nested struct field filtering.
Makes Reference JSON serializable.