You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2020/06/09 16:10:01 UTC

[jira] [Updated] (HIVE-20608) Incorrect handling of sql command args in hive service leading to misleading error messages

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

ASF GitHub Bot updated HIVE-20608:
----------------------------------
    Labels: pull-request-available  (was: )

> 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
>              Labels: pull-request-available
>         Attachments: HIVE-20608.2.patch, HIVE-20608.patch
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> *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
(v8.3.4#803005)