[
https://issues.apache.org/jira/browse/HIVE-20608?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Work on HIVE-20608 started by Soumabrata Chakraborty.
-----------------------------------------------------
> 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)