[ https://issues.apache.org/jira/browse/HIVE-5060?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13758113#comment-13758113 ]
Vaibhav Gumashta commented on HIVE-5060: ---------------------------------------- [~henryr] Thanks for posting this to rb. There has been some more progress on the async execution part of [HIVE-4569|https://issues.apache.org/jira/browse/HIVE-4569] here: [HIVE-4617|https://issues.apache.org/jira/browse/HIVE-4617]. I'll post my comments soon. > JDBC driver assumes executeStatement is synchronous > --------------------------------------------------- > > Key: HIVE-5060 > URL: https://issues.apache.org/jira/browse/HIVE-5060 > Project: Hive > Issue Type: Bug > Components: JDBC > Affects Versions: 0.11.0 > Reporter: Henry Robinson > Fix For: 0.11.1, 0.12.0 > > Attachments: > 0001-HIVE-5060-JDBC-driver-assumes-executeStatement-is-sy.patch, > HIVE-5060.patch > > > The JDBC driver seems to assume that {{ExecuteStatement}} is a synchronous > call when performing updates via {{executeUpdate}}, where the following > comment on the RPC in the Thrift file indicates otherwise: > {code} > // ExecuteStatement() > // > // Execute a statement. > // The returned OperationHandle can be used to check on the > // status of the statement, and to fetch results once the > // statement has finished executing. > {code} > I understand that Hive's implementation of {{ExecuteStatement}} is blocking > (see https://issues.apache.org/jira/browse/HIVE-4569), but presumably other > implementations of the HiveServer2 API (and I'm talking specifically about > Impala here, but others might have a similar concern) should be free to > return a pollable {{OperationHandle}} per the specification. > The JDBC driver's {{executeUpdate}} is as follows: > {code} > public int executeUpdate(String sql) throws SQLException { > execute(sql); > return 0; > } > {code} > {{execute(sql)}} discards the {{OperationHandle}} that it gets from the > server after determining whether there are results to be fetched. > This is problematic for us, because Impala will cancel queries that are > running when a session executes, but there's no easy way to be sure that an > {{INSERT}} statement has completed before terminating a session on the client. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira