Browse Source

HUE-8737 [hive] Do not convert statement to bytes twice with Py3

Romain 5 năm trước cách đây
mục cha
commit
44d88b55f6

+ 9 - 2
apps/beeswax/src/beeswax/server/hive_server2_lib.py

@@ -890,6 +890,7 @@ class HiveServerClient(object):
   def execute_query_statement(self, statement, max_rows=1000, configuration=None, orientation=TFetchOrientation.FETCH_FIRST, close_operation=False, session=None):
     if configuration is None:
       configuration = {}
+
     results, schema, operation_handle, session = self.execute_statement(statement=statement, max_rows=max_rows, configuration=configuration, orientation=orientation, session=session)
 
     if close_operation:
@@ -923,7 +924,10 @@ class HiveServerClient(object):
     if self.query_server['server_name'].startswith('impala') and self.query_server['QUERY_TIMEOUT_S'] > 0:
       configuration['QUERY_TIMEOUT_S'] = str(self.query_server['QUERY_TIMEOUT_S'])
 
-    req = TExecuteStatementReq(statement=statement.encode('utf-8'), confOverlay=configuration)
+    if sys.version_info[0] == 2:
+      statement = statement.encode('utf-8')
+
+    req = TExecuteStatementReq(statement=statement, confOverlay=configuration)
     (res, session) = self.call(self._client.ExecuteStatement, req, session=session)
 
     results, schema = self.fetch_result(res.operationHandle, max_rows=max_rows, orientation=orientation)
@@ -934,7 +938,10 @@ class HiveServerClient(object):
     if self.query_server['server_name'].startswith('impala') and self.query_server['QUERY_TIMEOUT_S'] > 0:
       confOverlay['QUERY_TIMEOUT_S'] = str(self.query_server['QUERY_TIMEOUT_S'])
 
-    req = TExecuteStatementReq(statement=statement.encode('utf-8'), confOverlay=confOverlay, runAsync=True)
+    if sys.version_info[0] == 2:
+      statement = statement.encode('utf-8')
+
+    req = TExecuteStatementReq(statement=statement, confOverlay=confOverlay, runAsync=True)
     (res, session) = self.call_return_result_and_session(self._client.ExecuteStatement, req, session=session)
 
     return HiveServerQueryHandle(

+ 5 - 5
apps/beeswax/src/beeswax/server/hive_server2_lib_tests.py

@@ -19,11 +19,6 @@
 import logging
 import sys
 
-if sys.version_info[0] > 2:
-  from unittest.mock import patch, Mock, MagicMock
-else:
-  from mock import patch, Mock, MagicMock
-
 from nose.tools import assert_equal, assert_true, assert_raises, assert_not_equal
 from nose.plugins.skip import SkipTest
 from TCLIService.ttypes import TStatusCode
@@ -37,6 +32,11 @@ from useradmin.models import User
 from desktop.lib.django_test_util import make_logged_in_client
 from desktop.lib.test_utils import grant_access
 
+if sys.version_info[0] > 2:
+  from unittest.mock import patch, Mock, MagicMock
+else:
+  from mock import patch, Mock, MagicMock
+
 
 LOG = logging.getLogger(__name__)