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

Soumabrata Chakraborty updated HIVE-20608:
------------------------------------------
    Description: 
*Steps to reproduce:*

(1) Connect to HiveServer2 using JDBC driver (not via Beeline)

(2) Execute a set command with a space before set – e.g. " set 
hive.exec.dynamic.partiton=true"

(3) The error that is returned says: 
{code:java}
Caused by: org.apache.hive.service.cli.HiveSQLException: Error while processing 
statement: Cannot modify set hive.exec.dynamic.partition at runtime. It is not 
in list of params that are allowed to be modified at runtime
{code}
 (4) However on removing the space before the set command - it works fine.

 

*Analysis:*

Looks like an issue with 
[https://github.com/apache/hive/blob/master/service/src/java/org/apache/hive/service/cli/operation/HiveCommandOperation.java]
 

In the runInternal() method, the untrimmed sql statement is split by space 
(\\s) but the substring operation to get the command args is done on the 
trimmed sql statement.  This causes the issue. 
{code:java}
String command = getStatement().trim(); 
String[] tokens = statement.split("\\s"); 
String commandArgs = command.substring(tokens[0].length()).trim();
{code}

  was:
Steps to reproduce:

(1) Connect to HiveServer2 using JDBC driver (not via Beeline)

(2) Execute a set command with a space before set – e.g. " set 
hive.exec.dynamic.partiton=true"

(3) The error that is returned says: 
{code:java}
Caused by: org.apache.hive.service.cli.HiveSQLException: Error while processing 
statement: Cannot modify set hive.exec.dynamic.partition at runtime. It is not 
in list of params that are allowed to be modified at runtime
{code}
 (4) However on removing the space before the set command - it works fine.


> Incorrect handling of sql command args in hive service leading to misleading 
> error messages
> -------------------------------------------------------------------------------------------
>
>                 Key: HIVE-20608
>                 URL: https://issues.apache.org/jira/browse/HIVE-20608
>             Project: Hive
>          Issue Type: Bug
>            Reporter: Soumabrata Chakraborty
>            Assignee: Soumabrata Chakraborty
>            Priority: Major
>
> *Steps to reproduce:*
> (1) Connect to HiveServer2 using JDBC driver (not via Beeline)
> (2) Execute a set command with a space before set – e.g. " set 
> hive.exec.dynamic.partiton=true"
> (3) The error that is returned says: 
> {code:java}
> Caused by: org.apache.hive.service.cli.HiveSQLException: Error while 
> processing statement: Cannot modify set hive.exec.dynamic.partition at 
> runtime. It is not in list of params that are allowed to be modified at 
> runtime
> {code}
>  (4) However on removing the space before the set command - it works fine.
>  
> *Analysis:*
> Looks like an issue with 
> [https://github.com/apache/hive/blob/master/service/src/java/org/apache/hive/service/cli/operation/HiveCommandOperation.java]
>  
> In the runInternal() method, the untrimmed sql statement is split by space 
> (\\s) but the substring operation to get the command args is done on the 
> trimmed sql statement.  This causes the issue. 
> {code:java}
> String command = getStatement().trim(); 
> String[] tokens = statement.split("\\s"); 
> String commandArgs = command.substring(tokens[0].length()).trim();
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to