IMPORT/EXPORT could fail if FILE contains non-alphanumeric characters
Details
| Detail name | Value |
|---|---|
| Changelog Number | 5241 |
| Type | Bug |
| Status | Resolved |
| Affected Versions | EXASOL 6.0.4 |
| Fix Versions | EXASOL 6.0.5 |
| Resolution Date | 2017-10-27 |
Problem description:
All IMPORT and EXPORT statements will fail if the FILE argument contains a HTTP address with HTTP query string parameters like ?, & and =.
This is because in version 6.0.4 the whole FILE argument will be URL encoded, including the characters ?, & and =. However, these characters must not be encoded, because otherwise they will no longer be interpreted as having a special semantic as HTTP query string parameters.
How to reproduce
IMPORT INTO target_table FROM CSV AT 'http://server:1234/address' FILE 'file01?mode=read¶m2=value2' -- (or similar EXPORT)
returns an error like
[EXASOL][EXASolution driver]ETL-5105: Following error occured while reading data from external connection [http://server:1234/address/file01%3Fmode%3Dread%26param2%3Dvalue2 failed with error code=400 after 160 bytes.]
The expected behavior is that the statement should works, and non-alphanumeric characters such as '?', '&' and '=' in the FILE argument should not be URL encoded.
Notes on the bugfix
In order to fix this issue, the fix referenced in ----EXASOL-2096---- has been rolled back. Thus, ----EXASOL-2096---- is not resolved.