[
https://issues.apache.org/jira/browse/SQOOP-3061?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Eric Lin updated SQOOP-3061:
----------------------------
Description:
if you have the following in the options file:
--query
SELECT * FROM test WHERE a = 'b'
and then run
{code}
sqoop --options-file <file-path>
{code}
it will fail with the following error:
{code}
16/11/22 16:08:59 ERROR sqoop.Sqoop: Error while expanding arguments
java.lang.Exception: Malformed option in options
file(/tmp/sqoop_runner_from_stdin_1112_12354__sqoop_options_file): SELECT *
FROM test WHERE a = 'b'
at
org.apache.sqoop.util.OptionsFileUtil.removeQuoteCharactersIfNecessary(OptionsFileUtil.java:170)
at
org.apache.sqoop.util.OptionsFileUtil.removeQuotesEncolosingOption(OptionsFileUtil.java:136)
at
org.apache.sqoop.util.OptionsFileUtil.expandArguments(OptionsFileUtil.java:90)
at
com.cloudera.sqoop.util.OptionsFileUtil.expandArguments(OptionsFileUtil.java:33)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:199)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:227)
at org.apache.sqoop.Sqoop.main(Sqoop.java:236)
Malformed option in options
file(/tmp/sqoop_runner_from_stdin_1112_12354__sqoop_options_file): SELECT *
FROM test WHERE a = 'b'
{code}
This is caused by function
org.apache.sqoop.util.OptionsFileUtil.removeQuoteCharactersIfNecessary only
checks for starting and ending quotes and will fail if the query does not start
with a quote but ends with a quote, like the example query above.
was:
if you have the following in the options file:
--query
SELECT * FROM test WHERE a = 'b'
it will fail with the following error:
{code}
16/11/22 16:08:59 ERROR sqoop.Sqoop: Error while expanding arguments
java.lang.Exception: Malformed option in options
file(/tmp/sqoop_runner_from_stdin_1112_12354__sqoop_options_file): SELECT *
FROM test WHERE a = 'b'
at
org.apache.sqoop.util.OptionsFileUtil.removeQuoteCharactersIfNecessary(OptionsFileUtil.java:170)
at
org.apache.sqoop.util.OptionsFileUtil.removeQuotesEncolosingOption(OptionsFileUtil.java:136)
at
org.apache.sqoop.util.OptionsFileUtil.expandArguments(OptionsFileUtil.java:90)
at
com.cloudera.sqoop.util.OptionsFileUtil.expandArguments(OptionsFileUtil.java:33)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:199)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:227)
at org.apache.sqoop.Sqoop.main(Sqoop.java:236)
Malformed option in options
file(/tmp/sqoop_runner_from_stdin_1112_12354__sqoop_options_file): SELECT *
FROM test WHERE a = 'b'
{code}
This is caused by function
org.apache.sqoop.util.OptionsFileUtil.removeQuoteCharactersIfNecessary only
checks for starting and ending quotes and will fail if the query does not start
with a quote but ends with a quote, like the example query above.
> Sqoop --options-file failed with error "Malformed option in options file"
> even though the query is correct
> ----------------------------------------------------------------------------------------------------------
>
> Key: SQOOP-3061
> URL: https://issues.apache.org/jira/browse/SQOOP-3061
> Project: Sqoop
> Issue Type: Bug
> Affects Versions: 1.4.6
> Reporter: Eric Lin
> Priority: Minor
> Labels: patch
> Attachments: SQOOP-3061.patch
>
>
> if you have the following in the options file:
> --query
> SELECT * FROM test WHERE a = 'b'
> and then run
> {code}
> sqoop --options-file <file-path>
> {code}
> it will fail with the following error:
> {code}
> 16/11/22 16:08:59 ERROR sqoop.Sqoop: Error while expanding arguments
> java.lang.Exception: Malformed option in options
> file(/tmp/sqoop_runner_from_stdin_1112_12354__sqoop_options_file): SELECT *
> FROM test WHERE a = 'b'
> at
> org.apache.sqoop.util.OptionsFileUtil.removeQuoteCharactersIfNecessary(OptionsFileUtil.java:170)
> at
> org.apache.sqoop.util.OptionsFileUtil.removeQuotesEncolosingOption(OptionsFileUtil.java:136)
> at
> org.apache.sqoop.util.OptionsFileUtil.expandArguments(OptionsFileUtil.java:90)
> at
> com.cloudera.sqoop.util.OptionsFileUtil.expandArguments(OptionsFileUtil.java:33)
> at org.apache.sqoop.Sqoop.runTool(Sqoop.java:199)
> at org.apache.sqoop.Sqoop.runTool(Sqoop.java:227)
> at org.apache.sqoop.Sqoop.main(Sqoop.java:236)
> Malformed option in options
> file(/tmp/sqoop_runner_from_stdin_1112_12354__sqoop_options_file): SELECT *
> FROM test WHERE a = 'b'
> {code}
> This is caused by function
> org.apache.sqoop.util.OptionsFileUtil.removeQuoteCharactersIfNecessary only
> checks for starting and ending quotes and will fail if the query does not
> start with a quote but ends with a quote, like the example query above.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)