sqoop-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Attila Szabo (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (SQOOP-3061) Sqoop --options-file failed with error "Malformed option in options file" even though the query is correct
Date Wed, 15 Feb 2017 08:38:41 GMT

    [ https://issues.apache.org/jira/browse/SQOOP-3061?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15867460#comment-15867460
] 

Attila Szabo commented on SQOOP-3061:
-------------------------------------

Hey [~ericlin],

Thanks for your contribution, and let me congratulate for your very first Sqoop commit.
We hope you enjoyed working with our community and that we could expect more contributions
from you in the future!

Thanks,
[~maugli]

> 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
>            Assignee: Eric Lin
>            Priority: Minor
>              Labels: patch
>         Attachments: SQOOP-3061.2.patch, SQOOP-3061.3.patch, SQOOP-3061.4.patch, SQOOP-3061.5.patch,
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.
> {code}
>   private static String removeQuoteCharactersIfNecessary(String fileName,
>       String option, char quote) throws Exception {
>     boolean startingQuote = (option.charAt(0) == quote);
>     boolean endingQuote = (option.charAt(option.length() - 1) == quote);
>     if (startingQuote && endingQuote) {
>       if (option.length() == 1) {
>         throw new Exception("Malformed option in options file("
>             + fileName + "): " + option);
>       }
>       return option.substring(1, option.length() - 1);
>     }
>     if (startingQuote || endingQuote) {
>        throw new Exception("Malformed option in options file("
>            + fileName + "): " + option);
>     }
>     return option;
>   }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Mime
View raw message