-
Notifications
You must be signed in to change notification settings - Fork 174
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SNOW-1846830: SNOW-1863648 PUT command does not transfer file for JDBC driver from 3.17.0 #1984
Comments
Hello @tescnovozymes , Thanks for raising the issue. code: output: Could you please check again. Regards, |
https://dbeaver.io/download/#:~:text=Java%20notes%3A,in%20the%20DBeaver%20installation%20folder. DBeaver requires Java 17 or higher. Since version 23.0 all distributions include OpenJDK 17 bundle. |
This seems to be only a problem on Windows but not on Mac or Linux. We have automatic tests for all three OS and the DB Loader tests that use the PUT command to upload files only fail on Windows but succeed on Linux and Mac. |
Bug located. Seems the has been a change in accepting PATH from 16.1 to 20.0 KNIME generates PATH with an extra
|
Closing issue here, as this is not a fault of Snowflake driver, but a fault in KNIME code that generates the PUT command. |
The three / in the beginning of the URI is the proper URI format for local Windows paths as described here. This was accepted and properly parsed by the driver until version 3.16.1. So I would consider this a bug in the path handling of the driver and thus would reopen this issue request. It would be also great if you could explain in more detail what method you use or link to the part in the source code that parses the path argument since in the documentation it mentions that it is expecting a URI but also the space in the file name "load data" is not URI encoded e.g. load%20data. |
Thank you @tescnovozymes , Will check and update. Regards, |
This is definitely a regression from working past behavior. I was using |
Hello @tescnovozymes , We are able to reproduce the issue, we will work on it and update. Regards, |
Hello @tescnovozymes , We checked further, the snowflake documentation for PUT for windows is file://C:/temp/load data. Windows Will update further. Regards, |
Should the documentation then be expanded with a section, that snowflake use a custom implementation of the "file:" uri protocol and not following standards? |
Hello @tescnovozymes , We are working on the issue to fix the regression, will update further. Regards, |
We also hit this, and spent a couple days chasing it. It would have been hard to deduce without seeing this issue report, because the PUT command fails quietly and reports no error that I can see. Maybe it shows up in logging somewhere? |
Hello @sfc-gh-sghosh , |
no known ETTR for now, but we'll keep this thread posted with the progress if any. Right now, the team is working on the fix. Thank you for bearing with us while this is fixed! |
Hello @sfc-gh-dszmolka , |
hi @koettert unfortunately I don't have any ETTR still. You can follow #2033 for realtime progress updates if you wish, but it's in Draft phase so really not sure when it can be ready for review, actually reviewed, merged, and eventually released. But if this issue is very impactful for you, maybe you can build the driver from https://github.com/snowflakedb/snowflake-jdbc/tree/SNOW-1863648-allow-triple-slash-file-notation or use it as an inspiration for a local fix, and if it works well for you, then use the custom built driver until the official release is out. editing to add some details after conferring with the team:
Hope this helps and apologies this takes so long. As mentioned earlier, I'll keep this issue posted if there's any important change like having a PR in review or the release. |
Thanks for the info and the alternative. Will monitor this ticket for further updates. |
fix is merged and will be part of the next release |
Thanks @sfc-gh-dszmolka for fixing the problem. Looking forward to the release :-) |
released with JDBC driver v3.23.0 |
@sfc-gh-dszmolka there seems to be a packaging issue with 3.23.0... some unresolved property made it into the POM? |
yup :( #2104 |
First reported here:
DB Loader not working with Snowflake driver from 3.17
Using command:
PUT 'file:///C:/KNIME/test.csv' '@~' AUTO_COMPRESS=FALSE;
And then listing with:
list '@~'
No file is transferred with drivers from and above
3.17.0
What operating system and processor architecture are you using?
Windows 11, running KNIME 5.2.2
What version of Java are you using?
KNIME 5.2.x ships with JRE 17
What did you do?
Registrated different drivers in KNIME:
And then run the PUT command and list command
I expected to see file in user stage.
I validated query_history was listing the commands.
No
The text was updated successfully, but these errors were encountered: