tustvold commented on PR #2207: URL: https://github.com/apache/arrow-rs/pull/2207#issuecomment-1200310835
The example you give would work, even with this PR. Symlinks, illegal characters, etc... above the root of the LocalFilesystem are supported. It's also potentially worth noting hard links will still work. The rationale for resolving symlinks was that the intent of the crate, at least historically, was to provide object store semantics. LocalFilesystem would then map this to a filesystem but filesystem specific things like relative paths, symlinks, non-ASCII characters, globs, etc... were not supported. This sidesteps a whole host of gnarly nonsense, e.g. if I delete a file that is a symlink should it actually delete the linked file. What about if I perform two concurrent modification requests that resolve to the same underlying filesystem path, etc... It also helps paper over OS-specific quirks, most notably the absolute mess that is filesystem paths on Windows. I'm definitely not saying the current approach is perfect, but hopefully that gives some background on how things ended up this way? The TLDR was this was the least terrible way I devised to do it, but I'm open to alternative suggestions 😅 -- 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]
