You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by xu...@apache.org on 2015/05/20 20:14:36 UTC
hive git commit: HIVE-10732: Hive JDBC driver does not close
operation for metadata queries (Chaoyu via Xuefu)
Repository: hive
Updated Branches:
refs/heads/master bd6b086b2 -> 7a35c75bc
HIVE-10732: Hive JDBC driver does not close operation for metadata queries (Chaoyu via Xuefu)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/7a35c75b
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/7a35c75b
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/7a35c75b
Branch: refs/heads/master
Commit: 7a35c75bcc5c9dca56e5ea97c0c9d94cf824086b
Parents: bd6b086
Author: Xuefu Zhang <xz...@Cloudera.com>
Authored: Wed May 20 11:14:33 2015 -0700
Committer: Xuefu Zhang <xz...@Cloudera.com>
Committed: Wed May 20 11:14:33 2015 -0700
----------------------------------------------------------------------
.../apache/hive/jdbc/HiveQueryResultSet.java | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/7a35c75b/jdbc/src/java/org/apache/hive/jdbc/HiveQueryResultSet.java
----------------------------------------------------------------------
diff --git a/jdbc/src/java/org/apache/hive/jdbc/HiveQueryResultSet.java b/jdbc/src/java/org/apache/hive/jdbc/HiveQueryResultSet.java
index 0cef509..e93795a 100644
--- a/jdbc/src/java/org/apache/hive/jdbc/HiveQueryResultSet.java
+++ b/jdbc/src/java/org/apache/hive/jdbc/HiveQueryResultSet.java
@@ -38,6 +38,8 @@ import org.apache.hive.service.cli.RowSetFactory;
import org.apache.hive.service.cli.TableSchema;
import org.apache.hive.service.cli.thrift.TCLIService;
import org.apache.hive.service.cli.thrift.TCLIServiceConstants;
+import org.apache.hive.service.cli.thrift.TCloseOperationReq;
+import org.apache.hive.service.cli.thrift.TCloseOperationResp;
import org.apache.hive.service.cli.thrift.TColumnDesc;
import org.apache.hive.service.cli.thrift.TFetchOrientation;
import org.apache.hive.service.cli.thrift.TFetchResultsReq;
@@ -316,7 +318,11 @@ public class HiveQueryResultSet extends HiveBaseResultSet {
if (this.statement != null && (this.statement instanceof HiveStatement)) {
HiveStatement s = (HiveStatement) this.statement;
s.closeClientOperation();
+ } else {
+ // for those stmtHandle passed from HiveDatabaseMetaData instead of Statement
+ closeOperationHandle(stmtHandle);
}
+
// Need reset during re-open when needed
client = null;
stmtHandle = null;
@@ -324,6 +330,20 @@ public class HiveQueryResultSet extends HiveBaseResultSet {
isClosed = true;
}
+ private void closeOperationHandle(TOperationHandle stmtHandle) throws SQLException {
+ try {
+ if (stmtHandle != null) {
+ TCloseOperationReq closeReq = new TCloseOperationReq(stmtHandle);
+ TCloseOperationResp closeResp = client.CloseOperation(closeReq);
+ Utils.verifySuccessWithInfo(closeResp.getStatus());
+ }
+ } catch (SQLException e) {
+ throw e;
+ } catch (Exception e) {
+ throw new SQLException(e.toString(), "08S01", e);
+ }
+ }
+
/**
* Moves the cursor down one row from its current position.
*