Bläddra i källkod

[hive] Avoid error on empty EXPLAIN call

Romain Rigaux 5 år sedan
förälder
incheckning
bb41a4bcbf
1 ändrade filer med 13 tillägg och 8 borttagningar
  1. 13 8
      desktop/libs/notebook/src/notebook/connectors/hiveserver2.py

+ 13 - 8
desktop/libs/notebook/src/notebook/connectors/hiveserver2.py

@@ -562,19 +562,24 @@ class HS2Api(Api):
     response = self._get_current_statement(notebook, snippet)
     session = self._get_session(notebook, snippet['type'])
 
-    query = self._prepare_hql_query(snippet, response.pop('statement'), session)
+    statement = response.pop('statement')
+    explanation = ''
 
-    try:
-      db.use(query.database)
+    query = self._prepare_hql_query(snippet, statement, session)
 
-      explanation = db.explain(query)
-    except QueryServerException as ex:
-      raise QueryError(ex.message)
+    if statement:
+      try:
+        db.use(query.database)
+
+        explanation = db.explain(query).textual
+        statement = query.get_query_statement(0)
+      except QueryServerException as ex:
+        raise QueryError(ex.message)
 
     return {
       'status': 0,
-      'explanation': explanation.textual,
-      'statement': query.get_query_statement(0),
+      'explanation': explanation,
+      'statement': statement,
     }