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]

Reply via email to