wgtmac opened a new pull request, #889:
URL: https://github.com/apache/iceberg-cpp/pull/889

   ## Problem
   
   The existing FileIO design embeds scheme ownership in `ResolvingFileIO` and
   registers the resolver itself as a special implementation. This duplicates
   backend-specific scheme knowledge, prevents custom FileIOs from declaring the
   schemes they support, and couples automatic routing to a special registry
   entry.
   
   Cached delegates are also returned as raw pointers while credential refresh
   can invalidate the cache. In addition, treating `oss://` as an S3 alias is 
not
   safe without provider-specific endpoint and compatibility validation.
   
   ## Changes
   
   - Make `FileIORegistry::Factory` contain a required `create` callback and an
     optional `accepts` callback.
   - Resolve normalized schemes from registered factories, with later
     registrations overriding earlier ones.
   - Construct the default `ResolvingFileIO` directly while preserving explicit
     `io-impl` precedence.
   - Use Java-compatible first-colon scheme parsing and remove hard-coded scheme
     mapping from the resolver.
   - Keep cached delegates alive with `shared_ptr` across credential refreshes.
   - Forward complete credential lists to delegates that support them and 
rebuild
     delegates after refresh.
   - Limit Arrow S3 routing and credential prefix handling to `s3`, `s3a`, and
     `s3n`; defer OSS/COS support to a separate change.
   - Add focused registry, resolver, REST, and S3 coverage.
   - Document built-in and custom FileIO usage.


-- 
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