All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
API Changes:
remove_all in FileIO by @jonathanc-n in https://github.com/apache/iceberg-rust/pull/1863Compatibility:
Dependency Updates:
Other:
IcebergCommitExec to correctly populate properties/schema by @sgrebnov in https://github.com/apache/iceberg-rust/pull/1721table_properties.rs to spec by @kaushiksrini in https://github.com/apache/iceberg-rust/pull/1733INSERT INTO partitioned tables by @CTTY in https://github.com/apache/iceberg-rust/pull/1827remove_all in FileIO by @jonathanc-n in https://github.com/apache/iceberg-rust/pull/1863get_arrow_datum for equality deletes with binary type by @mbutrovich in https://github.com/apache/iceberg-rust/pull/1848SnapshotProduceOperation by @jonathanc-n in https://github.com/apache/iceberg-rust/pull/1874del_branch_on_merge in .asf.yaml by @kevinjqliu in https://github.com/apache/iceberg-rust/pull/1888sort_by_partition to sort the input partitioned data by @CTTY in https://github.com/apache/iceberg-rust/pull/1618iceberg Implementations by @Xuanwo in https://github.com/apache/iceberg-rust/pull/1854_file column by @gbrgr in https://github.com/apache/iceberg-rust/pull/1824rest types public, add documentation by @c-thiel in https://github.com/apache/iceberg-rust/pull/1901split_offsets as null when empty by @AndreaBozzo in https://github.com/apache/iceberg-rust/pull/1906float and double by @Standing-Man in https://github.com/apache/iceberg-rust/pull/1959toml-cli to manually set version in github action by @kevinjqliu in https://github.com/apache/iceberg-rust/pull/1537read_from() and write_to() to TableMetadata by @CTTY in https://github.com/apache/iceberg-rust/pull/1523uv instructions to bindings/python/README.md by @Fokko in https://github.com/apache/iceberg-rust/pull/1514update_table for MemoryCatalog by @CTTY in https://github.com/apache/iceberg-rust/pull/1549RollingFileWriter to help split data into multiple files by @CTTY in https://github.com/apache/iceberg-rust/pull/1547insert_into for IcebergTableProvider by @CTTY in https://github.com/apache/iceberg-rust/pull/16001.85 to 1.87 by @kevinjqliu in https://github.com/apache/iceberg-rust/pull/1655-Z direct-minimal-versions for MSRV check by @kevinjqliu in https://github.com/apache/iceberg-rust/pull/1656API Changes:
FieldSummary {upper,lower}_bound field types to ByteBuf (#1369)Transaction own base_table instead of borrowing (#1421)current_table, updates, and requirements fields from Transaction (#1451)data_file_content field from FileScanTask (#1485)Module Reorganization:
iceberg-cli crate to iceberg-playground (#1427)FieldSummary {upper,lower}_bound to ByteBuf by @Fokko in https://github.com/apache/iceberg-rust/pull/13690.5.1 artifacts by @kevinjqliu in https://github.com/apache/iceberg-rust/pull/1410key-metadata optional by @Fokko in https://github.com/apache/iceberg-rust/pull/1434last_column_id and last_partition_id by @c-thiel in https://github.com/apache/iceberg-rust/pull/1438Transaction example by @jdockerty in https://github.com/apache/iceberg-rust/pull/1436ignore attribute in doc. by @liurenjie1024 in https://github.com/apache/iceberg-rust/pull/1504zlib and unicode licenses to allow by @Fokko in https://github.com/apache/iceberg-rust/pull/566client.region by @jdockerty in https://github.com/apache/iceberg-rust/pull/623iceberg_catalog_rest added to the docs by @nishant-sachdeva in https://github.com/apache/iceberg-rust/pull/355is_exist => exists by @sdd in https://github.com/apache/iceberg-rust/pull/680pyiceberg_core dist to Pypi by @sungwy in https://github.com/apache/iceberg-rust/pull/705last-field-id as deprecated by @Fokko in https://github.com/apache/iceberg-rust/pull/715fallback attribute to all strip_options. by @ryzhyk in https://github.com/apache/iceberg-rust/pull/708archive seems unstable by @Fokko in https://github.com/apache/iceberg-rust/pull/773BoundPartitionSpec by @c-thiel in https://github.com/apache/iceberg-rust/pull/771DataFileWriter tests for schema and partition by @jonathanc-n in https://github.com/apache/iceberg-rust/pull/768pyiceberg_core to 0.4.0 by @sungwy in https://github.com/apache/iceberg-rust/pull/808verify.py script by @sungwy in https://github.com/apache/iceberg-rust/pull/817AboveMax and BelowMin by @Fokko in https://github.com/apache/iceberg-rust/pull/820assert!(<actual> == <real>) by assert_eq!(<actual>, <real>) in some tests by @hussein-awala in https://github.com/apache/iceberg-rust/pull/910cargo build by @VVKot in https://github.com/apache/iceberg-rust/pull/952iceberg-catalog-rest and allow StatusCode::OK in responses by @connortsui20 in https://github.com/apache/iceberg-rust/pull/962last_updated_ms not increased for all operations by @c-thiel in https://github.com/apache/iceberg-rust/pull/978pyiceberg_core by @kevinjqliu in https://github.com/apache/iceberg-rust/pull/948pyiceberg_core by @kevinjqliu in https://github.com/apache/iceberg-rust/pull/983StrictMetricsEvaluator by @jonathanc-n in https://github.com/apache/iceberg-rust/pull/963arrow_struct_to_iceberg_struct by @ZENOTME in https://github.com/apache/iceberg-rust/pull/731Catalog implementation by @connortsui20 in https://github.com/apache/iceberg-rust/pull/965FileMetaData to ParquetMetadata by @jonathanc-n in https://github.com/apache/iceberg-rust/pull/1074PopulatedDeleteFileIndex by @jonathanc-n in https://github.com/apache/iceberg-rust/pull/1084next-page-token in REST Catalog by @phillipleblanc in https://github.com/apache/iceberg-rust/pull/1097DeleteFileManager skeleton. Use in ArrowReader by @sdd in https://github.com/apache/iceberg-rust/pull/950calc_row_counts by @jonathanc-n in https://github.com/apache/iceberg-rust/pull/1107manifest module into multiple modules by @jonathanc-n in https://github.com/apache/iceberg-rust/pull/1119SnapshotSummaries by @jonathanc-n in https://github.com/apache/iceberg-rust/pull/1085arrow* and parquet dependabot updates by @mbrobbel in https://github.com/apache/iceberg-rust/pull/1132pyiceberg_core to pyiceberg-core by @Fokko in https://github.com/apache/iceberg-rust/pull/1134SnapshotSummary by @jonathanc-n in https://github.com/apache/iceberg-rust/pull/1122paste dependency by expanding previously macro-generated code by @hendrikmakait in https://github.com/apache/iceberg-rust/pull/1138schema and partition_spec optional for TableMetadataV1 by @phillipleblanc in https://github.com/apache/iceberg-rust/pull/1087arrow_schema_to_schema requires fields with field id by @jonathanc-n in https://github.com/apache/iceberg-rust/pull/1151README by @jonathanc-n in https://github.com/apache/iceberg-rust/pull/1152TimestampNs and TimestampTzNs` in bucket transform by @jonathanc-n in https://github.com/apache/iceberg-rust/pull/1150SnapshotProduceAction by @jonathanc-n in https://github.com/apache/iceberg-rust/pull/1139ArrowReader::build_deletes_row_selection implementation by @sdd in https://github.com/apache/iceberg-rust/pull/951add_parquet_files is not fully supported for version 0.5.0 by @jonathanc-n in https://github.com/apache/iceberg-rust/pull/11876cfeb88 to 9496afe by @dependabot in https://github.com/apache/iceberg-rust/pull/1205IntoIterator by @drmingdrmer in https://github.com/apache/iceberg-rust/pull/1233equality_ids to FileScanTaskDeleteFile by @sdd in https://github.com/apache/iceberg-rust/pull/1235Schema.name_by_field_id() by @burmecia in https://github.com/apache/iceberg-rust/pull/1321FileRead trait to be Sync-safe by @dentiny in https://github.com/apache/iceberg-rust/pull/1319expr.Reference doc by @burmecia in https://github.com/apache/iceberg-rust/pull/1343Error::backtrace() by @xxchan in https://github.com/apache/iceberg-rust/pull/1352dependencies.py generate fail on cargo-deny error by @kevinjqliu in https://github.com/apache/iceberg-rust/pull/1366dependencies.py check all subdirectories for cargo toml files by @kevinjqliu in https://github.com/apache/iceberg-rust/pull/1370Decimal and Uuid datum conversion by @burmecia in https://github.com/apache/iceberg-rust/pull/1346cargo publish by @kevinjqliu in https://github.com/apache/iceberg-rust/pull/1379zlib and unicode licenses to allow by @Fokko in https://github.com/apache/iceberg-rust/pull/566client.region by @jdockerty in https://github.com/apache/iceberg-rust/pull/623iceberg_catalog_rest added to the docs by @nishant-sachdeva in https://github.com/apache/iceberg-rust/pull/355is_exist => exists by @sdd in https://github.com/apache/iceberg-rust/pull/680pyiceberg_core dist to Pypi by @sungwy in https://github.com/apache/iceberg-rust/pull/705last-field-id as deprecated by @Fokko in https://github.com/apache/iceberg-rust/pull/715fallback attribute to all strip_options. by @ryzhyk in https://github.com/apache/iceberg-rust/pull/708archive seems unstable by @Fokko in https://github.com/apache/iceberg-rust/pull/773BoundPartitionSpec by @c-thiel in https://github.com/apache/iceberg-rust/pull/771DataFileWriter tests for schema and partition by @jonathanc-n in https://github.com/apache/iceberg-rust/pull/768pyiceberg_core to 0.4.0 by @sungwy in https://github.com/apache/iceberg-rust/pull/808verify.py script by @sungwy in https://github.com/apache/iceberg-rust/pull/817double API doc by @viirya in https://github.com/apache/iceberg-rust/pull/226UnboundPredicate::negate() by @sdd in https://github.com/apache/iceberg-rust/pull/228add_manifests by @viirya in https://github.com/apache/iceberg-rust/pull/293Bind calls so that they don't consume self and instead return a new struct, leaving the original unmoved by @sdd in https://github.com/apache/iceberg-rust/pull/290fn create_namespace by @marvinlanhenke in https://github.com/apache/iceberg-rust/pull/303str args rather than String in transform to avoid needing to clone strings by @sdd in https://github.com/apache/iceberg-rust/pull/325BoundPredicateVisitor (alternate version) by @sdd in https://github.com/apache/iceberg-rust/pull/334InclusiveProjection Visitor by @sdd in https://github.com/apache/iceberg-rust/pull/335{and,or} operations by @Fokko in https://github.com/apache/iceberg-rust/pull/339ManifestEvaluator, used to filter manifests in table scans by @sdd in https://github.com/apache/iceberg-rust/pull/322TableScan by @sdd in https://github.com/apache/iceberg-rust/pull/323partition_filters from ManifestEvaluator by @marvinlanhenke in https://github.com/apache/iceberg-rust/pull/360fn plan_files() by @marvinlanhenke in https://github.com/apache/iceberg-rust/pull/362InclusiveMetricsEvaluator by @sdd in https://github.com/apache/iceberg-rust/pull/347i32 in TableUpdate::SetDefaultSortOrder to i64 by @rwwwx in https://github.com/apache/iceberg-rust/pull/387StructAccessor.get returns Result<Option<Datum>> instead of Result<Datum> by @sdd in https://github.com/apache/iceberg-rust/pull/390ExpressionEvaluator by @marvinlanhenke in https://github.com/apache/iceberg-rust/pull/363StartsWith, NotStartsWith, In, and NotIn by @sdd in https://github.com/apache/iceberg-rust/pull/404Transform::Day to map partition types to Date rather than Int for consistency with reference implementation by @sdd in https://github.com/apache/iceberg-rust/pull/479ghp_{pages,path} properties by @Fokko in https://github.com/apache/iceberg-rust/pull/138publish: section from .asf.yaml by @Fokko in https://github.com/apache/iceberg-rust/pull/141volo by @Xuanwo in https://github.com/apache/iceberg-rust/pull/174