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]

Reply via email to