You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
BucketPath uses backslash separators on Windows #322
On Windows, BucketPath sends paths with backslash separators to BucketFS, so any operation on a nested path is wrong.
BucketPath.__init__ stores the path as PurePath(path). On Windows that gives a PureWindowsPath. Only _get_relative_posix(), used by _navigate(), converts \ to /. Everything else uses str(self._path) directly:
_build_url puts the path into the URL as-is, so requests encodes it as .../default/dir%5Csub%5Ca.txt. Uploads then create a file whose name literally contains backslashes, and downloads and deletes of existing nested files fail. The UDF path returned by as_udf_path() is not valid inside the database either.
Expected
BucketFS paths are always POSIX paths, whatever the client OS.
Suggested fix
Store the path as PurePosixPath instead of PurePath in BucketPath, and in as_udf_path(). _get_relative_posix() can then drop its special case for PureWindowsPath. A unit test that runs the operations above with Windows-style paths, or a Windows CI job, would prevent regressions.
Context
Found while checking whether the Exasol MCP Server can run on Windows. Its BucketFS tools depend on BucketPath.
Activity
Addressed review of the BucketPath separator fix (exasol#322)
#322: Fixed a bug with Windows path format (#330)