This is an automated email from the ASF dual-hosted git repository. github-merge-queue[bot] pushed a commit to branch gh-readonly-queue/main/pr-3879-35bb9bb62a00dcf8560d970403fef1a8047809e8 in repository https://gitbox.apache.org/repos/asf/iceberg-python.git
commit c688f1ea4a4fe4af47e06929a39df72c3cf36588 Author: Damanpreet Singh <[email protected]> AuthorDate: Sat Oct 24 18:14:28 2026 +0000 docs: Document missing write table properties in configuration (#3879) * docs: Document missing write table properties in configuration The write-options table omitted several properties that PyIceberg reads when writing, including write.target-file-size-bytes, write.format.default, write.avro.compression-codec, the Parquet row-group/bloom-filter sizes, the column metrics-mode properties and write.summary.partition-limit. Add rows for them and fix a typo ("coddec" -> "codec") in the existing compression-codec entry. * docs: Remove unimplemented Parquet write properties PyIceberg ignores write.parquet.row-group-size-bytes and the bloom-filter properties, emitting a "not implemented" warning when they are set. Co-authored-by: Copilot App <[email protected]> * docs: Clarify write table property descriptions Clarify how write.target-file-size-bytes is measured, what each metrics mode collects, which files the Avro codec applies to, and that the default write.summary.partition-limit of 0 disables partition summaries. Co-authored-by: Copilot App <[email protected]> * docs: Correct metrics mode description The none mode still records column sizes, and nested fields are capped at counts regardless of the configured mode. Co-authored-by: Copilot App <[email protected]> --------- Co-authored-by: Kevin Liu <[email protected]> Co-authored-by: Copilot App <[email protected]> --- mkdocs/docs/configuration.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/mkdocs/docs/configuration.md b/mkdocs/docs/configuration.md index 18f9db973..bd4470d08 100644 --- a/mkdocs/docs/configuration.md +++ b/mkdocs/docs/configuration.md @@ -79,12 +79,18 @@ Iceberg tables support table properties to configure table behavior. | Key | Options | Default | Description | |------------------------------------------|------------------------------------|----------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------| -| `write.parquet.compression-codec` | `{uncompressed,zstd,gzip,snappy}` | zstd | Sets the Parquet compression coddec. | +| `write.parquet.compression-codec` | `{uncompressed,zstd,gzip,snappy}` | zstd | Sets the Parquet compression codec. | | `write.parquet.compression-level` | Integer | null | Parquet compression level for the codec. If not set, it is up to PyIceberg | | `write.parquet.row-group-limit` | Number of rows | 1048576 | The upper bound of the number of entries within a single row group | | `write.parquet.page-size-bytes` | Size in bytes | 1MB | Set a target threshold for the approximate encoded size of data pages within a column chunk | | `write.parquet.page-row-limit` | Number of rows | 20000 | Set a target threshold for the maximum number of rows within a column chunk | | `write.parquet.dict-size-bytes` | Size in bytes | 2MB | Set the dictionary page size limit per row group | +| `write.target-file-size-bytes` | Size in bytes | 536870912 (512MB) | Target size of generated data files. Measured in uncompressed in-memory Arrow bytes, so files on disk are typically smaller after compression | +| `write.format.default` | `{parquet}` | parquet | File format for data files written by PyIceberg. Only Parquet is supported | +| `write.avro.compression-codec` | `{gzip,zstd,snappy}` | gzip | Compression codec for manifest files and manifest lists. For `snappy`, install with `pip install pyiceberg[snappy]` | +| `write.metadata.metrics.default` | `{none,counts,truncate(N),full}` | truncate(16) | Default column metrics for data files: `none` records only column sizes, `counts` adds value and null counts, `full` adds lower/upper bounds, and `truncate(N)` truncates string and binary bounds to N characters or bytes. Nested fields collect at most counts | +| `write.metadata.metrics.column.{column-name}` | `{none,counts,truncate(N),full}` | (value of `write.metadata.metrics.default`) | Overrides `write.metadata.metrics.default` for a single column. Use the dot-separated name for nested fields | +| `write.summary.partition-limit` | Integer | 0 | Maximum number of changed partitions for which per-partition summaries are included in the snapshot summary. The default of 0 disables them | | `write.metadata.previous-versions-max` | Integer | 100 | The max number of previous version metadata files to keep before deleting after commit. | | `write.metadata.delete-after-commit.enabled` | Boolean | False | Whether to automatically delete old *tracked* metadata files after each table commit. It will retain a number of the most recent metadata files, which can be set using property `write.metadata.previous-versions-max`. | | `write.object-storage.enabled` | Boolean | False | Enables the [`ObjectStoreLocationProvider`](configuration.md#object-store-location-provider) that adds a hash component to file paths. |
