hive-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Xuefu Zhang (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HIVE-6652) Beeline gives evasive error message for any unrecognized command line arguement
Date Thu, 13 Mar 2014 18:13:52 GMT

     [ https://issues.apache.org/jira/browse/HIVE-6652?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Xuefu Zhang updated HIVE-6652:
------------------------------

    Description: 
For any unrecognized command line argument, Beeline emits a warning message that's evasive
and meaningless. For instance:
{code}
beeline abc
abc (No such file or directory)
Beeline version 0.14.0-SNAPSHOT by Apache Hive
...
beeline -hh
-hh (No such file or directory)
{code}

The error seeming suggests that Beeline accepts an argument as a file name. However, neither
Beeline doc nor command line help indicates there is such an option. 
{code}
beeline --help
Usage: java org.apache.hive.cli.beeline.BeeLine 
   -u <database url>               the JDBC URL to connect to
   -n <username>                   the username to connect as
   -p <password>                   the password to connect as
   -d <driver class>               the driver class to use
   -e <query>                      query that should be executed
   -f <file>                       script file that should be executed
   --hiveconf property=value       Use value for given property
   --hivevar name=value            hive variable name and value
                                   This is Hive specific settings in which variables
                                   can be set at session level and referenced in Hive
                                   commands or queries.
   --color=[true/false]            control whether color is used for display
   --showHeader=[true/false]       show column names in query results
   --headerInterval=ROWS;          the interval between which heades are displayed
   --fastConnect=[true/false]      skip building table/column list for tab-completion
   --autoCommit=[true/false]       enable/disable automatic transaction commit
   --verbose=[true/false]          show verbose error messages and debug info
   --showWarnings=[true/false]     display connection warnings
   --showNestedErrs=[true/false]   display nested errors
   --numberFormat=[pattern]        format numbers using DecimalFormat pattern
   --force=[true/false]            continue running script even after errors
   --maxWidth=MAXWIDTH             the maximum width of the terminal
   --maxColumnWidth=MAXCOLWIDTH    the maximum width to use when displaying columns
   --silent=[true/false]           be more silent
   --autosave=[true/false]         automatically save preferences
   --outputformat=[table/vertical/csv/tsv]   format mode for result display
   --isolation=LEVEL               set the transaction isolation level
   --nullemptystring=[true/false]  set to true to get historic behavior of printing null as
empty string
   --help                          display this message
{code}

Further research shows that this is a residual from SQLLine from which Beeline is derived,
which allows user to specify a property file based on which SQLLine can make a DB connection.

While this might be useful, this isn't documented and has caused a lot of confusions. And
it's the root cause for quite a few problems such as those described in HIVE-5677 and possibly
HIVE-6110. HIVE-6173 had the same symptom, which uncovered another problem.

Thus, I'd suggest we disable this option. If it's desirable to have this option, then we need
at least corresponding documentation plus better error message.


  was:
For any unrecognized command line argument, Beeline emits a warning message that's evasive
and meaningless. For instance:
{code}
beeline abc
abc (No such file or directory)
Beeline version 0.14.0-SNAPSHOT by Apache Hive
...
beeline -hh
-hh (No such file or directory)
{code}

The error seeming suggests that Beeline accepts an argument as a file name. However, neither
Beeline doc nor command line help indicates there is such an option. 
{code}
beeline --help
Usage: java org.apache.hive.cli.beeline.BeeLine 
   -u <database url>               the JDBC URL to connect to
   -n <username>                   the username to connect as
   -p <password>                   the password to connect as
   -d <driver class>               the driver class to use
   -e <query>                      query that should be executed
   -f <file>                       script file that should be executed
   --hiveconf property=value       Use value for given property
   --hivevar name=value            hive variable name and value
                                   This is Hive specific settings in which variables
                                   can be set at session level and referenced in Hive
                                   commands or queries.
   --color=[true/false]            control whether color is used for display
   --showHeader=[true/false]       show column names in query results
   --headerInterval=ROWS;          the interval between which heades are displayed
   --fastConnect=[true/false]      skip building table/column list for tab-completion
   --autoCommit=[true/false]       enable/disable automatic transaction commit
   --verbose=[true/false]          show verbose error messages and debug info
   --showWarnings=[true/false]     display connection warnings
   --showNestedErrs=[true/false]   display nested errors
   --numberFormat=[pattern]        format numbers using DecimalFormat pattern
   --force=[true/false]            continue running script even after errors
   --maxWidth=MAXWIDTH             the maximum width of the terminal
   --maxColumnWidth=MAXCOLWIDTH    the maximum width to use when displaying columns
   --silent=[true/false]           be more silent
   --autosave=[true/false]         automatically save preferences
   --outputformat=[table/vertical/csv/tsv]   format mode for result display
   --isolation=LEVEL               set the transaction isolation level
   --nullemptystring=[true/false]  set to true to get historic behavior of printing null as
empty string
   --help                          display this message
{code}

Further research shows that this is a residual from SQLLine from which Beeline is derived,
which allows user to specify a property file based on which SQLLine can make a DB connection.

While this might be useful, this isn't documented and has caused a lot of confusions. And
it's the root cause for quite a few problems such as those described in HIVE-5677 and HIVE-6110.
HIVE-6173 had the same symptom, which uncovered another problem.

Thus, I'd suggest we disable this option. If it's desirable to have this option, then we need
at least corresponding documentation plus better error message.



> Beeline gives evasive error message for any unrecognized command line arguement
> -------------------------------------------------------------------------------
>
>                 Key: HIVE-6652
>                 URL: https://issues.apache.org/jira/browse/HIVE-6652
>             Project: Hive
>          Issue Type: Bug
>    Affects Versions: 0.11.0, 0.12.0, 0.13.0
>            Reporter: Xuefu Zhang
>            Assignee: Xuefu Zhang
>
> For any unrecognized command line argument, Beeline emits a warning message that's evasive
and meaningless. For instance:
> {code}
> beeline abc
> abc (No such file or directory)
> Beeline version 0.14.0-SNAPSHOT by Apache Hive
> ...
> beeline -hh
> -hh (No such file or directory)
> {code}
> The error seeming suggests that Beeline accepts an argument as a file name. However,
neither Beeline doc nor command line help indicates there is such an option. 
> {code}
> beeline --help
> Usage: java org.apache.hive.cli.beeline.BeeLine 
>    -u <database url>               the JDBC URL to connect to
>    -n <username>                   the username to connect as
>    -p <password>                   the password to connect as
>    -d <driver class>               the driver class to use
>    -e <query>                      query that should be executed
>    -f <file>                       script file that should be executed
>    --hiveconf property=value       Use value for given property
>    --hivevar name=value            hive variable name and value
>                                    This is Hive specific settings in which variables
>                                    can be set at session level and referenced in Hive
>                                    commands or queries.
>    --color=[true/false]            control whether color is used for display
>    --showHeader=[true/false]       show column names in query results
>    --headerInterval=ROWS;          the interval between which heades are displayed
>    --fastConnect=[true/false]      skip building table/column list for tab-completion
>    --autoCommit=[true/false]       enable/disable automatic transaction commit
>    --verbose=[true/false]          show verbose error messages and debug info
>    --showWarnings=[true/false]     display connection warnings
>    --showNestedErrs=[true/false]   display nested errors
>    --numberFormat=[pattern]        format numbers using DecimalFormat pattern
>    --force=[true/false]            continue running script even after errors
>    --maxWidth=MAXWIDTH             the maximum width of the terminal
>    --maxColumnWidth=MAXCOLWIDTH    the maximum width to use when displaying columns
>    --silent=[true/false]           be more silent
>    --autosave=[true/false]         automatically save preferences
>    --outputformat=[table/vertical/csv/tsv]   format mode for result display
>    --isolation=LEVEL               set the transaction isolation level
>    --nullemptystring=[true/false]  set to true to get historic behavior of printing null
as empty string
>    --help                          display this message
> {code}
> Further research shows that this is a residual from SQLLine from which Beeline is derived,
which allows user to specify a property file based on which SQLLine can make a DB connection.
> While this might be useful, this isn't documented and has caused a lot of confusions.
And it's the root cause for quite a few problems such as those described in HIVE-5677 and
possibly HIVE-6110. HIVE-6173 had the same symptom, which uncovered another problem.
> Thus, I'd suggest we disable this option. If it's desirable to have this option, then
we need at least corresponding documentation plus better error message.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message