Commits


Benjamin Kietzman authored and GitHub committed fd75cbdb388
GH-40342: [C++] move LocalFileSystem to the registry (#40356) ### Rationale for this change Moving LocalFileSystem into the registry is a good first usage and will help us hammer out which aspects of built in file systems should remain public. ### What changes are included in this PR? A factory for LocalFileSystem is added to the registry. `FileSystem::MakeUri` ( https://github.com/apache/arrow/issues/18316 ) is added to enable roundtripping filesystems through URIs. `file://` URIs now support a use_mmap query parameter, and `local://` URIs are also supported as an alias. <h6 id="reduce">Reducing the set of bound classes</h6> Some unnecessary bindings to the LocalFileSystem concrete class are removed. This demonstrates that with a registered factory pattern, it is no longer necessary to keep a class hierarchy public for binding. Eventually (if desired), we can move concrete subclasses of FileSystem entirely out of public headers. ### Are these changes tested? Yes, all existing tests for file:// URIs continue to pass ### Are there any user-facing changes? For consistency, local:// URIs will now be considered equivalent to corresponding file:// URIs * GitHub Issue: #40342 Authored-by: Benjamin Kietzman <bengilgit@gmail.com> Signed-off-by: Benjamin Kietzman <bengilgit@gmail.com>