Skip to content

Conversation

@b-rick
Copy link

@b-rick b-rick commented Oct 31, 2025

Description:
This PR adds support for configuring avro compression for Manifests and ManifestLists using table properties.

Problem:
Despite configuration options existing for write.avro.compression-codec and write.avro.compression-level, overriding these at the table properties level does not actually change the compression level for writers. Many of the code-paths to the manifest writers are hard-coded to use GZIP only.

Solution:
Ensure we are wiring through table properties to the ManifestLists writer and Manifests writer

Testing
Added unit tests:

  • TestManifestWriterVersions
    • testDataFileManifestsCanUseAvroCompressionFromTableProperties
    • testDeleteManifestsCanUseAvroCompressionFromTableProperties
  • TestSnapshots:
    • testManifestsHaveCorrectEncoding
  • TestManifestListVersions:
    • testOverrideManifestAvroCompression

Zac Sanchez added 2 commits October 31, 2025 15:50
The iceberg table properties are never actually propagated to Avro
writers in Iceberg. As a result of this, the configuration for Avro
compression can never actually be altered, and all avro files are
compressed with gzip.

In this change, let's fix support adding table properties to
ManifestList avro files.
@b-rick b-rick closed this by deleting the head repository Nov 2, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant