You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Sergio Peña (JIRA)" <ji...@apache.org> on 2016/07/25 16:35:20 UTC

[jira] [Commented] (HIVE-13688) Variable substitutions not working for shell commands in beeline

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

Sergio Peña commented on HIVE-13688:
------------------------------------

[~xuefuz] [~ngangam] We could do what shell scripts do with global and local variables. Local variables override global variables while you're in a function.

For Hive, if a user sets a OS_NAME variable on Beeline, then Beeline should use the user value instead of the HS2 value while you are in the Beeline session. If it is not set, then just tell HS2 to substitute the value on its side. Isn't that better rather than create a new type of variable? This is a normal behavior even on Linux systems, where a variable can be changed on a user-session, and then go back to the linux-session once user logout. 

> Variable substitutions not working for shell commands in beeline
> ----------------------------------------------------------------
>
>                 Key: HIVE-13688
>                 URL: https://issues.apache.org/jira/browse/HIVE-13688
>             Project: Hive
>          Issue Type: Bug
>          Components: Beeline
>    Affects Versions: 1.1.0
>            Reporter: Naveen Gangam
>            Assignee: Naveen Gangam
>
> Appears that the variable substitutions work fine for DML and DDL commands.
> > set hivevar:v1=databases;
> No rows affected (0.004 seconds)
> > show ${v1};
> +----------------+--+
> | database_name  |
> +----------------+--+
> | default        |
> +----------------+--+
> 1 row selected (0.243 seconds)
> > set hivevar:v1=tmp;
> No rows affected (0.061 seconds)
> > create table ${v1} (col1 string);
> No rows affected (0.065 seconds)
> > describe ${v1};
> INFO  : Compiling command(queryId=hive_20160504105151_cb6ab7f1-26ac-4733-80ed-13a5134ba2b5): describe tmp
> INFO  : Executing command(queryId=hive_20160504105151_cb6ab7f1-26ac-4733-80ed-13a5134ba2b5): describe tmp
> +-----------+------------+----------+--+
> | col_name  | data_type  | comment  |
> +-----------+------------+----------+--+
> | col1      | string     |          |
> +-----------+------------+----------+--+
> 1 row selected (0.121 seconds)
> But it does not appear to work for shell commands (introduced in HIVE-6791 )
> > !sh sudo -u hdfs hdfs dfs -mkdir /user/root/${v1}
> mkdir: `/user/root/${v1}': No such file or directory <========== problem
> Command failed with exit code = 1
> > !sh echo ${v1};
> ${v1};



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)