commit 9baceae96e3ea248df614b9aa95d0e61f284b347 Author: Zachary Amsden Date: Fri Sep 1 14:41:39 2017 -0700 HIVE-17429: Allow resultSet to be returned by ExecuteRequest Impala returns hasResultSet = true for any request that generates a result set, but not for followup GetOperationStatus requests. A behavior change in the Hive JDBC meant only the operation status was considered, which regressed using the Hive JDBC driver with Impala. The simplest fix is to check if either message indicates a resultSet should be present. Change-Id: I9bde4a7d567f7728e9677695b45b0b2158b5a947 diff --git a/jdbc/src/java/org/apache/hive/jdbc/HiveStatement.java b/jdbc/src/java/org/apache/hive/jdbc/HiveStatement.java index c4784c3..b233213 100644 --- a/jdbc/src/java/org/apache/hive/jdbc/HiveStatement.java +++ b/jdbc/src/java/org/apache/hive/jdbc/HiveStatement.java @@ -251,7 +251,7 @@ public boolean execute(String sql) throws SQLException { TGetOperationStatusResp status = waitForOperationToComplete(); // The query should be completed by now - if (!status.isHasResultSet()) { + if (!status.isHasResultSet() && !stmtHandle.isHasResultSet()) { return false; } resultSet = new HiveQueryResultSet.Builder(this).setClient(client).setSessionHandle(sessHandle)