[ https://issues.apache.org/jira/browse/HIVE-14538?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15450781#comment-15450781 ]
Chaoyu Tang commented on HIVE-14538: ------------------------------------ The patch looks good. I wonder if the following code has the indention issue? {code} + if (dbconn != null) + conn = dbconn.getConnection(); + if (conn != null) { //should there be two spaces indention? + if (call) { + stmnt = conn.prepareCall("set"); + hasResults = ((CallableStatement) stmnt).execute(); + } else { + stmnt = beeLine.createStatement(); + hasResults = stmnt.execute("set"); + } {code} Also regarding your comment about that the variableSubstitution, can not following happen at the Beeline (client site) and the value does not have to be the server value. set variableX = valueX select * from tbl where col1 = $variableX I am just curious. The question is actually beyond the scope of the patch > beeline throws exceptions with parsing hive config when using !sh statement > --------------------------------------------------------------------------- > > Key: HIVE-14538 > URL: https://issues.apache.org/jira/browse/HIVE-14538 > Project: Hive > Issue Type: Bug > Affects Versions: 1.1.0 > Reporter: Yongzhi Chen > Assignee: Yongzhi Chen > Attachments: HIVE-14538.1.patch, HIVE-14538.2.patch > > > When beeline has a connection to a server, in some env it has following > problem: > {noformat} > 0: jdbc:hive2://localhost> !verbose > verbose: on > 0: jdbc:hive2://localhost> !sh id > java.lang.ArrayIndexOutOfBoundsException: 1 > at org.apache.hive.beeline.Commands.addConf(Commands.java:758) > at org.apache.hive.beeline.Commands.getHiveConf(Commands.java:704) > at org.apache.hive.beeline.Commands.sh(Commands.java:1002) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at > org.apache.hive.beeline.ReflectiveCommandHandler.execute(ReflectiveCommandHandler.java:52) > at org.apache.hive.beeline.BeeLine.dispatch(BeeLine.java:1081) > at org.apache.hive.beeline.BeeLine.execute(BeeLine.java:917) > at org.apache.hive.beeline.BeeLine.begin(BeeLine.java:845) > at org.apache.hive.beeline.BeeLine.mainWithInputRedirection(BeeLine.java:482) > at org.apache.hive.beeline.BeeLine.main(BeeLine.java:465) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at org.apache.hadoop.util.RunJar.run(RunJar.java:221) > at org.apache.hadoop.util.RunJar.main(RunJar.java:136) > 0: jdbc:hive2://localhost> !sh echo hello > java.lang.ArrayIndexOutOfBoundsException: 1 > at org.apache.hive.beeline.Commands.addConf(Commands.java:758) > at org.apache.hive.beeline.Commands.getHiveConf(Commands.java:704) > at org.apache.hive.beeline.Commands.sh(Commands.java:1002) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at > org.apache.hive.beeline.ReflectiveCommandHandler.execute(ReflectiveCommandHandler.java:52) > at org.apache.hive.beeline.BeeLine.dispatch(BeeLine.java:1081) > at org.apache.hive.beeline.BeeLine.execute(BeeLine.java:917) > at org.apache.hive.beeline.BeeLine.begin(BeeLine.java:845) > at org.apache.hive.beeline.BeeLine.mainWithInputRedirection(BeeLine.java:482) > at org.apache.hive.beeline.BeeLine.main(BeeLine.java:465) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at org.apache.hadoop.util.RunJar.run(RunJar.java:221) > at org.apache.hadoop.util.RunJar.main(RunJar.java:136) > 0: jdbc:hive2://localhost> > {noformat} > Also it breaks if there is no connection established: > {noformat} > beeline> !sh id > java.lang.NullPointerException > at org.apache.hive.beeline.BeeLine.createStatement(BeeLine.java:1897) > at org.apache.hive.beeline.Commands.getConfInternal(Commands.java:724) > at org.apache.hive.beeline.Commands.getHiveConf(Commands.java:702) > at org.apache.hive.beeline.Commands.sh(Commands.java:1002) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at > org.apache.hive.beeline.ReflectiveCommandHandler.execute(ReflectiveCommandHandler.java:52) > at org.apache.hive.beeline.BeeLine.dispatch(BeeLine.java:1081) > at org.apache.hive.beeline.BeeLine.execute(BeeLine.java:917) > at org.apache.hive.beeline.BeeLine.begin(BeeLine.java:845) > at org.apache.hive.beeline.BeeLine.mainWithInputRedirection(BeeLine.java:482) > at org.apache.hive.beeline.BeeLine.main(BeeLine.java:465) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at org.apache.hadoop.util.RunJar.run(RunJar.java:221) > at org.apache.hadoop.util.RunJar.main(RunJar.java:136) > {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)