laskoviymishka opened a new pull request, #2151: URL: https://github.com/apache/iceberg-go/pull/2151
Introduce a public ManifestProvider (via Table.ManifestProvider) that reads a snapshot's manifest list through the table's shared, bounded manifest-list cache and resolves the table FileIO once per provider. It exposes Manifests, DataManifests, and FS, keeping the internal snapshotManifestSet cache and sharedSnapshotManifestFSF unchanged behind it. Manifests and DataManifests return iter.Seq[iceberg.ManifestFile] over the cache-owned slice. That keeps the no-copy cache hit from #2112 while giving callers outside the package no way to mutate the shared cache, which a borrowed []ManifestFile in a public signature could not guarantee. Repoint the metadata-inspection code off the table package internals it reached into (the unexported manifestSet / manifestSetWithFSF methods, the fsF field, and the metadata / metadataLocation fields) and onto public accessors (Table.ManifestProvider, Table.FS, Table.Metadata, Table.MetadataLocation). The provider is created once per inspection so the all_* metadata tables still resolve the backend once and share the manifest cache. AllManifests now fills its record batches from a reused chunk buffer instead of slicing the manifest list, with the same batch boundaries; no behavior change. This leaves the inspection surface depending only on public table APIs, in preparation for moving it to a dedicated table/inspect package. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
