[
https://issues.apache.org/jira/browse/HIVE-13688?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15282871#comment-15282871
]
Xuefu Zhang commented on HIVE-13688:
------------------------------------
I think this is by design. The main question was really where the substitution
should happen, client vs server. This has significant difference. For instance,
if $OS_NAME is used in user's query, then the value can be complete different
in the client host or hiveserver2 host. For hive CLI, this doesn't matter, but
does for beeline/hiveserver2.
Since shell command is executed at the client host, substitution should happen
at client host as well. Thus, the question comes about which values to use to
do the substitution. Maybe we need a new type of variable for this.
> 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)